lolput
This commit is contained in:
		| @@ -4,6 +4,7 @@ using System.Linq; | |||||||
| using GrossesMitainesAPI.Data; | using GrossesMitainesAPI.Data; | ||||||
| using Microsoft.Extensions.Logging; | using Microsoft.Extensions.Logging; | ||||||
| using Microsoft.AspNetCore.Authorization; | using Microsoft.AspNetCore.Authorization; | ||||||
|  | using Microsoft.EntityFrameworkCore; | ||||||
|  |  | ||||||
| namespace GrossesMitainesAPI.Controllers; | namespace GrossesMitainesAPI.Controllers; | ||||||
|  |  | ||||||
| @@ -30,17 +31,39 @@ public class ProductController : Controller { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     [HttpPost(Name = "Product")] |     [HttpPost(Name = "Product")] | ||||||
|     public void Post(string title, string category, string description, decimal? price, decimal? promoprice, uint? quantity, bool? disc, string imagename) { |     public void Post(string title, string category, string description, decimal? price, decimal? promoprice, uint? quantity, string? status, string imagename) { | ||||||
|         Product prod = new() { |         Product prod = new() { | ||||||
|             Title =  title, |             Title = title, | ||||||
|             Category = category, |             Category = category, | ||||||
|             Description = description, |             Description = description, | ||||||
|             Price = price.HasValue? (decimal)price: 0.01M, |             Price = price.HasValue ? (decimal)price : 0.01M, | ||||||
|             PromoPrice = promoprice.HasValue ? (decimal)promoprice : 0.01M, |             PromoPrice = promoprice.HasValue ? (decimal)promoprice : 0.01M, | ||||||
|             Quantity = quantity.HasValue ? (uint)quantity : 0, |             Quantity = quantity.HasValue ? (uint)quantity : 0, | ||||||
|             ImageName = imagename |             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; | ||||||
|  |         } | ||||||
|  |  | ||||||
|         if (prod.Price <= prod.PromoPrice) |         if (prod.Price <= prod.PromoPrice) | ||||||
|             prod.PromoPrice = prod.Price - 0.01M; |             prod.PromoPrice = prod.Price - 0.01M; | ||||||
|  |  | ||||||
| @@ -54,6 +77,63 @@ public class ProductController : Controller { | |||||||
|  |  | ||||||
|     [HttpPut(Name = "Product")] |     [HttpPut(Name = "Product")] | ||||||
|     public void Put(int id, string title, string category, string description, decimal? price, decimal? promoprice, uint? quantity, string? status, string imagename) { |     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(); | ||||||
|  |  | ||||||
|  |         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); | ||||||
|  |             } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     [HttpPatch(Name = "Product")] | ||||||
|  |     public void Patch(int id, string title, string category, string description, decimal? price, decimal? promoprice, uint? quantity, string? status, string imagename) { | ||||||
|         try { |         try { | ||||||
|             Product prod = _context.Products.Where(x => x.Id == id).First(); |             Product prod = _context.Products.Where(x => x.Id == id).First(); | ||||||
|  |  | ||||||
| @@ -106,65 +186,4 @@ public class ProductController : Controller { | |||||||
|             _logger.LogError(8, e.Message); |             _logger.LogError(8, e.Message); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     [HttpPatch(Name = "Product")] |  | ||||||
|     public void Patch(int id, string title, string category, string description, decimal? price, decimal? promoprice, uint? quantity, string? status, string imagename) { |  | ||||||
|         try { |  | ||||||
|             Product prod = _context.Products.Where(x => x.Id == id).First(); |  | ||||||
|  |  | ||||||
|             if (title != null) |  | ||||||
|                 prod.Title = title; |  | ||||||
|             else prod.Title = ""; |  | ||||||
|  |  | ||||||
|             if (category != null) |  | ||||||
|                 prod.Category = category; |  | ||||||
|             else prod.Category = ""; |  | ||||||
|  |  | ||||||
|             if (description != null) |  | ||||||
|                 prod.Description = description; |  | ||||||
|             else prod.Description = ""; |  | ||||||
|  |  | ||||||
|             if (promoprice.HasValue || promoprice < prod.Price) |  | ||||||
|                 prod.PromoPrice = (decimal)promoprice; |  | ||||||
|             else prod.PromoPrice = prod.Price - 0.01M; |  | ||||||
|  |  | ||||||
|             if (quantity.HasValue) |  | ||||||
|                 prod.Quantity = (uint)quantity; |  | ||||||
|             else prod.Quantity = 0; |  | ||||||
|  |  | ||||||
|             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: |  | ||||||
|                     prod.Status = prod.Quantity > 0 ? Product.States.Available : Product.States.Unavailable; |  | ||||||
|                     break; |  | ||||||
|             } |  | ||||||
|  |  | ||||||
|             if (imagename != null) |  | ||||||
|                 prod.ImageName = imagename; |  | ||||||
|             else prod.ImageName = ""; |  | ||||||
|  |  | ||||||
|             _context.Products.Update(prod); |  | ||||||
|             _context.SaveChanges(); |  | ||||||
|         } catch (Exception e) { |  | ||||||
|             _logger.LogError(8, e.Message); |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user