public CommodityRequestCheckout(List <CheckoutedLineItem> lineItems, CommodityRequestForm requestForm) { RequestForm = requestForm; ValidateLineItems(lineItems); LineItems = lineItems; _state = CheckoutState.Pending; }
public CommodityRequestCheckout(Guid id, List <CheckoutedLineItem> lineItems, CommodityRequestForm requestForm, CheckoutState state) { Id = id; RequestForm = requestForm; ValidateLineItems(lineItems); LineItems = lineItems; _state = state; }
public async Task <Response> CreateForm(int resturantId, IEnumerable <CommodityRequestFormLineItemViewModel> lineItems) { var req = new CommodityRequestForm(lineItems.Select(x => new CommodityRequestFormLineItem { Amount = x.Amount, CommodityId = x.CommodityId }).ToList(), resturantId); await _commodityRequestFormRepository.AddAsync(req); _eventDispatcher.Raise(new NewCommodityRequestFormAddedEvent(req)); return(Response.Success()); }
private void AddNewAddedItemsFromForm(CommodityRequestForm form) { foreach (var formLineItem in form.LineItems.Where(x => x.Id != Guid.Empty).ToList()) { var item = new CheckoutedLineItem { RequiredAmount = formLineItem.Amount, FormRequestLineItemId = formLineItem.Id, Commodity = formLineItem.Commodity, State = TrackingState.Added }; this.LineItems.Add(item); } }
private void LoadRefrencedCommidities(CommodityRequestForm arg) { if (arg.LineItems.All(x => x.Commodity == null)) { _commodityRepository.GetListByIds(arg.LineItems.Select(x => x.CommodityId).ToList()).ForEach(x => { foreach (var lineItem in arg.LineItems) { if (lineItem.CommodityId == x.Id) { lineItem.Commodity = x; } } }); } }
public static CommodityRequestCheckout Create(CommodityRequestForm form) { var lineItems = new List <CheckoutedLineItem>(); foreach (var requestLineItem in form.LineItems) { var lineItem = new CheckoutedLineItem() { Commodity = requestLineItem.Commodity, FormRequestLineItemId = requestLineItem.Id, RequiredAmount = requestLineItem.Amount }; lineItems.Add(lineItem); } return(new CommodityRequestCheckout(form.Id, lineItems, form, CheckoutState.Pending)); }
private void UpdateItemsCreatedFromEntireForm(CommodityRequestForm form) { var createdFromFormItems = LineItems.Where(x => x.FormRequestLineItemId.HasValue).ToList(); foreach (var checkoutedLineItem in createdFromFormItems) { var updated = form.LineItems.FirstOrDefault(x => x.Id == checkoutedLineItem.FormRequestLineItemId); if (updated == null) { checkoutedLineItem.State = TrackingState.Deleted; continue; } checkoutedLineItem.Commodity = updated.Commodity; checkoutedLineItem.RequiredAmount = updated.Amount; checkoutedLineItem.FinalPurchaseCount = checkoutedLineItem.CommodityPurchaseBid; checkoutedLineItem.State = TrackingState.Edited; } }
public Task UpdateAsync(CommodityRequestForm form) { foreach (var item in form.LineItems) { switch (item.State) { case TrackingState.Added: DbContext.Entry(item).State = EntityState.Added; break; case TrackingState.Edited: DbContext.Entry(item).State = EntityState.Modified; break; case TrackingState.Deleted: DbContext.Entry(item).State = EntityState.Deleted; break; } } DbContext.Entry(form).State = EntityState.Modified; return(DbContext.SaveChangesAsync()); }
public async Task AddAsync(CommodityRequestForm model) { await DbContext.CommodityRequestForms.AddAsync(model); await DbContext.SaveChangesAsync(); }
public CommodityEditedFormEvent(CommodityRequestForm form) { Form = form; }
public NewCommodityRequestFormAddedEvent(CommodityRequestForm req) { Form = req; }
public void UpdateItemsByForm(CommodityRequestForm form) { UpdateItemsCreatedFromEntireForm(form); AddNewAddedItemsFromForm(form); HandleFinalPurchaseCount(); }