private void EditAttribute(AttrValue dbAv, AttributeValueDto modelAv) { if (modelAv.AttributeType == AttrType.String) { dbAv.Value = modelAv.Value; } else if (modelAv.AttributeType == AttrType.Image) { if (modelAv.ValueAsImage != null) { byte[] imageData; using (var binaryReader = new BinaryReader(modelAv.ValueAsImage.OpenReadStream())) { imageData = binaryReader.ReadBytes((int)modelAv.ValueAsImage.Length); } dbAv.ValueAsFile = new FileAttrValue { FileName = modelAv.ValueAsImage.FileName, ContentType = modelAv.ValueAsImage.ContentType, Bytes = imageData }; } } else { dbAv.DictionaryItemId = modelAv.DictionaryItemId; } }
private AttributeValueDto CreateAttributeValue(Attribute attr, Entity entity) { var result = new AttributeValueDto { AttributeName = attr.Name, AttributeId = attr.Id, AttributeType = attr.AttrType, Required = attr.Required, DictionaryItems = attr.AttrType == AttrType.Dictionary ? GetDictionaryItems(attr.DictionaryId) : null }; var av = entity.AttrValues.FirstOrDefault(attrValue => attrValue.AttrId == attr.Id); if (av == null) { return(result); } result.Id = av.Id; if (attr.AttrType == AttrType.String) { result.Value = av.Value; } else if (attr.AttrType == AttrType.Image) { //we just show the image } else { result.DictionaryItemId = av.DictionaryItemId; } return(result); }
private void AddParametricChildren(int listId, string name, string prefix, int type, List <AttributeValueDto> list, Dictionary <int, StormParametric> map, IUser currentUser) { // Find the list of ids string url = "ProductService.svc/rest/ListParametricValues?format=json"; url += addUserUrlDetails(currentUser); url += $"&id={listId}"; url += $"&type={type}"; var parametricsList = _connectionManager.GetResult <List <StormParametric> >(url); foreach (var child in parametricsList) { AttributeValueDto dto = new AttributeValueDto(); dto.Name = name + " " + child.Name; dto.ExternalId = child.Id.ToString(); dto.Code = map[Convert.ToInt32(child.Id)].Code; dto.Uom = child.Uom; dto.Hidden = child.IsHidden ?? false; dto.GroupCode = child.GroupName; dto.GroupExternalId = child.GroupId != null?child.GroupId.Value.ToString() : null; dto.QueryCode = prefix + listId + "_" + dto.ExternalId; list.Add(dto); } }
/// <summary> /// Helper method to convert an <see cref="AttributeValueDto"/> instance to a double value. /// </summary> /// <param name="data">The data instance.</param> /// <returns>The converted data.</returns> public static double?ToDouble(this AttributeValueDto data) { if (double.TryParse(data?.Value, out double number)) { return(number); } return(null); }
/// <summary> /// Helper method to convert an <see cref="AttributeValueDto"/> instance to an integer value. /// </summary> /// <param name="data">The data instance.</param> /// <returns>The converted data.</returns> public static int?ToNumber(this AttributeValueDto data) { if (int.TryParse(data?.Value, out int number)) { return(number); } return(null); }
/// <summary> /// Helper method to convert an <see cref="AttributeValueDto"/> instance to a boolean value. /// </summary> /// <param name="data">The data instance.</param> /// <returns>The converted data.</returns> public static bool?ToBool(this AttributeValueDto data) { switch (data?.Value.ToLower()) { case "true": return(true); case "false": return(false); default: return(null); } }
private AttrValue CreateAttribute(AttributeValueDto avDto) { var result = new AttrValue { AttrId = avDto.AttributeId }; if (avDto.AttributeType == AttrType.String) { result.Value = avDto.Value; } else if (avDto.AttributeType == AttrType.Image) { if (avDto.Required || avDto.ValueAsImage != null) { byte[] imageData; using (var binaryReader = new BinaryReader(avDto.ValueAsImage.OpenReadStream())) { imageData = binaryReader.ReadBytes((int)avDto.ValueAsImage.Length); } result.ValueAsFile = new FileAttrValue { FileName = avDto.ValueAsImage.FileName, ContentType = avDto.ValueAsImage.ContentType, Bytes = imageData }; } } else if (avDto.AttributeType == AttrType.Dictionary) { result.DictionaryItemId = avDto.DictionaryItemId; } else { throw new NotImplementedException(); } return(result); }
public IProduct BuildFromProduct(StormProduct stormProduct) { var p = new ProductDto(); p.Category = new CategoryDto(); p.Category.ExternalId = stormProduct.CategoryId.ToString(); p.Manufacturer = new ManufacturerDto(); p.Manufacturer.Name = stormProduct.Manufacturer.Name; p.Manufacturer.ExternalId = stormProduct.Manufacturer.Id.ToString(); p.Manufacturer.ImageUrl = stormProduct.Manufacturer.LogoKey; p.ExternalId = stormProduct.Id.ToString(); p.PrimaryImageUrl = _configuration["Storm:ImagePrefix"] + stormProduct.ImageKey; p.ShortDescription = stormProduct.SubDescription; p.Description = stormProduct.Description; p.Files = new List <IFile>(); // Add default image FileDto primaryimagefile = new FileDto(); p.Files.Add(primaryimagefile); primaryimagefile.ExternalId = stormProduct.ImageKey; primaryimagefile.ImageUrl = _configuration["Storm:ImagePrefix"] + stormProduct.ImageKey; primaryimagefile.Extension = "jpg"; primaryimagefile.Name = stormProduct.Image; if (stormProduct.Files != null) { foreach (var stormfile in stormProduct.Files) { FileDto filedto = new FileDto(); p.Files.Add(filedto); filedto.ExternalId = stormfile.Key; filedto.ImageUrl = _configuration["Storm:ImagePrefix"] + stormfile.Key; filedto.Extension = stormfile.Extension; filedto.Name = stormfile.Name; } } p.Values = new List <IAttributeValue>(); foreach (var parametric in stormProduct.Parametrics) { AttributeValueDto av = new AttributeValueDto(); av.Name = parametric.Name; av.Code = parametric.Value2; av.Value = parametric.Value; av.ExternalId = parametric.Id.ToString(); av.Uom = parametric.Uom; av.AttributeCode = parametric.ValueId.HasValue ? parametric.ValueId.Value.ToString() : string.Empty; av.Hidden = parametric.IsHidden ?? false; p.Values.Add(av); } p.Variants = new List <VariantDto>(); if (stormProduct.Variants == null || stormProduct.Variants.Length == 0) { var primaryVariant = new VariantDto(); p.Variants.Add(primaryVariant); p.PrimaryVariant = primaryVariant; decimal?previousPrice = null; if (stormProduct.PriceStandard.HasValue && stormProduct.PriceStandard.Value > 0.0M) { previousPrice = stormProduct.PriceStandard.Value; } primaryVariant.PartNo = stormProduct.PartNo; primaryVariant.PreviousPrice = previousPrice; primaryVariant.Price = stormProduct.Price; primaryVariant.PriceListId = stormProduct.PriceListId.ToString(); primaryVariant.VatRate = stormProduct.VatRate; primaryVariant.VendorPartNo = stormProduct.Manufacturer.PartNo; primaryVariant.VariantName = stormProduct.Name; primaryVariant.ImageUrl = _configuration["Storm:ImagePrefix"] + stormProduct.ImageKey; primaryVariant.AvailableToSell = 0.0M; if (stormProduct.OnHand != null) { primaryVariant.AvailableToSell = stormProduct.OnHand.Value; primaryVariant.LeadTime = stormProduct.OnHand.LeadtimeDayCount ?? 0; } if (stormProduct.OnHandSupplier != null) { if (primaryVariant.AvailableToSell == 0) { primaryVariant.LeadTime = stormProduct.OnHandSupplier.LeadtimeDayCount ?? 0; } primaryVariant.AvailableToSell += stormProduct.OnHandSupplier.Value; } if (stormProduct.IsBuyable) { primaryVariant.Buyable = _buyableExtension.Buyable(p, primaryVariant); } primaryVariant.StockStatus = _buyableExtension.StockStatus(p, primaryVariant); } else { foreach (var stormVariant in stormProduct.Variants) { var primaryVariant = new VariantDto(); p.Variants.Add(primaryVariant); primaryVariant.PartNo = stormVariant.PartNo; primaryVariant.PreviousPrice = stormVariant.PriceStandard; primaryVariant.Price = stormVariant.Price; primaryVariant.PriceListId = stormVariant.PriceListId.ToString(); primaryVariant.VatRate = stormVariant.VatRate; //primaryVariant.VendorPartNo = stormVariant.Manufacturer.PartNo; primaryVariant.VariantName = stormVariant.VariantName; primaryVariant.ImageUrl = _configuration["Storm:ImagePrefix"] + stormVariant.ImageKey; primaryVariant.AvailableToSell = 0.0M; if (stormVariant.OnHand != null) { primaryVariant.AvailableToSell = stormVariant.OnHand.Value; primaryVariant.LeadTime = stormVariant.OnHand.LeadtimeDayCount ?? 0; } if (stormVariant.OnHandSupplier != null) { if (primaryVariant.AvailableToSell == 0) { primaryVariant.LeadTime = stormVariant.OnHandSupplier.LeadtimeDayCount ?? 0; } primaryVariant.AvailableToSell += stormVariant.OnHandSupplier.Value; } if (stormProduct.IsBuyable) { primaryVariant.Buyable = _buyableExtension.Buyable(p, primaryVariant); } primaryVariant.StockStatus = _buyableExtension.StockStatus(p, primaryVariant); } p.PrimaryVariant = p.Variants[0]; } return(p); }
public List <IAttribute> FindAllParametricsWithValues(IUser currentUser) { // Find the list of products string url = "ProductService.svc/rest/ListParametricInfo?format=json"; url += addUserUrlDetails(currentUser); var parametricsList = _connectionManager.GetResult <List <StormParametricInfo> >(url); url = "ProductService.svc/rest/ListParametricValues2?format=json"; url += addUserUrlDetails(currentUser); var parametricsValueList = _connectionManager.GetResult <List <StormParametric> >(url); Dictionary <int, StormParametric> valueIds = new Dictionary <int, StormParametric>(); foreach (var value in parametricsValueList) { valueIds[value.Id] = value; } List <IAttribute> list = new List <IAttribute>(); foreach (var parm in parametricsList) { AttributeDto attributeDto = new AttributeDto(); attributeDto.ExternalId = parm.Id.ToString(); attributeDto.Code = parm.Code; attributeDto.Uom = parm.Uom; attributeDto.Name = parm.Name; list.Add(attributeDto); // List value type if (parm.Type == 1) { attributeDto.Values = new List <AttributeValueDto>(); AddParametricChildren(parm.Id, parm.Name, "L" + parm.Id, parm.Type.Value, attributeDto.Values, valueIds, currentUser); } // Multi value type else if (parm.Type == 2) { attributeDto.Values = new List <AttributeValueDto>(); AddParametricChildren(parm.Id, parm.Name, "L" + parm.Id, parm.Type.Value, attributeDto.Values, valueIds, currentUser); } // Boolean else if (parm.ValueType == 4) { attributeDto.Values = new List <AttributeValueDto>(); { AttributeValueDto dto = new AttributeValueDto(); dto.Name = parm.Name + " Ja"; dto.ExternalId = parm.Id.ToString(); dto.Hidden = parm.IsHidden ?? false; dto.QueryCode = "V" + parm.Id + "_1-1"; attributeDto.Values.Add(dto); } { AttributeValueDto dto = new AttributeValueDto(); dto.Name = parm.Name + " Nej"; dto.ExternalId = parm.Id.ToString(); dto.Hidden = parm.IsHidden ?? false; dto.QueryCode = "V" + parm.Id + "_0-0"; attributeDto.Values.Add(dto); } } } return(list); }
public StringAttributeValue(AttributeValueDto attributeValue) { AttributeName = attributeValue.Name; AttributeValue = attributeValue.Value; }