public IViewComponentResult Invoke() { //var model = ; //if (model != null) { //return View("~/Plugins/Payments.SigoCreditos/Views/SigoCreditosInfo.cshtml", model); //return View("~/Plugins/Payments.SigoCreditos/Views/_ConsumoSigoCreditos.cshtml", model); Dictionary <int, string> TipoDocumentoJuridico = new Dictionary <int, string>() { { 2, "J" }, { 3, "G" }, { 6, "V" }, { 7, "E" }, { 8, "C" }, }; var CustomerEcommerce = _workContext.CurrentCustomer; var selectedCustomerAttributesString = _GenericAttributeService.GetAttribute <string>(CustomerEcommerce, NopCustomerDefaults.CustomCustomerAttributes); var documento = _CustomerService.ParseValues(selectedCustomerAttributesString, 1).FirstOrDefault(); var tipoDocumento = _CustomerService.ParseValues(selectedCustomerAttributesString, 8).FirstOrDefault(); string pDocumento = tipoDocumento.Equals("2") ? documento.Substring(1) : documento; int pTipoCodTipo = tipoDocumento.Equals("2") ? TipoDocumentoJuridico.FirstOrDefault(x => x.Value == documento.ToUpper().Substring(0, 1)).Key : Convert.ToInt64(pDocumento) > 80000000 ? (int)TipoDocumentoNatural.E : (int)TipoDocumentoNatural.V; ViewData["tipoDocumento"] = tipoDocumento; var model = ObtenerPuntosxCliente(pTipoCodTipo, pDocumento); return(View("~/Plugins/Payments.SigoCreditos/Views/_ConsumoSigoCreditos.cshtml", 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> /// Formats attributes /// </summary> /// <param name="attributesXml">Attributes in XML format</param> /// <param name="serapator">Serapator</param> /// <param name="htmlEncode">A value indicating whether to encode (HTML) values</param> /// <returns>Attributes</returns> public virtual async Task <string> FormatAttributes(string attributesXml, string serapator = "<br />", bool htmlEncode = true) { var result = new StringBuilder(); var attributes = await _customerAttributeParser.ParseCustomerAttributes(attributesXml); for (int i = 0; i < attributes.Count; i++) { var attribute = attributes[i]; var valuesStr = _customerAttributeParser.ParseValues(attributesXml, attribute.Id); for (int j = 0; j < valuesStr.Count; j++) { string valueStr = valuesStr[j]; string formattedAttribute = ""; if (!attribute.ShouldHaveValues()) { //no values if (attribute.AttributeControlType == AttributeControlType.MultilineTextbox) { //multiline textbox var attributeName = attribute.GetLocalized(a => a.Name, _workContext.WorkingLanguage.Id); //encode (if required) if (htmlEncode) { attributeName = WebUtility.HtmlEncode(attributeName); } formattedAttribute = string.Format("{0}: {1}", attributeName, HtmlHelper.FormatText(valueStr, false, true, false, false, false, false)); //we never encode multiline textbox input } else if (attribute.AttributeControlType == AttributeControlType.FileUpload) { //file upload //not supported for customer attributes } else { //other attributes (textbox, datepicker) formattedAttribute = string.Format("{0}: {1}", attribute.GetLocalized(a => a.Name, _workContext.WorkingLanguage.Id), valueStr); //encode (if required) if (htmlEncode) { formattedAttribute = WebUtility.HtmlEncode(formattedAttribute); } } } else { string attributeValueId = valueStr; var attributeValue = attribute.CustomerAttributeValues.FirstOrDefault(x => x.Id == attributeValueId); if (attributeValue != null) { formattedAttribute = string.Format("{0}: {1}", attribute.GetLocalized(a => a.Name, _workContext.WorkingLanguage.Id), attributeValue.GetLocalized(a => a.Name, _workContext.WorkingLanguage.Id)); } //encode (if required) if (htmlEncode) { formattedAttribute = WebUtility.HtmlEncode(formattedAttribute); } } if (!String.IsNullOrEmpty(formattedAttribute)) { if (i != 0 || j != 0) { result.Append(serapator); } result.Append(formattedAttribute); } } } return(result.ToString()); }
/// <summary> /// Formats attributes /// </summary> /// <param name="attributesXml">Attributes in XML format</param> /// <param name="separator">Separator</param> /// <param name="htmlEncode">A value indicating whether to encode (HTML) values</param> /// <returns>Attributes</returns> public virtual string FormatAttributes(string attributesXml, string separator = "<br />", bool htmlEncode = true) { var result = new StringBuilder(); var attributes = _customerAttributeParser.ParseCustomerAttributes(attributesXml); for (var i = 0; i < attributes.Count; i++) { var attribute = attributes[i]; var valuesStr = _customerAttributeParser.ParseValues(attributesXml, attribute.Id); for (var j = 0; j < valuesStr.Count; j++) { var valueStr = valuesStr[j]; var formattedAttribute = string.Empty; if (!attribute.ShouldHaveValues()) { //no values if (attribute.AttributeControlType == AttributeControlType.MultilineTextbox) { //multiline textbox var attributeName = _localizationService.GetLocalized(attribute, a => a.Name, _workContext.WorkingLanguage.Id); //encode (if required) if (htmlEncode) { attributeName = WebUtility.HtmlEncode(attributeName); } formattedAttribute = $"{attributeName}: {HtmlHelper.FormatText(valueStr, false, true, false, false, false, false)}"; //we never encode multiline textbox input } else if (attribute.AttributeControlType == AttributeControlType.FileUpload) { //file upload //not supported for customer attributes } else { //other attributes (textbox, datepicker) formattedAttribute = $"{_localizationService.GetLocalized(attribute, a => a.Name, _workContext.WorkingLanguage.Id)}: {valueStr}"; //encode (if required) if (htmlEncode) { formattedAttribute = WebUtility.HtmlEncode(formattedAttribute); } } } else { if (int.TryParse(valueStr, out var attributeValueId)) { var attributeValue = _customerAttributeService.GetCustomerAttributeValueById(attributeValueId); if (attributeValue != null) { formattedAttribute = $"{_localizationService.GetLocalized(attribute, a => a.Name, _workContext.WorkingLanguage.Id)}: {_localizationService.GetLocalized(attributeValue, a => a.Name, _workContext.WorkingLanguage.Id)}"; } //encode (if required) if (htmlEncode) { formattedAttribute = WebUtility.HtmlEncode(formattedAttribute); } } } if (string.IsNullOrEmpty(formattedAttribute)) { continue; } if (i != 0 || j != 0) { result.Append(separator); } result.Append(formattedAttribute); } } return(result.ToString()); }
/// <summary> /// Gets selected customer attribute value /// </summary> /// <param name="attributesXml">Attributes in XML format</param> /// <param name="customerAttributeId">Customer attribute identifier</param> /// <returns>Customer attribute value</returns> IList <string> ParseValues(string attributesXml, int customerAttributeId) { return(_customerAttributeParser.ParseValues(attributesXml, 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); } }
public async Task <IList <CustomerAttributeModel> > Handle(GetCustomAttributes request, CancellationToken cancellationToken) { var result = new List <CustomerAttributeModel>(); var customerAttributes = await _customerAttributeService.GetAllCustomerAttributes(); foreach (var attribute in customerAttributes) { var attributeModel = new CustomerAttributeModel { Id = attribute.Id, Name = attribute.GetLocalized(x => x.Name, request.Language.Id), IsRequired = attribute.IsRequired, AttributeControlType = attribute.AttributeControlType, }; if (attribute.ShouldHaveValues()) { //values var attributeValues = attribute.CustomerAttributeValues; foreach (var attributeValue in attributeValues) { var valueModel = new CustomerAttributeValueModel { Id = attributeValue.Id, Name = attributeValue.GetLocalized(x => x.Name, request.Language.Id), IsPreSelected = attributeValue.IsPreSelected }; attributeModel.Values.Add(valueModel); } } //set already selected attributes var selectedAttributesXml = !string.IsNullOrEmpty(request.OverrideAttributesXml) ? request.OverrideAttributesXml : request.Customer.GetAttributeFromEntity <string>(SystemCustomerAttributeNames.CustomCustomerAttributes); 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 = await _customerAttributeParser.ParseCustomerAttributeValues(selectedAttributesXml); foreach (var attributeValue in selectedValues) { if (attributeModel.Id == attributeValue.CustomerAttributeId) { 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); }