public async Task <BidModel> Put(int bidId, EditBidModel model) { var result = await _service.Put(bidId, model); var models = _mapper.Map <BidModel>(result); return(models); }
public async Task <Bid> Put(int bidId, EditBidModel model) { var bidModel = GetQuery().Include("BidDetails").Include("BidDetails.FormField").FirstOrDefault(x => x.Id == bidId); if (bidModel == null) { throw new NotFoundException(); } var bid = _mapper.Map <Bid>(bidModel); for (int i = 0; i < bid.BidDetails.Count; i++) { var newValue = model.BidDetails.Where(a => a.Id == bid.BidDetails[i].Id).FirstOrDefault(); if (newValue != null && newValue.FormFieldId == 10 && bid.BidDetails[i].Value != newValue.Value) { model.BidDetails[i].Value = UploadImageHelper.SaveImage(model.BidDetails[i].Value, "Bids"); } else if (newValue != null && newValue.FormFieldId == 8 && bid.BidDetails[i].Value != newValue.Value) { model.BidDetails[i].Value = UploadImageHelper.SavePdf(model.BidDetails[i].Value, "Bids"); } else { bid.BidDetails[i].Value = newValue == null ? "" : newValue.Value; } } var deletedItems = bid.BidDetails.Where(a => !model.BidDetails.Any(x => a.Id == x.Id)).Select(a => a.Id).ToArray(); foreach (var item in deletedItems) { var reqDetail = bid.BidDetails.Where(a => a.Id == item).First(); bid.BidDetails.Remove(reqDetail); } var addedItems = model.BidDetails.Where(a => a.Id == 0); foreach (var item in addedItems) { bid.BidDetails.Add(new BidDetail { BidId = bidId, FormFieldId = item.FormFieldId, Value = item.Value }); } await _uow.CommitAsync(); return(bid); }