public Dictionary <ILineItem, List <ValidationIssue> > ValidateCart(ICart cart) { var validationIssues = new Dictionary <ILineItem, List <ValidationIssue> >(); if (cart.Name.Equals(DefaultWishListName)) { cart.UpdatePlacedPriceOrRemoveLineItems(_customerContext.GetContactById(cart.CustomerId), (item, issue) => validationIssues.AddValidationIssues(item, issue), _placedPriceProcessor); return(validationIssues); } 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 virtual Dictionary <ILineItem, List <ValidationIssue> > ValidateCart(ICart cart) { 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); return(validationIssues); }
public virtual FoundationContact GetContactById(string contactId) { if (string.IsNullOrEmpty(contactId)) { return(null); } var contact = _customerContext.GetContactById(new Guid(contactId)); return(contact != null ? new FoundationContact(contact) : null); }
public Dictionary <ILineItem, List <ValidationIssue> > ValidateCart(ICart cart) { var validationIssues = new Dictionary <ILineItem, List <ValidationIssue> >(); if (cart.Name.Equals(DefaultWishListName)) { cart.UpdatePlacedPriceOrRemoveLineItems(_customerContext.GetContactById(cart.CustomerId), (item, issue) => validationIssues.AddValidationIssues(item, issue), _placedPriceProcessor); return(validationIssues); } 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); var shipments = cart.GetFirstForm().Shipments; foreach (var shipment in shipments) { var dynamicLineItems = shipment.LineItems.Where(x => !string.IsNullOrEmpty(x.Properties[VariantOptionCodesProperty]?.ToString())); foreach (var item in dynamicLineItems) { var dynamicCodesStr = item.Properties[VariantOptionCodesProperty].ToString(); var dynamicCodes = dynamicCodesStr.Split(','); var contentLink = _referenceConverter.GetContentLink(item.Code); var variant = _contentLoader.Get <IContent>(contentLink) as DynamicVariant; var dynamicVariants = variant.VariantOptions.Where(x => dynamicCodes.Contains(x.Code)); var totalDynamicVariantsPrice = dynamicVariants.Sum(x => x.Prices.FirstOrDefault(p => p.Currency == cart.Currency.CurrencyCode).Amount); item.Properties["BasePrice"] = item.PlacedPrice; item.Properties["OptionPrice"] = totalDynamicVariantsPrice; item.PlacedPrice += totalDynamicVariantsPrice; cart.UpdateLineItemQuantity(shipment, item, item.Quantity); } } cart.ApplyDiscounts(_promotionEngine, new PromotionEngineSettings()); return(validationIssues); }
private Dictionary <ILineItem, List <ValidationIssue> > ValidatePurchaseOrder(IPurchaseOrder purchaseOrder) { var validationIssues = new Dictionary <ILineItem, List <ValidationIssue> >(); purchaseOrder.UpdatePlacedPriceOrRemoveLineItems(_customerContext.GetContactById(purchaseOrder.CustomerId), (item, issue) => validationIssues.AddValidationIssues(item, issue), _placedPriceProcessor); purchaseOrder.UpdateInventoryOrRemoveLineItems((item, issue) => validationIssues.AddValidationIssues(item, issue)); purchaseOrder.AdjustInventoryOrRemoveLineItems((item, issue) => validationIssues.AddValidationIssues(item, issue)); purchaseOrder.ApplyDiscounts(_promotionEngine, new PromotionEngineSettings()); return(validationIssues); }
/// <summary> /// Map credit card of commerce core to credit card view model /// </summary> /// <param name="creditCard">Source credit card</param> /// <param name="creditCardModel">Target credit card</param> public void MapToModel(Mediachase.Commerce.Customers.CreditCard creditCard, ref CreditCardModel creditCardModel) { creditCardModel.CreditCardType = (Mediachase.Commerce.Customers.CreditCard.eCreditCardType)creditCard.CardType; creditCardModel.CreditCardNumber = creditCard.CreditCardNumber; creditCardModel.CreditCardSecurityCode = creditCard.SecurityCode; creditCardModel.ExpirationMonth = creditCard.ExpirationMonth; creditCardModel.ExpirationYear = creditCard.ExpirationYear; creditCardModel.CreditCardId = creditCard.PrimaryKeyId.ToString(); if (creditCard.OrganizationId != null) { creditCardModel.Organization = _organizationService.GetOrganizationModel((Guid)creditCard.OrganizationId); } else if (creditCard.ContactId != null) { creditCardModel.CurrentContact = _customerContext.GetContactById(new Guid(creditCard.ContactId.ToString())); } }