コード例 #1
0
 public override void ExpandView(MixCmsContext _context = null, IDbContextTransaction _transaction = null)
 {
     Data = new JObject();
     Data.Add(new JProperty("id", Id));
     Data.Add(new JProperty("details", $"/api/v1/odata/{Specificulture}/attribute-set-data/mobile-full/{Id}"));
     Values = MixAttributeSetValues.ODataMobileFullViewModel
              .Repository.GetModelListBy(a => a.DataId == Id && a.Specificulture == Specificulture, _context, _transaction).Data.OrderBy(a => a.Priority).ToList();
     Fields = MixAttributeFields.ODataMobileFullViewModel.Repository.GetModelListBy(f => f.AttributeSetId == AttributeSetId, _context, _transaction).Data;
     foreach (var field in Fields.OrderBy(f => f.Priority))
     {
         var val = Values.FirstOrDefault(v => v.AttributeFieldId == field.Id);
         if (val == null)
         {
             val = new MixAttributeSetValues.ODataMobileFullViewModel(
                 new MixAttributeSetValue()
             {
                 AttributeFieldId = field.Id
             }
                 , _context, _transaction);
             val.Field = field;
             val.AttributeFieldName = field.Name;
             val.StringValue        = field.DefaultValue;
             val.Priority           = field.Priority;
             Values.Add(val);
         }
         val.AttributeSetName = AttributeSetName;
         val.Priority         = field.Priority;
         val.Field            = field;
     }
     ;
 }
コード例 #2
0
        private JProperty ParseValue(MixAttributeSetValues.ODataMobileFullViewModel 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.Number:
                return(new JProperty(item.AttributeFieldName, item.IntegerValue));

            case MixEnums.MixDataType.Reference:
                JArray arr = new JArray();
                foreach (var nav in item.DataNavs)
                {
                    arr.Add(nav.Data.Data);
                }
                return(new JProperty(item.AttributeFieldName, arr));

            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));
            }
        }
コード例 #3
0
        public override MixAttributeSetData ParseModel(MixCmsContext _context = null, IDbContextTransaction _transaction = null)
        {
            if (string.IsNullOrEmpty(Id))
            {
                Id = Guid.NewGuid().ToString();
                CreatedDateTime = DateTime.UtcNow;
                Priority        = Repository.Count(m => m.AttributeSetName == AttributeSetName && m.Specificulture == Specificulture, _context, _transaction).Data + 1;
            }
            Values = Values ?? MixAttributeSetValues.ODataMobileFullViewModel
                     .Repository.GetModelListBy(a => a.DataId == Id && a.Specificulture == Specificulture, _context, _transaction).Data.OrderBy(a => a.Priority).ToList();
            Fields = MixAttributeFields.ODataMobileFullViewModel.Repository.GetModelListBy(f => f.AttributeSetId == AttributeSetId, _context, _transaction).Data;
            foreach (var field in Fields.OrderBy(f => f.Priority))
            {
                var val = Values.FirstOrDefault(v => v.AttributeFieldId == field.Id);
                if (val == null)
                {
                    val = new MixAttributeSetValues.ODataMobileFullViewModel(
                        new MixAttributeSetValue()
                    {
                        AttributeFieldId   = field.Id,
                        AttributeFieldName = field.Name,
                    }
                        , _context, _transaction);
                    val.Priority = field.Priority;
                    Values.Add(val);
                }
                val.Priority         = field.Priority;
                val.AttributeSetName = AttributeSetName;
                if (Data[val.AttributeFieldName] != null)
                {
                    ParseModelValue(Data[val.AttributeFieldName], val);
                }
                else
                {
                    Data.Add(ParseValue(val));
                }
            }

            return(base.ParseModel(_context, _transaction));;
        }
コード例 #4
0
        private void ParseModelValue(JToken property, MixAttributeSetValues.ODataMobileFullViewModel item)
        {
            switch (item.DataType)
            {
            case MixEnums.MixDataType.DateTime:
                item.DateTimeValue = property.Value <DateTime?>();
                break;

            case MixEnums.MixDataType.Date:
                item.DateTimeValue = property.Value <DateTime?>();
                break;

            case MixEnums.MixDataType.Time:
                item.DateTimeValue = property.Value <DateTime?>();
                break;

            case MixEnums.MixDataType.Double:
                item.DoubleValue = property.Value <double?>();
                break;

            case MixEnums.MixDataType.Boolean:
                item.BooleanValue = property.Value <bool?>();
                break;

            case MixEnums.MixDataType.Number:
                item.IntegerValue = property.Value <int?>();
                break;

            case MixEnums.MixDataType.Reference:
                //string url = $"/api/v1/odata/en-us/related-attribute-set-data/mobile/parent/set/{Id}/{item.Field.ReferenceId}";

                //foreach (var nav in item.DataNavs)
                //{
                //    arr.Add(nav.Data.Data);
                //}
                //return (new JProperty(item.AttributeFieldName, url));
                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.Upload:
            case MixEnums.MixDataType.Color:
            case MixEnums.MixDataType.Icon:
            case MixEnums.MixDataType.VideoYoutube:
            case MixEnums.MixDataType.TuiEditor:
            default:
                item.StringValue = property.Value <string>();
                break;
            }
            item.StringValue = property.Value <string>();
        }