示例#1
0
        public AddSkuDto(TemplateDetailDto template)
        {
            ItemTemplateId          = template.Id;
            SkuExtendedPropertyList = new List <WriteSkuExtendedPropertyDto>();

            // popultate the extended properties
            foreach (var extProp in template.TemplateExtendedPropertyList)
            {
                var newProp = new WriteSkuExtendedPropertyDto()
                {
                    ExtendedPropertyId = extProp.ExtendedPropertyId
                };

                switch (extProp.ExtendedPropertyDataType)
                {
//                    case TemplateDataTypes.AutoId: newProp.Value = new Random(DateTime.UtcNow.Millisecond).Next().ToString(); break;
                case TemplateDataTypes.Bool: newProp.Value = true.ToString(); break;

                case TemplateDataTypes.DateTime: newProp.Value = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssK"); break;

                case TemplateDataTypes.Decimal: newProp.Value = (((double)new Random(DateTime.UtcNow.Millisecond).Next()) / 10.0).ToString(); break;

                case TemplateDataTypes.Number: newProp.Value = new Random(DateTime.UtcNow.Millisecond).Next().ToString(); break;

                case TemplateDataTypes.String: newProp.Value = Guid.NewGuid().ToString(); break;
                }

                SkuExtendedPropertyList.Add(newProp);
            }
        }
        public WriteSkuExtendedPropertyDto(WriteSkuExtendedPropertyDto dto)
        {
            if (dto == null)
            {
                return;
            }

            var type       = typeof(WriteSkuExtendedPropertyDto);
            var properties = type.GetTypeInfo().DeclaredProperties;

            foreach (var property in properties)
            {
                var value = property.GetValue(dto);
                property.SetValue(this, value);
            }
        }
        public void ChangeTemplate(TemplateDetailDto templateDto, List <WriteSkuExtendedPropertyDto> extProps = null)
        {
            // get rid of the old extended properties
            SkuExtendedPropertyList.Clear();
            // set new template
            TemplateId = templateDto.Id;

            // populate the extended properties
            foreach (var templateProp in templateDto.TemplateExtendedPropertyList)
            {
                var providedProp = extProps?.Where(p => p.ExtendedPropertyId == templateProp.ExtendedPropertyId).FirstOrDefault();

                // use provided prop if possible, otherwise fill with random data
                if (providedProp != null)
                {
                    SkuExtendedPropertyList.Add(providedProp);
                }
                else
                {
                    var newProp = new WriteSkuExtendedPropertyDto()
                    {
                        ExtendedPropertyId = templateProp.ExtendedPropertyId
                    };

                    switch (templateProp.ExtendedPropertyDataType)
                    {
//                        case TemplateDataTypes.AutoId: newProp.Value = new Random(DateTime.UtcNow.Millisecond).Next().ToString(); break;
                    case TemplateDataTypes.Bool: newProp.Value = true.ToString(); break;

                    case TemplateDataTypes.DateTime: newProp.Value = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssK"); break;

                    case TemplateDataTypes.Decimal: newProp.Value = (((double)new Random(DateTime.UtcNow.Millisecond).Next()) / 10.0).ToString(); break;

                    case TemplateDataTypes.Number: newProp.Value = new Random(DateTime.UtcNow.Millisecond).Next().ToString(); break;

                    case TemplateDataTypes.String: newProp.Value = Guid.NewGuid().ToString(); break;
                    }

                    newProp.IsSkuLevelProperty = true;

                    SkuExtendedPropertyList.Add(newProp);
                }
            }
        }