private static void SaveMobileQuoteResponse(QuoteResponseViewModel model, int shoppingCartId) { CatalogInterfaceClient proxy = null; using (proxy = ServiceClientProvider.GetCatalogServiceProxy()) { try { var request = new InsertMobileOrderDetailRequest_V01(); MobileOrderDetail mobileOrderDetail = MobileOrderProvider.ModelConverter.ConvertOrderViewModelToMobileOrderDetail(model.Order, shoppingCartId); mobileOrderDetail.AddressId = model.Order.Shipping != null && model.Order.Shipping.Address != null ? model.Order.Shipping.Address.CloudId : Guid.Empty; mobileOrderDetail.CustomerId = model.Order.CustomerId; mobileOrderDetail.OrderStatus = "Quoted"; request.MobileOrderDetail = mobileOrderDetail; InsertMobileOrderDetailResponse response = proxy.InsertMobileOrderDetail(new InsertMobileOrderDetailRequest1(request)).InsertMobileOrderDetailResult; // Check response for error. if (response == null || response.Status != ServiceResponseStatusType.Success) { LoggerHelper.Error(string.Format("SaveMobileQuoteResponse error Order: {0} Message: {1}", model.Order.OrderNumber, response)); } } catch (Exception ex) { LoggerHelper.Error(string.Format("SaveMobileQuoteResponse Exception Order: {0} Message: {1}", model.Order.OrderNumber, ex)); } } }
public QuoteResponseViewModel Quote(OrderViewModel order, ref List <ValidationErrorViewModel> errors) { try { if (null == errors) { errors = new List <ValidationErrorViewModel>(); } if (ValidateOrderViewModel(order)) { if (_mobileQuoteHelper.CheckIfOrderCompleted(order.Id)) { errors.Add( new ValidationErrorViewModel { Code = 109999, Reason = string.Format("order for guid {0} already completed", order.Id) }); string countrydup = order.Locale.Substring(3, 2); DualOrderMonthViewModel orderMonthDatadup = _dualOrderMonthProvider.GetDualOrderMonth(countrydup); return(new QuoteResponseViewModel { Order = order, DualOrderMonth = new DualOrderMonthViewModel { PreviousOrderMonthEndDate = orderMonthDatadup != null ? orderMonthDatadup.PreviousOrderMonthEndDate : string.Empty, PreviousOrderMonth = orderMonthDatadup != null ? orderMonthDatadup.PreviousOrderMonth : 0, }, }); } var shoppingCart = _mobileQuoteHelper.PriceCart(ref order, ref errors, checkSkuAvalability: true, checkUnSupportedAddress: true); if (shoppingCart != null) { var ruleErrors = CheckForError(shoppingCart.RuleResults); if (null != ruleErrors && ruleErrors.Any()) { errors.AddRange(ruleErrors); } if (errors != null && errors.Count > 1 && errors.Find(f => f.Code.Equals(110430)) != null) { errors.RemoveAll(e => e.Code.Equals(10416)); } string country = order.Locale.Substring(3, 2); DualOrderMonthViewModel orderMonthData = _dualOrderMonthProvider.GetDualOrderMonth(country); var dualOrderMonth = new DualOrderMonthResponseViewModel { PreviousOrderMonth = orderMonthData != null? orderMonthData.PreviousOrderMonth :0, PreviousOrderMonthEndDate = orderMonthData != null? orderMonthData.PreviousOrderMonthEndDate : string.Empty }; var result = new QuoteResponseViewModel { Order = order, DualOrderMonth = new DualOrderMonthViewModel { PreviousOrderMonthEndDate = dualOrderMonth.PreviousOrderMonthEndDate, PreviousOrderMonth = dualOrderMonth.PreviousOrderMonth }, }; SaveMobileQuoteResponse(result, shoppingCart.ShoppingCartID); return(result); } } errors.Add( new ValidationErrorViewModel { Code = 100416, Reason = "Quote failed" }); return(new QuoteResponseViewModel { Order = order, }); } catch (Exception ex) { LoggerHelper.Exception("System.Exception", ex, "Exception in Quote method MobileQuoteProvider"); errors.Add( new ValidationErrorViewModel { Code = 100416, Reason = "Quote failed" }); return(new QuoteResponseViewModel { Order = order, }); } }