public async Task <ReturnResult> UpdateArticleStock(int articleid, ArticleStock articleStock) { _context.Entry(articleStock).State = EntityState.Modified; ReturnResult result = new ReturnResult(); try { if (!ArticleStockExists(articleid)) { result.UpdatedArticleStock = null; result.StatusMessage = $"Article ID {articleid} does not exist in the inventory"; } await _context.SaveChangesAsync(); result.StatusMessage = $"Article stock updated successfully for article Id - {articleid}"; result.UpdatedArticleStock = articleStock; return(result); } catch (DbUpdateConcurrencyException e) { result.StatusMessage = e.Message; throw e; } }
public async Task <IActionResult> UpdateInventory([FromRoute] int articleid, [FromBody] ArticleStock articleStock) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (articleid != articleStock.ArticleId) { return(BadRequest()); } try { ReturnResult result = await inventoryService.UpdateArticleStock(articleid, articleStock); if (result.UpdatedArticleStock == null) { return(NotFound($"Customer with id {articleid} not found")); } JObject successobj = new JObject() { { "StatusMessage", result.StatusMessage }, { "ArticleStock", JObject.Parse(JsonConvert.SerializeObject(result.UpdatedArticleStock)) } }; return(Ok(successobj)); } catch (Exception ex) { return(StatusCode(500, ex.Message)); //throw; } }
public bool ReduceArticleStock(int articleId, ArticleStock articleStock, out ArticleStock updatedArticleStock, out string statusMessage) { //_context.Entry(articleStock).State = EntityState.Modified; try { if (!ArticleStockExists(articleId)) { updatedArticleStock = null; statusMessage = $"Article ID {articleId} does not exist in the inventory"; } ArticleStock articleStockToUpdate = _context.ArticleStocks.Where(a => a.ArticleId == articleId).FirstOrDefault(); articleStockToUpdate.TotalQuantity = articleStockToUpdate.TotalQuantity - articleStock.TotalQuantity; _context.SaveChanges(); statusMessage = $"Article stock updated successfully for article Id - {articleId}"; updatedArticleStock = articleStock; return(true); } catch (DbUpdateConcurrencyException e) { statusMessage = e.Message; throw e; } }