private void ExportAssets(string catalogId, OperationStatus currentOperation) { var fileName = string.Format("{0} ItemAssets ({1}).csv", catalogId, DateTime.UtcNow.ToString(DateFormat)); using (var stream = new MemoryStream()) { var textWriter = new StreamWriter(stream, Encoding.UTF8); var csvWriter = new CsvWriter(textWriter, ","); csvWriter.WriteRow(new List<string> {"Catalog", "ItemCode", "AssetId", "Group", "Type"}, false); using (var repository = _catalogRepositoryFactory.GetRepositoryInstance()) { if (repository != null) { repository.Items.Expand(x => x.ItemAssets) .Where(item => item.CatalogId.Equals(catalogId)) .ToList() .ForEach(item => item.ItemAssets.ToList().ForEach(asset => { csvWriter.WriteRow(new[] {catalogId, item.Code, asset.AssetId, asset.GroupName, asset.AssetType}, false); currentOperation.Processed++; })); } } stream.Seek(0, SeekOrigin.Begin); var uploadError = Upload(fileName, stream); if (!string.IsNullOrEmpty(uploadError)) currentOperation.Errors.Add(uploadError); } }
private void ExportLocalization(string sourceLanguage, string targetLanguage, OperationStatus currentOperation) { var fileName = string.Format("{0} - {1} ({2}).csv", sourceLanguage, targetLanguage, DateTime.UtcNow.ToString(DateFormat)); using (var stream = new MemoryStream()) { var textWriter = new StreamWriter(stream, Encoding.UTF8); var csvWriter = new CsvWriter(textWriter, ","); csvWriter.WriteRow( new List<string> { "Name", sourceLanguage, string.Format("LanguageCode ({0})", targetLanguage), string.Format("Value - {0}", targetLanguage) }, false); using (var repository = _appConfigRepositoryFactory.GetRepositoryInstance()) { if (repository != null) { var names = repository.Localizations.ToList().Select(x => x.Name).Distinct(); var translateItems = repository.Localizations.Where(x => x.LanguageCode == targetLanguage).ToDictionary(x => x.Name); var originalItems = repository.Localizations.Where(x => x.LanguageCode == sourceLanguage).ToDictionary(x => x.Name); foreach (var name in names) { var isTranslateExists = translateItems.ContainsKey(name); //if ((IsUntranslatedOnly && !isTranslateExists) || !IsUntranslatedOnly) { var original = originalItems.ContainsKey(name) ? originalItems[name] : new Localization() { Name = name, LanguageCode = sourceLanguage, Value = string.Empty }; var translated = isTranslateExists ? translateItems[name] : new Localization() { Name = original.Name, LanguageCode = targetLanguage, Category = original.Category, Value = string.Empty }; csvWriter.WriteRow(new[] {name, original.Value, translated.Value}, true); currentOperation.Processed++; } } } } stream.Seek(0, SeekOrigin.Begin); var uploadError = Upload(fileName, stream); if (!string.IsNullOrEmpty(uploadError)) currentOperation.Errors.Add(uploadError); } }
private void ExportItems(string catalogId, OperationStatus currentOperation) { var fileName = string.Format("{0} Items ({1}).csv", catalogId, DateTime.UtcNow.ToString(DateFormat)); using (var stream = new MemoryStream()) { var textWriter = new StreamWriter(stream, Encoding.UTF8); { var csvWriter = new CsvWriter(textWriter, ","); csvWriter.WriteRow( new List<string> { "Catalog", "Code", "Name", "StartDate", "EndDate", "IsBuyable", "IsActive", "MinQuantity", "MaxQuantity", "Weight", "PackageType", "TaxCategory", "Type" }, false); using (var repository = _catalogRepositoryFactory.GetRepositoryInstance()) { if (repository != null) { repository.Items.Where(item => item.CatalogId.Equals(catalogId)).ToList().ForEach(item => { csvWriter.WriteRow(new[] { catalogId, item.Code, item.Name, item.StartDate.ToString(), item.EndDate == null ? string.Empty : item.EndDate.ToString(), item.IsBuyable.ToString(), item.IsActive.ToString(), item.MinQuantity.ToString(), item.MaxQuantity.ToString(), item.Weight.ToString(), item.PackageType == null ? string.Empty : item.PackageType.ToString(), item.TaxCategory == null ? string.Empty : item.TaxCategory.ToString(), item.GetType().Name }, false); currentOperation.Processed++; }); } } } stream.Seek(0, SeekOrigin.Begin); var uploadError = Upload(fileName, stream); if (!string.IsNullOrEmpty(uploadError)) currentOperation.Errors.Add(uploadError); } }