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