Пример #1
0
        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());
        }
Пример #2
0
        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));
            }
        }
Пример #3
0
 public void UpdateClaim(Claim claim)
 {
     _dbContext.Entry(claim).State = EntityState.Modified;
     Save();
 }