Example #1
0
        private bool GetInt(ProductFields rEnum, ICsvReaderRow csv, IDictionary <ProductFields, object> productInStrings)
        {
            var nameField = rEnum.StrName();

            if (!_fieldMapping.ContainsKey(nameField))
            {
                return(true);
            }
            var amount = TrimAnyWay(csv[_fieldMapping[nameField]]);

            if (string.IsNullOrEmpty(amount))
            {
                amount = "0";
            }
            int tmp;

            if (int.TryParse(amount, out tmp))
            {
                productInStrings.Add(rEnum, tmp);
            }
            else
            {
                LogInvalidData(string.Format(Resource.Admin_ImportCsv_MustBeNumber, rEnum.ResourceKey(), CommonStatistic.RowPosition + 2));
                return(false);
            }
            return(true);
        }
Example #2
0
        private bool GetDecimal(ProductFields rEnum, ICsvReaderRow csv, IDictionary <ProductFields, object> productInStrings)
        {
            var nameField = rEnum.StrName();

            if (!_fieldMapping.ContainsKey(nameField))
            {
                return(true);
            }
            var shippingPrice = TrimAnyWay(csv[_fieldMapping[nameField]]);

            if (string.IsNullOrEmpty(shippingPrice))
            {
                shippingPrice = "0";
            }
            float tmp;

            if (float.TryParse(shippingPrice, out tmp))
            {
                productInStrings.Add(rEnum, tmp);
            }
            else if (float.TryParse(shippingPrice, NumberStyles.Any, CultureInfo.InvariantCulture, out tmp))
            {
                productInStrings.Add(rEnum, tmp);
            }
            else
            {
                LogInvalidData(string.Format(Resource.Admin_ImportCsv_MustBeNumber, rEnum.ResourceKey(), CommonStatistic.RowPosition + 2));
                return(false);
            }
            return(true);
        }
Example #3
0
        private bool GetString(ProductFields rEnum, ICsvReaderRow csv, IDictionary <ProductFields, object> productInStrings)
        {
            var nameField = rEnum.StrName();

            if (_fieldMapping.ContainsKey(nameField))
            {
                productInStrings.Add(rEnum, TrimAnyWay(csv[_fieldMapping[nameField]]));
            }
            return(true);
        }
Example #4
0
        private bool GetStringNotNull(ProductFields rEnum, ICsvReaderRow csv, IDictionary <ProductFields, object> productInStrings)
        {
            var nameField = rEnum.StrName();

            if (!_fieldMapping.ContainsKey(nameField))
            {
                return(true);
            }
            var tempValue = TrimAnyWay(csv[_fieldMapping[nameField]]);

            if (!string.IsNullOrEmpty(tempValue))
            {
                productInStrings.Add(rEnum, tempValue);
            }
            return(true);
        }
Example #5
0
        private bool GetStringRequired(ProductFields rEnum, ICsvReaderRow csv, IDictionary <ProductFields, object> productInStrings)
        {
            var nameField = rEnum.StrName();

            if (!_fieldMapping.ContainsKey(nameField))
            {
                return(true);
            }
            var tempValue = TrimAnyWay(csv[_fieldMapping[nameField]]);

            if (!string.IsNullOrEmpty(tempValue))
            {
                productInStrings.Add(rEnum, tempValue);
            }
            else
            {
                LogInvalidData(string.Format(Resource.Admin_ImportCsv_CanNotEmpty, ProductFields.Name.ResourceKey(), CommonStatistic.RowPosition + 2));
                return(false);
            }
            return(true);
        }
