public async Task <IActionResult> PutForApproval([FromRoute] int id, [FromBody] ForApproval forApproval) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != forApproval.ID) { return(BadRequest()); } var forApprovals = _context.ForApproval.Where(indicator => indicator.ID == id); foreach (var forApp in forApprovals) { forApp.UserID = forApproval.UserID; forApp.isApproved = forApproval.isApproved; forApp.Comment = forApproval.Comment; forApp.DateCreated = DateTime.Now; _context.Entry(forApp).State = EntityState.Modified; } if (forApproval.isApproved == ApprovalStatus.Approved) { if (forApproval.CannedIndicatorID != null) { UpdateIndicators((int)forApproval.CannedIndicatorID); } else if (forApproval.IndicatorID != null) { var indicator = _context.Indicators.Find(forApproval.IndicatorID); indicator.IsApproved = forApproval.isApproved == ApprovalStatus.Approved; _context.Entry(indicator).State = EntityState.Modified; } } try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ForApprovalExists(id)) { return(NotFound()); } else { throw; } } var updateApproval = _context.ForApproval.Include(app => app.User).Include(app => app.CannedIndicator).ToList(); return(Ok(updateApproval)); }
public async Task <IActionResult> PostForApproval([FromBody] ForApproval forApproval) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } //forApproval.UserID = Int32.Parse(HttpContext.User.Claims.FirstOrDefault(c => c.Type == "id").Value); if (forApproval.CannedIndicatorID > 0) { int indicatorID = (int)forApproval.CannedIndicatorID; var CannedIndicator = new CannedIndicator() { ID = indicatorID, Status = false }; _context.Entry(CannedIndicator).Property(status => status.Status).IsModified = true; } else if (forApproval.IndicatorID != null) { forApproval.CannedIndicatorID = null; var indicator = _context.Indicators.Find(forApproval.IndicatorID); indicator.IsApproved = false; _context.Entry(indicator).State = EntityState.Modified; } _context.ForApproval.Add(forApproval); try { await _context.SaveChangesAsync(); } catch (Exception e) { } return(CreatedAtAction("GetForApproval", new { id = forApproval.ID }, forApproval)); }