private void WriteItem(ICsvWriter writer, Product product) { var meta = MetaInfoService.GetMetaInfo(product.ID, MetaType.Product) ?? new MetaInfo(0, 0, MetaType.Product, string.Empty, string.Empty, string.Empty, string.Empty); foreach (var item in _fieldMapping) { if (item == ProductFields.Sku) { writer.WriteField(product.ArtNo); } if (item == ProductFields.Name) { writer.WriteField(product.Name); } if (item == ProductFields.ParamSynonym) { writer.WriteField(product.UrlPath); } if (item == ProductFields.Category) { writer.WriteField((CategoryService.GetCategoryStringByProductId(product.ProductId, _columSeparator))); } if (item == ProductFields.Sorting) { writer.WriteField((CategoryService.GetCategoryStringByProductId(product.ProductId, _columSeparator, true))); } if (item == ProductFields.Enabled) { writer.WriteField(product.Enabled ? "+" : "-"); } if (!product.HasMultiOffer) { var offer = product.Offers.FirstOrDefault() ?? new Offer(); if (item == ProductFields.Price) { writer.WriteField(offer.Price.ToString("F2")); } if (item == ProductFields.PurchasePrice) { writer.WriteField(offer.SupplyPrice.ToString("F2")); } if (item == ProductFields.Amount) { writer.WriteField(offer.Amount.ToString(CultureInfo.InvariantCulture)); } if (item == ProductFields.MultiOffer) { writer.WriteField(string.Empty); } } else { if (item == ProductFields.Price) { writer.WriteField(string.Empty); } if (item == ProductFields.PurchasePrice) { writer.WriteField(string.Empty); } if (item == ProductFields.Amount) { writer.WriteField(string.Empty); } if (item == ProductFields.MultiOffer) { writer.WriteField(OfferService.OffersToString(product.Offers, _columSeparator, _propertySeparator)); } } if (item == ProductFields.Unit) { writer.WriteField(product.Unit); } if (item == ProductFields.ShippingPrice) { writer.WriteField(product.ShippingPrice.ToString("F2")); } if (item == ProductFields.Discount) { writer.WriteField(product.Discount.ToString("F2")); } if (item == ProductFields.Weight) { writer.WriteField(product.Weight.ToString("F2")); } if (item == ProductFields.Size) { writer.WriteField(product.Size.Replace("|", " x ")); } if (item == ProductFields.BriefDescription) { writer.WriteField(product.BriefDescription); } if (item == ProductFields.Description) { writer.WriteField(product.Description); } if (item == ProductFields.Title) { writer.WriteField(meta.Title); } if (item == ProductFields.H1) { writer.WriteField(meta.H1); } if (item == ProductFields.MetaKeywords) { writer.WriteField(meta.MetaKeywords); } if (item == ProductFields.MetaDescription) { writer.WriteField(meta.MetaDescription); } if (item == ProductFields.Markers) { writer.WriteField(ProductService.MarkersToString(product, _columSeparator)); } if (item == ProductFields.Photos) { writer.WriteField(PhotoService.PhotoToString(product.ProductPhotos, _columSeparator, _propertySeparator)); } if (item == ProductFields.Videos) { writer.WriteField(ProductVideoService.VideoToString(product.ProductVideos, _columSeparator)); } if (item == ProductFields.Properties) { writer.WriteField(PropertyService.PropertiesToString(product.ProductPropertyValues, _columSeparator, _propertySeparator)); } if (item == ProductFields.Producer) { writer.WriteField(BrandService.BrandToString(product.BrandId)); } if (item == ProductFields.OrderByRequest) { writer.WriteField(product.AllowPreOrder ? "+" : "-"); } if (item == ProductFields.SalesNotes) { writer.WriteField(product.SalesNote); } if (item == ProductFields.Related) { writer.WriteField(ProductService.LinkedProductToString(product.ProductId, RelatedType.Related, _columSeparator)); } if (item == ProductFields.Alternative) { writer.WriteField(ProductService.LinkedProductToString(product.ProductId, RelatedType.Alternative, _columSeparator)); } if (item == ProductFields.CustomOption) { writer.WriteField(CustomOptionsService.CustomOptionsToString(CustomOptionsService.GetCustomOptionsByProductId(product.ProductId))); } if (item == ProductFields.Gtin) { writer.WriteField(product.Gtin); } if (item == ProductFields.GoogleProductCategory) { writer.WriteField(product.GoogleProductCategory); } if (item == ProductFields.Adult) { writer.WriteField(product.Adult ? "+" : "-"); } if (item == ProductFields.ManufacturerWarranty) { writer.WriteField(product.ManufacturerWarranty ? "+" : "-"); } } writer.NextRecord(); }
private void LoadFirstProduct() { var columSeparator = txtColumSeparator.Text; var propertySeparator = txtPropertySeparator.Text; var product = ProductService.GetFirstProduct(); if (product == null) { return; } foreach (var item in Enum.GetValues(typeof(ProductFields))) { if ((ProductFields)item == ProductFields.None) { ddlProduct.Items.Add(new ListItem { Text = @"-", Value = ProductFields.None.ConvertIntString() }); } if ((ProductFields)item == ProductFields.Sku) { ddlProduct.Items.Add(new ListItem { Text = product.ArtNo, Value = ProductFields.Sku.ConvertIntString() }); } if ((ProductFields)item == ProductFields.Name) { ddlProduct.Items.Add(new ListItem { Text = product.Name.HtmlEncode(), Value = ProductFields.Name.ConvertIntString() }); } if ((ProductFields)item == ProductFields.ParamSynonym) { ddlProduct.Items.Add(new ListItem { Text = product.UrlPath, Value = ProductFields.ParamSynonym.ConvertIntString() }); } if ((ProductFields)item == ProductFields.Category) { ddlProduct.Items.Add(new ListItem { Text = CategoryService.GetCategoryStringByProductId(product.ProductId, columSeparator), Value = ProductFields.Category.ConvertIntString() }); } if ((ProductFields)item == ProductFields.Sorting) { ddlProduct.Items.Add(new ListItem { Text = CategoryService.GetCategoryStringByProductId(product.ProductId, columSeparator, true), Value = ProductFields.Sorting.ConvertIntString() }); } if ((ProductFields)item == ProductFields.Enabled) { ddlProduct.Items.Add(new ListItem { Text = product.Enabled ? "+" : "-", Value = ProductFields.Enabled.ConvertIntString() }); } if ((ProductFields)item == ProductFields.Price) { ddlProduct.Items.Add(new ListItem { Text = product.Offers.Select(x => x.Price).FirstOrDefault().ToString("F2"), Value = ProductFields.Price.ConvertIntString() }); } if ((ProductFields)item == ProductFields.PurchasePrice) { ddlProduct.Items.Add(new ListItem { Text = product.Offers.Select(x => x.SupplyPrice).FirstOrDefault().ToString("F2"), Value = ProductFields.PurchasePrice.ConvertIntString() }); } if ((ProductFields)item == ProductFields.Amount) { ddlProduct.Items.Add(new ListItem { Text = product.Offers.Select(x => x.Amount).FirstOrDefault().ToString("F2"), Value = ProductFields.Amount.ConvertIntString() }); } if ((ProductFields)item == ProductFields.MultiOffer) { ddlProduct.Items.Add(new ListItem { Text = OfferService.OffersToString(product.Offers, columSeparator, propertySeparator), Value = ProductFields.MultiOffer.ConvertIntString() }); } if ((ProductFields)item == ProductFields.Unit) { ddlProduct.Items.Add(new ListItem { Text = product.Unit, Value = ProductFields.Unit.ConvertIntString() }); } if ((ProductFields)item == ProductFields.Discount) { ddlProduct.Items.Add(new ListItem { Text = product.Discount.ToString("F2"), Value = ProductFields.Discount.ConvertIntString() }); } if ((ProductFields)item == ProductFields.ShippingPrice) { ddlProduct.Items.Add(new ListItem { Text = product.ShippingPrice.ToString("F2"), Value = ProductFields.ShippingPrice.ConvertIntString() }); } if ((ProductFields)item == ProductFields.Weight) { ddlProduct.Items.Add(new ListItem { Text = product.Weight.ToString("F2"), Value = ProductFields.Weight.ConvertIntString() }); } if ((ProductFields)item == ProductFields.Size) { ddlProduct.Items.Add(new ListItem { Text = product.Size.Replace("|", " x "), Value = ProductFields.Size.ConvertIntString() }); } if ((ProductFields)item == ProductFields.BriefDescription) { ddlProduct.Items.Add(new ListItem { Text = product.BriefDescription.Reduce(20).HtmlEncode(), Value = ProductFields.BriefDescription.ConvertIntString() }); } if ((ProductFields)item == ProductFields.Description) { ddlProduct.Items.Add(new ListItem { Text = product.Description.Reduce(20).HtmlEncode(), Value = ProductFields.Description.ConvertIntString() }); } if ((ProductFields)item == ProductFields.Title) { ddlProduct.Items.Add(new ListItem { Text = product.Meta.Title.Reduce(20), Value = ProductFields.Title.ConvertIntString() }); } if ((ProductFields)item == ProductFields.H1) { ddlProduct.Items.Add(new ListItem { Text = product.Meta.H1.Reduce(20), Value = ProductFields.H1.ConvertIntString() }); } if ((ProductFields)item == ProductFields.MetaKeywords) { ddlProduct.Items.Add(new ListItem { Text = product.Meta.MetaKeywords.Reduce(20), Value = ProductFields.MetaKeywords.ConvertIntString() }); } if ((ProductFields)item == ProductFields.MetaDescription) { ddlProduct.Items.Add(new ListItem { Text = product.Meta.MetaDescription.Reduce(20), Value = ProductFields.MetaDescription.ConvertIntString() }); } if ((ProductFields)item == ProductFields.Photos) { ddlProduct.Items.Add(new ListItem { Text = PhotoService.PhotoToString(product.ProductPhotos, columSeparator, propertySeparator), Value = ProductFields.Photos.ConvertIntString() }); } if ((ProductFields)item == ProductFields.Videos) { ddlProduct.Items.Add(new ListItem { Text = ProductVideoService.VideoToString(product.ProductVideos, columSeparator).Reduce(20).HtmlEncode(), Value = ProductFields.Videos.ConvertIntString() }); } if ((ProductFields)item == ProductFields.Markers) { ddlProduct.Items.Add(new ListItem { Text = ProductService.MarkersToString(product, columSeparator), Value = ProductFields.Markers.ConvertIntString() }); } if ((ProductFields)item == ProductFields.Properties) { ddlProduct.Items.Add(new ListItem { Text = PropertyService.PropertiesToString(product.ProductPropertyValues, columSeparator, propertySeparator).HtmlEncode(), Value = ProductFields.Properties.ConvertIntString() }); } if ((ProductFields)item == ProductFields.Producer) { ddlProduct.Items.Add(new ListItem { Text = BrandService.BrandToString(product.BrandId), Value = ProductFields.Producer.ConvertIntString() }); } if ((ProductFields)item == ProductFields.OrderByRequest) { ddlProduct.Items.Add(new ListItem { Text = product.AllowPreOrder ? "+" : "-", Value = ProductFields.OrderByRequest.ConvertIntString() }); } if ((ProductFields)item == ProductFields.SalesNotes) { ddlProduct.Items.Add(new ListItem { Text = product.SalesNote, Value = ProductFields.SalesNotes.ConvertIntString() }); } if ((ProductFields)item == ProductFields.Related) { ddlProduct.Items.Add(new ListItem(ProductService.LinkedProductToString(product.ProductId, RelatedType.Related, columSeparator), ProductFields.Related.ConvertIntString())); } if ((ProductFields)item == ProductFields.Alternative) { ddlProduct.Items.Add(new ListItem(ProductService.LinkedProductToString(product.ProductId, RelatedType.Alternative, columSeparator), ProductFields.Alternative.ConvertIntString())); } if ((ProductFields)item == ProductFields.CustomOption) { ddlProduct.Items.Add(new ListItem(CustomOptionsService.CustomOptionsToString(CustomOptionsService.GetCustomOptionsByProductId(product.ProductId)), ProductFields.CustomOption.ConvertIntString())); } if ((ProductFields)item == ProductFields.Gtin) { ddlProduct.Items.Add(new ListItem(product.Gtin, ProductFields.Gtin.ConvertIntString())); } if ((ProductFields)item == ProductFields.GoogleProductCategory) { ddlProduct.Items.Add(new ListItem(product.GoogleProductCategory, ProductFields.GoogleProductCategory.ConvertIntString())); } if ((ProductFields)item == ProductFields.Adult) { ddlProduct.Items.Add(new ListItem { Text = product.Adult ? "+" : "-", Value = ProductFields.Adult.ConvertIntString() }); } if ((ProductFields)item == ProductFields.ManufacturerWarranty) { ddlProduct.Items.Add(new ListItem { Text = product.ManufacturerWarranty ? "+" : "-", Value = ProductFields.ManufacturerWarranty.ConvertIntString() }); } } }