public override MixAttributeSetData ParseModel(MixCmsContext _context = null, IDbContextTransaction _transaction = null) { if (string.IsNullOrEmpty(Id)) { Id = Guid.NewGuid().ToString(); CreatedDateTime = DateTime.UtcNow; } Fields = Fields ?? new List <Lib.ViewModels.MixAttributeFields.UpdateViewModel>(); Values = new List <MixAttributeSetValues.ImportViewModel>(); foreach (var field in Fields) { var val = new MixAttributeSetValues.ImportViewModel() { AttributeFieldId = field.Id, AttributeFieldName = field.Name, StringValue = field.DefaultValue, Priority = field.Priority, Field = field }; val.Priority = field.Priority; val.DataType = field.DataType; val.AttributeSetName = field.AttributeSetName; if (Data[val.AttributeFieldName] != null) { if (val.Field.DataType != MixEnums.MixDataType.Reference) { ParseModelValue(Data[val.AttributeFieldName], val); } } Values.Add(val); } return(base.ParseModel(_context, _transaction)); }
private JProperty ParseValue(MixAttributeSetValues.ImportViewModel item) { switch (item.DataType) { case MixEnums.MixDataType.DateTime: return(new JProperty(item.AttributeFieldName, item.DateTimeValue)); case MixEnums.MixDataType.Date: return(new JProperty(item.AttributeFieldName, item.DateTimeValue)); case MixEnums.MixDataType.Time: return(new JProperty(item.AttributeFieldName, item.DateTimeValue)); case MixEnums.MixDataType.Double: return(new JProperty(item.AttributeFieldName, item.DoubleValue)); case MixEnums.MixDataType.Boolean: return(new JProperty(item.AttributeFieldName, item.BooleanValue)); case MixEnums.MixDataType.Integer: return(new JProperty(item.AttributeFieldName, item.IntegerValue)); case MixEnums.MixDataType.Reference: //string url = $"/api/v1/odata/en-us/related-attribute-set-data/mobile/parent/set/{Id}/{item.Field.ReferenceId}"; return(new JProperty(item.AttributeFieldName, new JArray())); case MixEnums.MixDataType.Custom: case MixEnums.MixDataType.Duration: case MixEnums.MixDataType.PhoneNumber: case MixEnums.MixDataType.Text: case MixEnums.MixDataType.Html: case MixEnums.MixDataType.MultilineText: case MixEnums.MixDataType.EmailAddress: case MixEnums.MixDataType.Password: case MixEnums.MixDataType.Url: case MixEnums.MixDataType.ImageUrl: case MixEnums.MixDataType.CreditCard: case MixEnums.MixDataType.PostalCode: case MixEnums.MixDataType.Upload: case MixEnums.MixDataType.Color: case MixEnums.MixDataType.Icon: case MixEnums.MixDataType.VideoYoutube: case MixEnums.MixDataType.TuiEditor: default: return(new JProperty(item.AttributeFieldName, item.StringValue)); } }
private void ParseModelValue(JToken property, MixAttributeSetValues.ImportViewModel item) { switch (item.Field.DataType) { case MixEnums.MixDataType.DateTime: item.DateTimeValue = property.Value <DateTime?>(); item.StringValue = property.Value <string>(); break; case MixEnums.MixDataType.Date: item.DateTimeValue = property.Value <DateTime?>(); item.StringValue = property.Value <string>(); break; case MixEnums.MixDataType.Time: item.DateTimeValue = property.Value <DateTime?>(); item.StringValue = property.Value <string>(); break; case MixEnums.MixDataType.Double: item.DoubleValue = property.Value <double?>(); item.StringValue = property.Value <string>(); break; case MixEnums.MixDataType.Boolean: item.BooleanValue = property.Value <bool?>(); item.StringValue = property.Value <string>().ToLower(); break; case MixEnums.MixDataType.Number: item.IntegerValue = property.Value <int?>(); item.StringValue = property.Value <string>(); break; case MixEnums.MixDataType.Reference: item.StringValue = property.Value <string>(); break; case MixEnums.MixDataType.Upload: item.StringValue = property.Value <string>(); break; case MixEnums.MixDataType.Custom: case MixEnums.MixDataType.Duration: case MixEnums.MixDataType.PhoneNumber: case MixEnums.MixDataType.Text: case MixEnums.MixDataType.Html: case MixEnums.MixDataType.MultilineText: case MixEnums.MixDataType.EmailAddress: case MixEnums.MixDataType.Password: case MixEnums.MixDataType.Url: case MixEnums.MixDataType.ImageUrl: case MixEnums.MixDataType.CreditCard: case MixEnums.MixDataType.PostalCode: case MixEnums.MixDataType.Color: case MixEnums.MixDataType.Icon: case MixEnums.MixDataType.VideoYoutube: case MixEnums.MixDataType.TuiEditor: default: item.StringValue = property.Value <string>(); break; } }
private void ParseModelValue(JToken property, MixAttributeSetValues.ImportViewModel item) { switch (item.Field.DataType) { case MixEnums.MixDataType.DateTime: item.DateTimeValue = property.Value <DateTime?>(); item.StringValue = property.Value <string>(); break; case MixEnums.MixDataType.Date: item.DateTimeValue = property.Value <DateTime?>(); item.StringValue = property.Value <string>(); break; case MixEnums.MixDataType.Time: item.DateTimeValue = property.Value <DateTime?>(); item.StringValue = property.Value <string>(); break; case MixEnums.MixDataType.Double: item.DoubleValue = property.Value <double?>(); item.StringValue = property.Value <string>(); break; case MixEnums.MixDataType.Boolean: item.BooleanValue = property.Value <bool?>(); item.StringValue = property.Value <string>()?.ToLower(); break; case MixEnums.MixDataType.Integer: item.IntegerValue = property.Value <int?>(); item.StringValue = property.Value <string>(); break; case MixEnums.MixDataType.Reference: item.StringValue = property.Value <string>(); break; case MixEnums.MixDataType.Upload: string mediaData = property.Value <string>(); if (mediaData.IsBase64()) { Lib.ViewModels.MixMedias.UpdateViewModel media = new Lib.ViewModels.MixMedias.UpdateViewModel() { Specificulture = Specificulture, Status = MixEnums.MixContentStatus.Published, MediaFile = new Lib.ViewModels.FileViewModel() { FileStream = mediaData, Extension = ".png", Filename = Guid.NewGuid().ToString(), FileFolder = "Attributes" } }; var saveMedia = media.SaveModel(true); if (saveMedia.IsSucceed) { item.StringValue = saveMedia.Data.FullPath; Data[item.AttributeFieldName] = item.StringValue; } } else { item.StringValue = mediaData; } break; case MixEnums.MixDataType.Custom: case MixEnums.MixDataType.Duration: case MixEnums.MixDataType.PhoneNumber: case MixEnums.MixDataType.Text: case MixEnums.MixDataType.Html: case MixEnums.MixDataType.MultilineText: case MixEnums.MixDataType.EmailAddress: case MixEnums.MixDataType.Password: case MixEnums.MixDataType.Url: case MixEnums.MixDataType.ImageUrl: case MixEnums.MixDataType.CreditCard: case MixEnums.MixDataType.PostalCode: case MixEnums.MixDataType.Color: case MixEnums.MixDataType.Icon: case MixEnums.MixDataType.VideoYoutube: case MixEnums.MixDataType.TuiEditor: default: item.StringValue = property.Value <string>(); break; } }