コード例 #1
0
        public async Task <BidModel> Put(int bidId, EditBidModel model)
        {
            var result = await _service.Put(bidId, model);

            var models = _mapper.Map <BidModel>(result);

            return(models);
        }
コード例 #2
0
        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);
        }