Exemple #1
0
        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;
            }
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
            }
        }
Exemple #7
0
        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);
        }
Exemple #9
0
        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);
        }
Exemple #10
0
 public StringAttributeValue(AttributeValueDto attributeValue)
 {
     AttributeName  = attributeValue.Name;
     AttributeValue = attributeValue.Value;
 }