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); } } }