public async Task <ActionResult> CalculateTotals(string number, QuoteRequestFormModel quoteRequest) { await _quoteRequestBuilder.LoadQuoteRequestAsync(number, WorkContext.CurrentLanguage, WorkContext.AllCurrencies); EnsureQuoteRequestBelongsToCurrentCustomer(_quoteRequestBuilder.QuoteRequest); //Apply user changes without saving _quoteRequestBuilder.Update(quoteRequest); await _quoteRequestBuilder.CalculateTotalsAsync(); return(Json(_quoteRequestBuilder.QuoteRequest.Totals)); }
public async Task <ActionResult> UpdateJson(QuoteRequestFormModel quoteRequest) { EnsureThatQuoteRequestExists(); using (var lockObject = await AsyncLock.GetLockByKey("quote:" + WorkContext.CurrentQuoteRequest.Id).LockAsync()) { _quoteRequestBuilder.Update(quoteRequest); await _quoteRequestBuilder.SaveAsync(); } return(Json(null, JsonRequestBehavior.AllowGet)); }
public async Task <ActionResult> Update(string number, [FromBody] QuoteRequestFormModel quoteRequest) { await _quoteRequestBuilder.LoadQuoteRequestAsync(number, WorkContext.CurrentLanguage, WorkContext.CurrentCurrency); EnsureQuoteRequestBelongsToCurrentCustomer(_quoteRequestBuilder.QuoteRequest); using (await AsyncLock.GetLockByKey(_quoteRequestBuilder.QuoteRequest.Id).LockAsync()) { _quoteRequestBuilder.Update(quoteRequest); await _quoteRequestBuilder.SaveAsync(); } return(Ok()); }
public async Task <ActionResult> Update(string number, QuoteRequestFormModel quoteRequest) { await _quoteRequestBuilder.LoadQuoteRequestAsync(number, WorkContext.CurrentLanguage, WorkContext.AllCurrencies); EnsureQuoteRequestBelongsToCurrentCustomer(_quoteRequestBuilder.QuoteRequest); using (await AsyncLock.GetLockByKey(_quoteRequestBuilder.QuoteRequest.Id).LockAsync()) { _quoteRequestBuilder.Update(quoteRequest); await _quoteRequestBuilder.SaveAsync(); } return(new HttpStatusCodeResult(HttpStatusCode.OK)); }
public async Task <ActionResult> Submit(string number, QuoteRequestFormModel quoteForm) { await _quoteRequestBuilder.LoadQuoteRequestAsync(number, WorkContext.CurrentLanguage, WorkContext.AllCurrencies); EnsureThatIsItCustomerQuoteRequest(_quoteRequestBuilder.QuoteRequest); using (var lockObject = await AsyncLock.GetLockByKey(WorkContext.CurrentQuoteRequest.Id).LockAsync()) { _quoteRequestBuilder.Update(quoteForm).Submit(); await _quoteRequestBuilder.SaveAsync(); } return(new HttpStatusCodeResult(HttpStatusCode.OK)); }
public async Task <ActionResult> Confirm(string number, QuoteRequestFormModel quoteRequest) { await _quoteRequestBuilder.LoadQuoteRequestAsync(number, WorkContext.CurrentLanguage, WorkContext.AllCurrencies); EnsureQuoteRequestBelongsToCurrentCustomer(_quoteRequestBuilder.QuoteRequest); _quoteRequestBuilder.Update(quoteRequest).Confirm(); await _quoteRequestBuilder.SaveAsync(); _cartBuilder.TakeCart(WorkContext.CurrentCart); await _cartBuilder.FillFromQuoteRequest(_quoteRequestBuilder.QuoteRequest); await _cartBuilder.SaveAsync(); return(new HttpStatusCodeResult(HttpStatusCode.OK)); }
public async Task <ActionResult> Confirm([FromRoute] string number, [FromBody] QuoteRequestFormModel quoteRequest) { await _quoteRequestBuilder.LoadQuoteRequestAsync(number, WorkContext.CurrentLanguage, WorkContext.CurrentCurrency); EnsureQuoteRequestBelongsToCurrentCustomer(_quoteRequestBuilder.QuoteRequest); _quoteRequestBuilder.Update(quoteRequest).Confirm(); await _quoteRequestBuilder.SaveAsync(); await _cartBuilder.TakeCartAsync(WorkContext.CurrentCart.Value); await _cartBuilder.FillFromQuoteRequestAsync(_quoteRequestBuilder.QuoteRequest); await _cartBuilder.SaveAsync(); return(Ok()); }
public IQuoteRequestBuilder Update(QuoteRequestFormModel quoteRequest) { _cacheManager.Remove(GetQuoteRequestCacheKey(_quoteRequest.StoreId, _quoteRequest.CustomerId), _quoteRequestCacheRegion); _quoteRequest.Comment = quoteRequest.Comment; _quoteRequest.Status = quoteRequest.Status; _quoteRequest.Tag = quoteRequest.Tag; _quoteRequest.Addresses.Clear(); if (quoteRequest.BillingAddress != null) { _quoteRequest.Addresses.Add(quoteRequest.BillingAddress); } if (quoteRequest.ShippingAddress != null) { _quoteRequest.Addresses.Add(quoteRequest.ShippingAddress); } if (quoteRequest.Items != null) { foreach (var item in quoteRequest.Items) { var existingItem = _quoteRequest.Items.FirstOrDefault(i => i.Id == item.Id); if (existingItem != null) { existingItem.Comment = item.Comment; existingItem.SelectedTierPrice = new TierPrice { ListPrice = new Money(item.SelectedTierPrice.Price, _quoteRequest.Currency), Quantity = item.SelectedTierPrice.Quantity }; existingItem.ProposalPrices.Clear(); foreach (var proposalPrice in item.ProposalPrices) { existingItem.ProposalPrices.Add(new TierPrice { ListPrice = new Money(proposalPrice.Price, _quoteRequest.Currency), Quantity = proposalPrice.Quantity }); } } } } return(this); }
public IQuoteRequestBuilder Update(QuoteRequestFormModel quoteRequest) { QuoteCacheRegion.ExpireQuote(_quoteRequest); _quoteRequest.Comment = quoteRequest.Comment; _quoteRequest.Status = quoteRequest.Status; _quoteRequest.Tag = quoteRequest.Tag; _quoteRequest.Addresses.Clear(); if (quoteRequest.BillingAddress != null) { _quoteRequest.Addresses.Add(quoteRequest.BillingAddress); } if (quoteRequest.ShippingAddress != null) { _quoteRequest.Addresses.Add(quoteRequest.ShippingAddress); } if (quoteRequest.Items != null) { foreach (var item in quoteRequest.Items) { var existingItem = _quoteRequest.Items.FirstOrDefault(i => i.Id == item.Id); if (existingItem != null) { existingItem.Comment = item.Comment; existingItem.SelectedTierPrice = new TierPrice(new Money(item.SelectedTierPrice.Price, _quoteRequest.Currency), item.SelectedTierPrice.Quantity); existingItem.ProposalPrices.Clear(); foreach (var proposalPrice in item.ProposalPrices) { existingItem.ProposalPrices.Add(new TierPrice(new Money(proposalPrice.Price, _quoteRequest.Currency), proposalPrice.Quantity)); } } } } return(this); }