Basic foncitonnalité de POST et DELETE pour Product
This commit is contained in:
		| @@ -1,16 +1,16 @@ | ||||
| using Microsoft.AspNetCore.Mvc; | ||||
| using GrossesMitainesAPI.Models; | ||||
| using GrossesMitainesAPI.Models; | ||||
| using System.Linq; | ||||
| using GrossesMitainesAPI.Data; | ||||
| using Microsoft.Extensions.Logging; | ||||
| using Microsoft.AspNetCore.Authorization; | ||||
| using Microsoft.EntityFrameworkCore; | ||||
| using Microsoft.AspNetCore.Cors; | ||||
| using Microsoft.AspNetCore.Mvc; | ||||
|  | ||||
| namespace GrossesMitainesAPI.Controllers; | ||||
|  | ||||
| [ApiController, Route("api/[controller]")] | ||||
| public class ProductController : Controller { | ||||
| public class ProductController : ControllerBase { | ||||
|     private readonly ILogger<ProductController> _logger; | ||||
|     private readonly InventoryContext _context; | ||||
|  | ||||
| @@ -25,7 +25,8 @@ public class ProductController : Controller { | ||||
|         Product prod; | ||||
|         try { | ||||
|             prod = _context.Products.Where(x => x.Id == id).First(); | ||||
|         } catch (Exception e) { | ||||
|         } | ||||
|         catch (Exception e) { | ||||
|             _logger.LogError(8, e.Message); | ||||
|             prod = new Product(); | ||||
|         } | ||||
| @@ -34,38 +35,7 @@ public class ProductController : Controller { | ||||
|  | ||||
|     [EnableCors("_myAllowSpecificOrigins")] | ||||
|     [HttpPost(Name = "Product")] | ||||
|     public void Post(string title, string category, string description, decimal? price, decimal? promoprice, uint? quantity, string? status, string imagename) { | ||||
|         Product prod = new() { | ||||
|             Title = title, | ||||
|             Category = category, | ||||
|             Description = description, | ||||
|             Price = price.HasValue ? (decimal)price : 0.01M, | ||||
|             PromoPrice = promoprice.HasValue ? (decimal)promoprice : 0.01M, | ||||
|             Quantity = quantity.HasValue ? (uint)quantity : 0, | ||||
|             ImageName = imagename | ||||
|         }; | ||||
|  | ||||
|         switch (status) { | ||||
|             case "isAvailable": | ||||
|                 prod.Status = Product.States.Available; | ||||
|                 break; | ||||
|             case "isUnavailable": | ||||
|                 prod.Status = Product.States.Unavailable; | ||||
|                 break; | ||||
|             case "isBackOrder": | ||||
|                 prod.Status = Product.States.BackOrder; | ||||
|                 break; ; | ||||
|             case "isClearance": | ||||
|                 prod.Status = Product.States.Clearance; | ||||
|                 break; | ||||
|             case "isPromotion": | ||||
|                 prod.Status = Product.States.Promotion; | ||||
|                 break; | ||||
|             case "isDiscontinued": | ||||
|                 prod.Status = Product.States.Discontinued; | ||||
|                 break; | ||||
|             default: break; | ||||
|         } | ||||
|     public ActionResult<Product> Post(Product prod) { | ||||
|  | ||||
|         if (prod.Price <= prod.PromoPrice) | ||||
|             prod.PromoPrice = prod.Price - 0.01M; | ||||
| @@ -73,67 +43,28 @@ public class ProductController : Controller { | ||||
|         try { | ||||
|             _context.Products.Add(prod); | ||||
|             _context.SaveChanges(); | ||||
|         } catch (Exception e) { | ||||
|             _logger.LogError(8, e.Message); | ||||
|         } | ||||
|         catch (Exception e) { | ||||
|             _logger.LogError(8, e.Message); | ||||
|             return BadRequest(); | ||||
|         } | ||||
|  | ||||
|         return prod; | ||||
|     } | ||||
|  | ||||
|     [EnableCors("_myAllowSpecificOrigins")] | ||||
|     [HttpPut(Name = "Product")] | ||||
|     public void Put(int id, string title, string category, string description, decimal? price, decimal? promoprice, uint? quantity, string? status, string imagename) { | ||||
|         Product prod = _context.Products.Where(x => x.Id == id).FirstOrDefault(); | ||||
|     public ActionResult<Product> Put(Product prod) { | ||||
|         try { | ||||
|             _context.Products.Update(prod); | ||||
|             _context.SaveChanges(); | ||||
|         } | ||||
|         catch (Exception e) { | ||||
|             _logger.LogError(8, e.Message); | ||||
|             return BadRequest(); | ||||
|         } | ||||
|  | ||||
|         if (prod == new Product()) | ||||
|             Post(title, category, description, price, promoprice, quantity, status, imagename); | ||||
|         else try { | ||||
|                 if (title != null || title != "") | ||||
|                     prod.Title = title; | ||||
|  | ||||
|                 if (category != null || category != "") | ||||
|                     prod.Category = category; | ||||
|  | ||||
|                 if (description != null || description != "") | ||||
|                     prod.Description = description; | ||||
|  | ||||
|                 if (price.HasValue || price > 0) | ||||
|                     prod.Price = (decimal)price; | ||||
|  | ||||
|                 if (promoprice.HasValue || promoprice > prod.Price) | ||||
|                     prod.PromoPrice = (decimal)promoprice; | ||||
|  | ||||
|                 if (quantity.HasValue) | ||||
|                     prod.Quantity = (uint)quantity; | ||||
|  | ||||
|                 switch (status) { | ||||
|                     case "isAvailable": | ||||
|                         prod.Status = Product.States.Available; | ||||
|                         break; | ||||
|                     case "isUnavailable": | ||||
|                         prod.Status = Product.States.Unavailable; | ||||
|                         break; | ||||
|                     case "isBackOrder": | ||||
|                         prod.Status = Product.States.BackOrder; | ||||
|                         break; ; | ||||
|                     case "isClearance": | ||||
|                         prod.Status = Product.States.Clearance; | ||||
|                         break; | ||||
|                     case "isPromotion": | ||||
|                         prod.Status = Product.States.Promotion; | ||||
|                         break; | ||||
|                     case "isDiscontinued": | ||||
|                         prod.Status = Product.States.Discontinued; | ||||
|                         break; | ||||
|                     default: break; | ||||
|                 } | ||||
|  | ||||
|                 if (imagename != null || imagename != "") | ||||
|                     prod.ImageName = imagename; | ||||
|  | ||||
|                 _context.Products.Update(prod); | ||||
|                 _context.SaveChanges(); | ||||
|             } catch (Exception e) { | ||||
|                 _logger.LogError(8, e.Message); | ||||
|             } | ||||
|         return prod; | ||||
|     } | ||||
|  | ||||
|     [EnableCors("_myAllowSpecificOrigins")] | ||||
| @@ -187,19 +118,23 @@ public class ProductController : Controller { | ||||
|  | ||||
|             _context.Products.Update(prod); | ||||
|             _context.SaveChanges(); | ||||
|         } catch (Exception e) { | ||||
|         } | ||||
|         catch (Exception e) { | ||||
|             _logger.LogError(8, e.Message); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     [EnableCors("_myAllowSpecificOrigins")] | ||||
|     [HttpDelete(Name = "Product")] | ||||
|     public void DeleteProduct(int id) { | ||||
|     public IActionResult DeleteProduct(int id) { | ||||
|         try { | ||||
|             _context.Products.Remove(_context.Products.Where(x => x.Id == id).First()); | ||||
|             _context.SaveChanges(); | ||||
|         } catch (Exception e) { | ||||
|         } | ||||
|         catch (Exception e) { | ||||
|             _logger.LogError(8, e.Message); | ||||
|         } | ||||
|  | ||||
|         return Ok(); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user