public void Can_save_and_load_checkoutAttribute() { var ca = new CheckoutAttribute { Name = "Name 1", TextPrompt = "TextPrompt 1", IsRequired = true, ShippableProductRequired = true, IsTaxExempt = true, TaxCategoryId = 1, AttributeControlType = AttributeControlType.Datepicker, DisplayOrder = 2 }; var fromDb = SaveAndLoadEntity(ca); fromDb.ShouldNotBeNull(); fromDb.Name.ShouldEqual("Name 1"); fromDb.TextPrompt.ShouldEqual("TextPrompt 1"); fromDb.IsRequired.ShouldEqual(true); fromDb.ShippableProductRequired.ShouldEqual(true); fromDb.IsTaxExempt.ShouldEqual(true); fromDb.TaxCategoryId.ShouldEqual(1); fromDb.AttributeControlType.ShouldEqual(AttributeControlType.Datepicker); fromDb.DisplayOrder.ShouldEqual(2); }
public void Can_save_and_load_checkoutAttribute_with_values() { var ca = new CheckoutAttribute { Name = "Name 1", TextPrompt = "TextPrompt 1", IsRequired = true, ShippableProductRequired = true, IsTaxExempt = true, TaxCategoryId = 1, AttributeControlType = AttributeControlType.Datepicker, DisplayOrder = 2 }; ca.CheckoutAttributeValues.Add ( new CheckoutAttributeValue() { Name = "Name 2", PriceAdjustment = 1, WeightAdjustment = 2, IsPreSelected = true, DisplayOrder = 3, } ); var fromDb = SaveAndLoadEntity(ca); fromDb.ShouldNotBeNull(); fromDb.Name.ShouldEqual("Name 1"); fromDb.CheckoutAttributeValues.ShouldNotBeNull(); (fromDb.CheckoutAttributeValues.Count == 1).ShouldBeTrue(); fromDb.CheckoutAttributeValues.First().Name.ShouldEqual("Name 2"); }
/// <summary> /// Deletes a checkout attribute /// </summary> /// <param name="checkoutAttribute">Checkout attribute</param> public virtual void DeleteCheckoutAttribute(CheckoutAttribute checkoutAttribute) { if (checkoutAttribute == null) throw new ArgumentNullException("checkoutAttribute"); _checkoutAttributeRepository.Delete(checkoutAttribute); _cacheManager.RemoveByPattern(CHECKOUTATTRIBUTES_PATTERN_KEY); _cacheManager.RemoveByPattern(CHECKOUTATTRIBUTEVALUES_PATTERN_KEY); //event notification _eventPublisher.EntityDeleted(checkoutAttribute); }
public void UpdateAttributeLocales(CheckoutAttribute checkoutAttribute, CheckoutAttributeModel model) { foreach (var localized in model.Locales) { _localizedEntityService.SaveLocalizedValue(checkoutAttribute, x => x.Name, localized.Name, localized.LanguageId); _localizedEntityService.SaveLocalizedValue(checkoutAttribute, x => x.TextPrompt, localized.TextPrompt, localized.LanguageId); } }
public static CheckoutAttribute ToEntity(this CheckoutAttributeModel model, CheckoutAttribute destination) { return Mapper.Map(model, destination); }
/// <summary> /// Adds an attribute /// </summary> /// <param name="attributes">Attributes</param> /// <param name="ca">Checkout attribute</param> /// <param name="value">Value</param> /// <returns>Attributes</returns> public string AddCheckoutAttribute(string attributes, CheckoutAttribute ca, string value) { string result = string.Empty; try { var xmlDoc = new XmlDocument(); if (String.IsNullOrEmpty(attributes)) { var _element1 = xmlDoc.CreateElement("Attributes"); xmlDoc.AppendChild(_element1); } else { xmlDoc.LoadXml(attributes); } var rootElement = (XmlElement)xmlDoc.SelectSingleNode(@"//Attributes"); XmlElement caElement = null; //find existing var nodeList1 = xmlDoc.SelectNodes(@"//Attributes/CheckoutAttribute"); foreach (XmlNode node1 in nodeList1) { if (node1.Attributes != null && node1.Attributes["ID"] != null) { string str1 = node1.Attributes["ID"].InnerText.Trim(); int id = 0; if (int.TryParse(str1, out id)) { if (id == ca.Id) { caElement = (XmlElement)node1; break; } } } } //create new one if not found if (caElement == null) { caElement = xmlDoc.CreateElement("CheckoutAttribute"); caElement.SetAttribute("ID", ca.Id.ToString()); rootElement.AppendChild(caElement); } var cavElement = xmlDoc.CreateElement("CheckoutAttributeValue"); caElement.AppendChild(cavElement); var cavVElement = xmlDoc.CreateElement("Value"); cavVElement.InnerText = value; cavElement.AppendChild(cavVElement); result = xmlDoc.OuterXml; } catch (Exception exc) { Debug.Write(exc.ToString()); } return result; }
private void PrepareCheckoutAttributeModel(CheckoutAttributeModel model, CheckoutAttribute checkoutAttribute, bool excludeProperties) { if (model == null) throw new ArgumentNullException("model"); //tax categories var taxCategories = _taxCategoryService.GetAllTaxCategories(); foreach (var tc in taxCategories) model.AvailableTaxCategories.Add(new SelectListItem() { Text = tc.Name, Value = tc.Id.ToString(), Selected = checkoutAttribute != null && !excludeProperties && tc.Id == checkoutAttribute.TaxCategoryId }); }
public new void SetUp() { #region Test data //color (dropdownlist) ca1 = new CheckoutAttribute { Id = 1, Name= "Color", TextPrompt = "Select color:", IsRequired = true, AttributeControlType = AttributeControlType.DropdownList, DisplayOrder = 1, }; cav1_1 = new CheckoutAttributeValue { Id = 11, Name = "Green", DisplayOrder = 1, CheckoutAttribute = ca1, CheckoutAttributeId = ca1.Id, }; cav1_2 = new CheckoutAttributeValue { Id = 12, Name = "Red", DisplayOrder = 2, CheckoutAttribute = ca1, CheckoutAttributeId = ca1.Id, }; ca1.CheckoutAttributeValues.Add(cav1_1); ca1.CheckoutAttributeValues.Add(cav1_2); //custom option (checkboxes) ca2 = new CheckoutAttribute { Id = 2, Name = "Custom option", TextPrompt = "Select custom option:", IsRequired = true, AttributeControlType = AttributeControlType.Checkboxes, DisplayOrder = 2, }; cav2_1 = new CheckoutAttributeValue { Id = 21, Name = "Option 1", DisplayOrder = 1, CheckoutAttribute = ca2, CheckoutAttributeId = ca2.Id, }; cav2_2 = new CheckoutAttributeValue { Id = 22, Name = "Option 2", DisplayOrder = 2, CheckoutAttribute = ca2, CheckoutAttributeId = ca2.Id, }; ca2.CheckoutAttributeValues.Add(cav2_1); ca2.CheckoutAttributeValues.Add(cav2_2); //custom text ca3 = new CheckoutAttribute { Id = 3, Name = "Custom text", TextPrompt = "Enter custom text:", IsRequired = true, AttributeControlType = AttributeControlType.MultilineTextbox, DisplayOrder = 3, }; #endregion _checkoutAttributeRepo = MockRepository.GenerateMock<IRepository<CheckoutAttribute>>(); _checkoutAttributeRepo.Expect(x => x.Table).Return(new List<CheckoutAttribute>() { ca1, ca2, ca3 }.AsQueryable()); _checkoutAttributeRepo.Expect(x => x.GetById(ca1.Id)).Return(ca1); _checkoutAttributeRepo.Expect(x => x.GetById(ca2.Id)).Return(ca2); _checkoutAttributeRepo.Expect(x => x.GetById(ca3.Id)).Return(ca3); _checkoutAttributeValueRepo = MockRepository.GenerateMock<IRepository<CheckoutAttributeValue>>(); _checkoutAttributeValueRepo.Expect(x => x.Table).Return(new List<CheckoutAttributeValue>() { cav1_1, cav1_2, cav2_1, cav2_2 }.AsQueryable()); _checkoutAttributeValueRepo.Expect(x => x.GetById(cav1_1.Id)).Return(cav1_1); _checkoutAttributeValueRepo.Expect(x => x.GetById(cav1_2.Id)).Return(cav1_2); _checkoutAttributeValueRepo.Expect(x => x.GetById(cav2_1.Id)).Return(cav2_1); _checkoutAttributeValueRepo.Expect(x => x.GetById(cav2_2.Id)).Return(cav2_2); var cacheManager = new NullCache(); _eventPublisher = MockRepository.GenerateMock<IEventPublisher>(); _eventPublisher.Expect(x => x.Publish(Arg<object>.Is.Anything)); _checkoutAttributeService = new CheckoutAttributeService(cacheManager, _checkoutAttributeRepo, _checkoutAttributeValueRepo, _eventPublisher); _checkoutAttributeParser = new CheckoutAttributeParser(_checkoutAttributeService); var workingLanguage = new Language(); _workContext = MockRepository.GenerateMock<IWorkContext>(); _workContext.Expect(x => x.WorkingLanguage).Return(workingLanguage); _currencyService = MockRepository.GenerateMock<ICurrencyService>(); _taxService = MockRepository.GenerateMock<ITaxService>(); _priceFormatter = MockRepository.GenerateMock<IPriceFormatter>(); _downloadService = MockRepository.GenerateMock<IDownloadService>(); _webHelper = MockRepository.GenerateMock<IWebHelper>(); _checkoutAttributeFormatter = new CheckoutAttributeFormatter(_workContext, _checkoutAttributeService, _checkoutAttributeParser, _currencyService, _taxService, _priceFormatter, _downloadService, _webHelper); }