public Dictionary <ILineItem, List <ValidationIssue> > ValidateCart(ICart cart) { if (cart.Name.Equals(DefaultWishListName)) { return(new Dictionary <ILineItem, List <ValidationIssue> >()); } var validationIssues = new Dictionary <ILineItem, List <ValidationIssue> >(); cart.ValidateOrRemoveLineItems((item, issue) => validationIssues.AddValidationIssues(item, issue), _lineItemValidator); cart.UpdatePlacedPriceOrRemoveLineItems(_customerContext.GetContactById(cart.CustomerId), (item, issue) => validationIssues.AddValidationIssues(item, issue), _placedPriceProcessor); cart.UpdateInventoryOrRemoveLineItems((item, issue) => validationIssues.AddValidationIssues(item, issue), _inventoryProcessor); ApplyDiscounts(cart); // Try to validate gift items inventory and don't catch validation issues. cart.UpdateInventoryOrRemoveLineItems((item, issue) => { if (!item.IsGift) { validationIssues.AddValidationIssues(item, issue); } else { validationIssues.AddValidationIssues(item, ValidationIssue.RemovedGiftDueToInsufficientQuantityInInventory); } }, _inventoryProcessor); return(validationIssues); }
public virtual CustomerContact GetCustomerContact(string email) { if (email == null) { throw new ArgumentNullException("email"); } CustomerContact contact = null; SiteUser user = GetUser(email); if (user != null) { contact = _customerContext.GetContactById(new Guid(user.Id)); } return(contact); }
public Dictionary <ILineItem, List <ValidationIssue> > ValidateCart(ICart cart) { if (cart.Name.Equals(DefaultWishListName)) { return(new Dictionary <ILineItem, List <ValidationIssue> >()); } var validationIssues = new Dictionary <ILineItem, List <ValidationIssue> >(); cart.ValidateOrRemoveLineItems((item, issue) => validationIssues.AddValidationIssues(item, issue), _lineItemValidator); cart.UpdatePlacedPriceOrRemoveLineItems(_customerContext.GetContactById(cart.CustomerId), (item, issue) => validationIssues.AddValidationIssues(item, issue), _placedPriceProcessor); cart.UpdateInventoryOrRemoveLineItems((item, issue) => validationIssues.AddValidationIssues(item, issue), _inventoryProcessor); cart.ApplyDiscounts(_promotionEngine, new PromotionEngineSettings()); return(validationIssues); }
public ActionResult Index(OrderConfirmationRegistrationBlock currentBlock) { OrderConfirmationRegistrationModel model = null; var orderNumber = ControllerContext.ParentActionViewContext.ViewData["OrderNumber"] as int? ?? -1; var contactId = ControllerContext.ParentActionViewContext.ViewData["ContactId"] as Guid? ?? Guid.Empty; var order = _orderRepository.Load <IPurchaseOrder>(orderNumber); if (order == null || _customerContext.GetContactById(order.CustomerId) != null) { return(null); } ApplicationUser user = UserService.GetUser(order.GetFirstForm().Payments.First().BillingAddress.Email); if (user != null) { model = new OrderConfirmationRegistrationModel { CurrentBlock = currentBlock, FormModel = new OrderConfirmationRegistrationFormModel { OrderNumber = orderNumber, ContactId = contactId } }; return(PartialView(model.FormModel)); } model = new OrderConfirmationRegistrationModel { CurrentBlock = currentBlock, FormModel = new OrderConfirmationRegistrationFormModel { OrderNumber = orderNumber, ContactId = contactId } }; return(PartialView("NewCustomer", model.FormModel)); }
private bool CheckForOnHoldBudgets() { var currentCustomer = _customerContext.GetContactById(_customerContext.CurrentContactId); if (currentCustomer?.ContactOrganization != null) { var subOrganizationId = new Guid(currentCustomer.ContactOrganization.PrimaryKeyId.Value.ToString()); var purchaserBudget = _budgetService.GetCustomerCurrentBudget(subOrganizationId, _customerContext.CurrentContactId); if (purchaserBudget != null) { if (purchaserBudget.Status.Equals(Constants.BudgetStatus.OnHold)) { return(true); } } var suborganizationCurrentBudget = _budgetService.GetCurrentOrganizationBudget(subOrganizationId); if (suborganizationCurrentBudget != null) { if (suborganizationCurrentBudget.Status.Equals(Constants.BudgetStatus.OnHold)) { return(true); } } var organizationCurrentBudget = _budgetService.GetCurrentOrganizationBudget(_organizationService.GetSubOrganizationById(subOrganizationId.ToString()).ParentOrganizationId); if (organizationCurrentBudget != null) { if (organizationCurrentBudget.Status.Equals(Constants.BudgetStatus.OnHold)) { return(true); } } } return(false); }