public async Task <IActionResult> EditProduct(int id, ProductDetails model) { try { if (id != model.ProductId) { return(Ok(new ReturnModelValue(enumReturnStatus.Failed, "model_invalid", "Mandatory field are required.", model))); } else { var Data = _dbContext.Products.SingleOrDefault(x => x.ProductId == id); if (Data != null) { Data.ProductName = model.ProductName; Data.Price = model.Price; Data.Description = model.Description; Data.ProductImage = model.ProductImage; Data.Quantity = model.Quantity; _dbContext.Products.Update(Data); _dbContext.SaveChanges(); return(new OkObjectResult(new ReturnModelValue(enumReturnStatus.Success, "Product_updated", "Product updated successfully."))); } else { var resultReturnModel = new ReturnModelValue(enumReturnStatus.Failed, "Product Not found", "product details not found."); return(Ok(resultReturnModel)); } } } catch (Exception ex) { return(BadRequest(new { message = ex.Message })); } }
public ActionResult PlaceOrder(SaveOrder model) { try { if (model != null) { var UserId = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value; model.OrderBy = int.Parse(UserId); var product = _dbContext.Products.SingleOrDefault(x => x.ProductId == model.ProductId); var availableQuantity = product.Quantity; var appliedQuantity = model.Quantity; if (appliedQuantity > availableQuantity) { var resultReturnModel = new ReturnModelValue(enumReturnStatus.Failed, "There is no such quanties vailable", "Select Within a given quantity", null); return(Ok(resultReturnModel)); } else if (appliedQuantity == availableQuantity) { _dbContext.SaveOrders.Add(model); _dbContext.SaveChanges(); var data = _dbContext.Products.SingleOrDefault(x => x.ProductId == model.ProductId); _dbContext.Remove(data); _dbContext.SaveChanges(); var resultReturnModel = new ReturnModelValue(enumReturnStatus.Success, "Order Purchase", "Purchased", null); return(Ok(resultReturnModel)); } else if (appliedQuantity < availableQuantity) { _dbContext.SaveOrders.Add(model); _dbContext.SaveChanges(); var data = _dbContext.Products.SingleOrDefault(x => x.ProductId == model.ProductId); var CurrentQuantity = availableQuantity - appliedQuantity; data.Quantity = CurrentQuantity; _dbContext.Update(data); _dbContext.SaveChanges(); var resultReturnModel = new ReturnModelValue(enumReturnStatus.Success, "Order Purchaes", "Purchased", null); return(Ok(resultReturnModel)); } } } catch (Exception ex) { return(BadRequest(new { message = ex.Message })); } return(null); }
public async Task <ActionResult> GetProductById(int id) { var result = _dbContext.Products.FirstOrDefault(x => x.ProductId == id); try { if (result != null) { var resultReturnModel = new ReturnModelValue(enumReturnStatus.Success, "Product Details", "Product Details", result); return(Ok(resultReturnModel)); } else { var resultReturnModel = new ReturnModelValue(enumReturnStatus.Failed, "Product Not Found", "Product Not Found", null); return(Ok(resultReturnModel)); } } catch (Exception ex) { return(BadRequest(new { message = ex.Message })); } }
public async Task <ActionResult> GetProduct() { var productInfo = await _dbContext.Products.ToListAsync(); try { if (productInfo != null) { var resultReturnModel = new ReturnModelValue(enumReturnStatus.Success, "Product_List", "Product Details", productInfo); return(Ok(resultReturnModel)); } else { var resultReturnModel = new ReturnModelValue(enumReturnStatus.Failed, "No Product Not Fount", " No Product Not Fount", null); return(Ok(resultReturnModel)); } } catch (Exception ex) { return(BadRequest(new { message = ex.Message })); } }