public ActionResult ValueList(int customerAttributeId, DataSourceRequest command) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageSettings)) { return(AccessDeniedView()); } var values = _customerAttributeService.GetCustomerAttributeValues(customerAttributeId); var gridModel = new DataSourceResult { Data = values.Select(x => { return(new CustomerAttributeValueModel() { Id = x.Id, CustomerAttributeId = x.CustomerAttributeId, Name = x.Name, IsPreSelected = x.IsPreSelected, DisplayOrder = x.DisplayOrder, }); }), Total = values.Count() }; return(Json(gridModel)); }
/// <summary> /// Prepare paged customer attribute value list model /// </summary> /// <param name="searchModel">Customer attribute value search model</param> /// <param name="customerAttribute">Customer attribute</param> /// <returns>Customer attribute value list model</returns> public virtual CustomerAttributeValueListModel PrepareCustomerAttributeValueListModel(CustomerAttributeValueSearchModel searchModel, CustomerAttribute customerAttribute) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (customerAttribute == null) { throw new ArgumentNullException(nameof(customerAttribute)); } //get customer attribute values var customerAttributeValues = _customerAttributeService .GetCustomerAttributeValues(customerAttribute.Id).ToPagedList(searchModel); //prepare list model var model = new CustomerAttributeValueListModel().PrepareToGrid(searchModel, customerAttributeValues, () => { //fill in model values from the entity return(customerAttributeValues.Select(value => value.ToModel <CustomerAttributeValueModel>())); }); return(model); }
/// <summary> /// Prepare paged customer attribute value list model /// </summary> /// <param name="searchModel">Customer attribute value search model</param> /// <param name="customerAttribute">Customer attribute</param> /// <returns>Customer attribute value list model</returns> public virtual CustomerAttributeValueListModel PrepareCustomerAttributeValueListModel(CustomerAttributeValueSearchModel searchModel, CustomerAttribute customerAttribute) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (customerAttribute == null) { throw new ArgumentNullException(nameof(customerAttribute)); } //get customer attribute values var customerAttributeValues = _customerAttributeService.GetCustomerAttributeValues(customerAttribute.Id); //prepare list model var model = new CustomerAttributeValueListModel { //fill in model values from the entity Data = customerAttributeValues.PaginationByRequestModel(searchModel) .Select(value => value.ToModel <CustomerAttributeValueModel>()), Total = customerAttributeValues.Count }; return(model); }
public virtual IList <CustomerAttributeModel> PrepareCustomCustomerAttributes(Customer customer, string overrideAttributesXml = "") { if (customer == null) { throw new ArgumentNullException("customer"); } var result = new List <CustomerAttributeModel>(); var customerAttributes = _customerAttributeService.GetAllCustomerAttributes(); foreach (var attribute in customerAttributes) { var attributeModel = new CustomerAttributeModel { Id = attribute.Id, Name = attribute.GetLocalized(x => x.Name), IsRequired = attribute.IsRequired, AttributeControlType = attribute.AttributeControlType, }; if (attribute.ShouldHaveValues()) { //values var attributeValues = _customerAttributeService.GetCustomerAttributeValues(attribute.Id); foreach (var attributeValue in attributeValues) { var valueModel = new CustomerAttributeValueModel { Id = attributeValue.Id, Name = attributeValue.GetLocalized(x => x.Name), IsPreSelected = attributeValue.IsPreSelected }; attributeModel.Values.Add(valueModel); } } //set already selected attributes var selectedAttributesXml = !String.IsNullOrEmpty(overrideAttributesXml) ? overrideAttributesXml : customer.GetAttribute <string>(SystemCustomerAttributeNames.CustomCustomerAttributes, _genericAttributeService); switch (attribute.AttributeControlType) { case AttributeControlType.DropdownList: case AttributeControlType.RadioList: case AttributeControlType.Checkboxes: { if (!String.IsNullOrEmpty(selectedAttributesXml)) { //clear default selection foreach (var item in attributeModel.Values) { item.IsPreSelected = false; } //select new values var selectedValues = _customerAttributeParser.ParseCustomerAttributeValues(selectedAttributesXml); foreach (var attributeValue in selectedValues) { foreach (var item in attributeModel.Values) { if (attributeValue.Id == item.Id) { item.IsPreSelected = true; } } } } } break; case AttributeControlType.ReadonlyCheckboxes: { //do nothing //values are already pre-set } break; case AttributeControlType.TextBox: case AttributeControlType.MultilineTextbox: { if (!String.IsNullOrEmpty(selectedAttributesXml)) { var enteredText = _customerAttributeParser.ParseValues(selectedAttributesXml, attribute.Id); if (enteredText.Any()) { attributeModel.DefaultValue = enteredText[0]; } } } break; case AttributeControlType.ColorSquares: case AttributeControlType.ImageSquares: case AttributeControlType.Datepicker: case AttributeControlType.FileUpload: default: //not supported attribute control types break; } result.Add(attributeModel); } return(result); }
/// <summary> /// Gets customer attribute values by customer attribute identifier /// </summary> /// <param name="customerAttributeId">The customer attribute identifier</param> /// <returns>Customer attribute values</returns> public IList <CustomerAttributeValue> GetCustomerAttributeValues(int customerAttributeId) { return(_customerAttributeService.GetCustomerAttributeValues(customerAttributeId)); }
protected virtual void PrepareCustomerAttributeModel(CustomerModel model, Customer customer) { var customerAttributes = _customerAttributeService.GetAllCustomerAttributes(); foreach (var attribute in customerAttributes) { var attributeModel = new CustomerModel.CustomerAttributeModel { Id = attribute.Id, Name = attribute.Name, IsRequired = attribute.IsRequired, AttributeControlType = attribute.AttributeControlType, }; if (attribute.ShouldHaveValues()) { //values var attributeValues = _customerAttributeService.GetCustomerAttributeValues(attribute.Id); foreach (var attributeValue in attributeValues) { var attributeValueModel = new CustomerModel.CustomerAttributeValueModel { Id = attributeValue.Id, Name = attributeValue.Name, IsPreSelected = attributeValue.IsPreSelected }; attributeModel.Values.Add(attributeValueModel); } } //set already selected attributes if (customer != null) { var selectedCustomerAttributes = customer.GetAttribute <string>(SystemCustomerAttributeNames.CustomCustomerAttributes, _genericAttributeService); switch (attribute.AttributeControlType) { case AttributeControlType.DropdownList: case AttributeControlType.RadioList: case AttributeControlType.Checkboxes: { if (!string.IsNullOrEmpty(selectedCustomerAttributes)) { //clear default selection foreach (var item in attributeModel.Values) { item.IsPreSelected = false; } //select new values var selectedValues = _customerAttributeParser.ParseCustomerAttributeValues(selectedCustomerAttributes); foreach (var attributeValue in selectedValues) { foreach (var item in attributeModel.Values) { if (attributeValue.Id == item.Id) { item.IsPreSelected = true; } } } } } break; case AttributeControlType.ReadonlyCheckboxes: { //do nothing //values are already pre-set } break; case AttributeControlType.TextBox: case AttributeControlType.MultilineTextbox: { if (!string.IsNullOrEmpty(selectedCustomerAttributes)) { var enteredText = _customerAttributeParser.ParseValues(selectedCustomerAttributes, attribute.Id); if (enteredText.Any()) { attributeModel.DefaultValue = enteredText[0]; } } } break; case AttributeControlType.Datepicker: case AttributeControlType.ColorSquares: case AttributeControlType.ImageSquares: case AttributeControlType.FileUpload: default: //not supported attribute control types break; } } model.CustomerAttributes.Add(attributeModel); } }
protected virtual string ParseCustomCustomerAttributes(FormCollection form) { if (form == null) { throw new ArgumentNullException("form"); } string attributesXml = ""; var attributes = _customerAttributeService.GetAllCustomerAttributes(); foreach (var attribute in attributes) { string controlId = string.Format("customer_attribute_{0}", attribute.Id); switch (attribute.AttributeControlType) { case AttributeControlType.DropdownList: case AttributeControlType.RadioList: { var ctrlAttributes = form[controlId]; if (!String.IsNullOrEmpty(ctrlAttributes)) { int selectedAttributeId = int.Parse(ctrlAttributes); if (selectedAttributeId > 0) { attributesXml = _customerAttributeParser.AddCustomerAttribute(attributesXml, attribute, selectedAttributeId.ToString()); } } } break; case AttributeControlType.Checkboxes: { var cblAttributes = form[controlId]; if (!String.IsNullOrEmpty(cblAttributes)) { foreach (var item in cblAttributes.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries) ) { int selectedAttributeId = int.Parse(item); if (selectedAttributeId > 0) { attributesXml = _customerAttributeParser.AddCustomerAttribute(attributesXml, attribute, selectedAttributeId.ToString()); } } } } break; case AttributeControlType.ReadonlyCheckboxes: { //load read-only (already server-side selected) values var attributeValues = _customerAttributeService.GetCustomerAttributeValues(attribute.Id); foreach (var selectedAttributeId in attributeValues .Where(v => v.IsPreSelected) .Select(v => v.Id) .ToList()) { attributesXml = _customerAttributeParser.AddCustomerAttribute(attributesXml, attribute, selectedAttributeId.ToString()); } } break; case AttributeControlType.TextBox: case AttributeControlType.MultilineTextbox: { var ctrlAttributes = form[controlId]; if (!String.IsNullOrEmpty(ctrlAttributes)) { string enteredText = ctrlAttributes.Trim(); attributesXml = _customerAttributeParser.AddCustomerAttribute(attributesXml, attribute, enteredText); } } break; case AttributeControlType.Datepicker: case AttributeControlType.ColorSquares: case AttributeControlType.ImageSquares: case AttributeControlType.FileUpload: //not supported customer attributes default: break; } } return(attributesXml); }