Example #6
0
        public static void SaveProductsToCsv(string path, Encodings.EncodingsEnum encodeType, Separators.SeparatorsEnum delimetr, List <ProductFields.Fields> fieldMapping)
        {
            using (var writer = new CsvHelper.CsvWriter(new StreamWriter(path, false, Encodings.GetEncoding(encodeType))))
            {
                writer.Configuration.Delimiter = Separators.GetCharSeparator(delimetr);
                //var fields = new List<string> { "SKU", "Name*", "ParamSynonym", "Category", "Enabled*", "Price*", "PurchasePrice*", "Amount*", "Unit", "Discount", "ShippingPrice", "Weight", "Size", "BriefDescription", "Description" };
                //foreach (var item in fields)
                //    writer.WriteField(item);
                foreach (var item in fieldMapping)
                {
                    writer.WriteField(ProductFields.GetStringNameByEnum(item));
                }
                writer.NextRecord();
                var items = ProductService.GetProducts();
                if (items == null)
                {
                    return;
                }
                var regex = new Regex("^[0-9]+$");
                for (int j = 0; j < items.Count; j++)
                {
                    var product = items[j];
                    if (!ExportStatistic.IsRun)
                    {
                        return;
                    }
                    var offer = product.Offers.FirstOrDefault() ?? new Offer {
                        Amount = 0, Price = 0, SupplyPrice = 0, Unit = "", ShippingPrice = 0
                    };
                    var meta = MetaInfoService.GetMetaInfo(product.ID, MetaType.Product) ??
                               new MetaInfo(0, 0, MetaType.Product, string.Empty, string.Empty, string.Empty);
                    for (int i = 0; i < fieldMapping.Count; i++)
                    {
                        var item = fieldMapping[i];
                        //Changed by Evgeni to insert dotes
                        if (item == ProductFields.Fields.Sku)
                        {
                            string art = product.ArtNo;
                            //if (art.Contains("-") == false && art.Length > 7)
                            // {
                            //     art = art.Insert(7, ".").Insert(4, ".").Insert(1, ".");
                            // }
                            //
                            writer.WriteField(art);
                            // writer.WriteField(product.ArtNo);
                        }
                        //
                        if (item == ProductFields.Fields.Name)
                        {
                            writer.WriteField(product.Name);
                        }
                        if (item == ProductFields.Fields.ParamSynonym)
                        {
                            if (regex.IsMatch(product.UrlPath))
                            {
                                writer.WriteField("IPD" + product.UrlPath);
                            }
                            else
                            {
                                writer.WriteField(product.UrlPath);
                            }
                        }
                        if (item == ProductFields.Fields.Category)
                        {
                            writer.WriteField((GetCategoryStringByProductID(product.ProductId)));
                        }
                        if (item == ProductFields.Fields.Enabled)
                        {
                            writer.WriteField(product.Enabled ? "+" : "-");
                        }
                        if (item == ProductFields.Fields.Price)
                        {
                            writer.WriteField(offer.Price.ToString("F2"));
                        }
                        if (item == ProductFields.Fields.PurchasePrice)
                        {
                            writer.WriteField(offer.SupplyPrice.ToString("F2"));
                        }
                        if (item == ProductFields.Fields.Amount)
                        {
                            writer.WriteField(offer.Amount.ToString());
                        }
                        if (item == ProductFields.Fields.Unit)
                        {
                            writer.WriteField(offer.Unit);
                        }
                        if (item == ProductFields.Fields.ShippingPrice)
                        {
                            writer.WriteField(offer.ShippingPrice.ToString("F2"));
                        }
                        if (item == ProductFields.Fields.Discount)
                        {
                            writer.WriteField(product.Discount.ToString("F2"));
                        }
                        if (item == ProductFields.Fields.Weight)
                        {
                            writer.WriteField(product.Weight.ToString("F2"));
                        }
                        if (item == ProductFields.Fields.Size)
                        {
                            writer.WriteField(product.Size.Replace("|", " x "));
                        }
                        if (item == ProductFields.Fields.BriefDescription)
                        {
                            writer.WriteField(product.BriefDescription);
                        }
                        if (item == ProductFields.Fields.Description)
                        {
                            writer.WriteField(product.Description);
                        }

                        if (item == ProductFields.Fields.Title)
                        {
                            writer.WriteField(meta.Title);
                        }
                        if (item == ProductFields.Fields.MetaKeywords)
                        {
                            writer.WriteField(meta.MetaKeywords);
                        }
                        if (item == ProductFields.Fields.MetaDescription)
                        {
                            writer.WriteField(meta.MetaDescription);
                        }
                        if (item == ProductFields.Fields.Markers)
                        {
                            writer.WriteField(MarkersToString(product));
                        }
                        if (item == ProductFields.Fields.Photos)
                        {
                            writer.WriteField(PhotoToString(product.ProductPhotos));
                        }
                        if (item == ProductFields.Fields.Properties)
                        {
                            writer.WriteField(PropertiesToString(product.ProductPropertyValues));
                        }
                        //Changed by Evgeni
                        if (item == ProductFields.Fields.EAN)
                        {
                            writer.WriteField(product.EAN);
                        }
                        if (item == ProductFields.Fields.SubBrandId)
                        {
                            writer.WriteField(product.SubBrandId);
                        }

                        //
                        if (item == ProductFields.Fields.Producer)
                        {
                            var brand = BrandService.GetBrandById(product.BrandId);
                            writer.WriteField(brand != null ? brand.Name : string.Empty);
                        }
                        if (item == ProductFields.Fields.OrderByRequest)
                        {
                            writer.WriteField(product.OrderByRequest ? "+" : "-");
                        }
                    }
                    writer.NextRecord();
                    ExportStatistic.RowPosition++;
                }
            }
        }