public async Task <IActionResult> PutClaim(int id, Claim claim) { if (id != claim.Id) { return(BadRequest()); } _context.Entry(claim).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ClaimExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public IActionResult Update(int id, ClaimViewModel claim) { // Map to ViewModel - Replace with Automapper Claim _claim = new Claim(); _claim.LineItems = new System.Collections.Generic.List <Shared.Models.LineItem>(); _claim.Id = claim.Id; _claim.Patient = claim.SelectedPatient.Name; _claim.Organization = claim.SelectedOrganization.Name; _claim.Type = claim.Type; _claim.Status = claim.Status; foreach (BlazorCrud.Shared.ViewModels.LineItem li in claim.LineItems) { BlazorCrud.Shared.Models.LineItem _li = new Shared.Models.LineItem(); _li.Id = li.Id; _li.Service = li.Service; _li.Amount = li.Amount; _claim.LineItems.Add(_li); } if (ModelState.IsValid) { var existingClaim = _context.Claims .Include(c => c.LineItems) .Single(c => c.Id == id); if (existingClaim == null) { return(NotFound()); } // Update Existing Claim existingClaim.ModifiedDate = DateTime.Now; _context.Entry(existingClaim).CurrentValues.SetValues(claim); // Delete Line Items foreach (var existingLineItem in existingClaim.LineItems.ToList()) { if (!claim.LineItems.Any(c => c.Id == existingLineItem.Id)) { _context.LineItems.Remove(existingLineItem); } } // Update and Insert Line Items foreach (var lineItemModel in claim.LineItems) { var existingLineItem = existingClaim.LineItems .Where(c => c.Id == lineItemModel.Id) .SingleOrDefault(); if (existingLineItem != null) { _context.Entry(existingLineItem).CurrentValues.SetValues(lineItemModel); } else { var newLineItem = new Shared.Models.LineItem { Id = lineItemModel.Id, Service = lineItemModel.Service, Amount = lineItemModel.Amount }; existingClaim.LineItems.Add(newLineItem); } } _context.SaveChanges(); return(NoContent()); } else { return(BadRequest(ModelState)); } }
public void UpdateClaim(Claim claim) { _dbContext.Entry(claim).State = EntityState.Modified; Save(); }