protected void ProcessImageFile(ZipProcessor.ZippedFile zipFile, IUnitOfWork unit, string filePath) { var productID = Path.GetFileNameWithoutExtension(zipFile.FileName).Trim(); var product = unit.Scope.Repository <VendorAssortment>().GetSingle(va => va.CustomItemNumber == productID && va.VendorID == VendorID && va.IsActive == true); if (product == null) { //log.WarnFormat("Cannot process image for product with VSN number: {0} because it doesn't exist in Concentrator database", productID); return; } string destFileName = String.Format("{0}_{1}_{2}{3}", product.ProductID, product.CustomItemNumber, product.VendorID, Path.GetExtension(zipFile.FileName)); //string destinationPath = Path.Combine(GetConfiguration().AppSettings.Settings["FTPImageDirectory"].Value, "Products"); string destinationPath = Path.Combine(filePath, "Products"); string finalDestination = Path.Combine(destinationPath, destFileName); var mediaRepo = unit.Scope.Repository <ProductMedia>(); var productImage = mediaRepo.GetSingle(c => c.ProductID == product.ProductID && c.VendorID == VendorID); if (productImage == null) { productImage = new ProductMedia { ProductID = product.ProductID, VendorID = VendorID, MediaUrl = String.Empty, TypeID = 1 }; mediaRepo.Add(productImage); } if (File.Exists(finalDestination)) { //log.WarnFormat("Skipping image for product with VSN number: {0} because it already exists", productID); } else { if (!Directory.Exists(destinationPath)) { Directory.CreateDirectory(destinationPath); } using (var file = File.Create(finalDestination)) { zipFile.Data.WriteTo(file); } } productImage.MediaPath = Path.Combine("Products", destFileName); }
protected void ProcessMediaFile(ZipProcessor.ZippedFile zipFile, IUnitOfWork unit, string filePath) { var productID = Path.GetFileNameWithoutExtension(zipFile.FileName).Trim(); if (productID.EndsWith("_h1", StringComparison.CurrentCultureIgnoreCase)) { productID = productID.Replace("_h1", String.Empty); } var product = unit.Scope.Repository <VendorAssortment>().GetSingle(va => va.CustomItemNumber == productID && va.VendorID == VendorID && va.IsActive == true); if (product == null) { log.WarnFormat("Cannot process image for product with Centraal boekhuis number: {0} because it doesn't exist in Concentrator database", productID); return; } String destFileName = String.Format("{0}_{1}_{2}{3}", product.ProductID, product.CustomItemNumber, product.VendorID, Path.GetExtension(zipFile.FileName)); String destinationPath = Path.Combine(filePath, "Products"); String finalDestination = Path.Combine(destinationPath, destFileName); //Handle mediatype String extension = Path.GetExtension(finalDestination).ToLower(); Int32 typeID = 0; var _mediaTypeRepo = unit.Scope.Repository <MediaType>(); switch (extension) { case ".pdf": typeID = _mediaTypeRepo.GetSingle(x => (x.Type).ToLower() == "pdf").TypeID; break; case ".jpg": typeID = _mediaTypeRepo.GetSingle(x => (x.Type).ToLower() == "image").TypeID; break; case ".jpeg": typeID = _mediaTypeRepo.GetSingle(x => (x.Type).ToLower() == "image").TypeID; break; case ".epub": typeID = _mediaTypeRepo.GetSingle(x => (x.Type).ToLower() == "ebook").TypeID; break; case ".mp3": typeID = _mediaTypeRepo.GetSingle(x => (x.Type).ToLower() == "audio").TypeID; break; default: log.Error("Unknown file extension"); break; } var mediaRepo = unit.Scope.Repository <ProductMedia>(); var productMedia = mediaRepo.GetSingle(c => c.ProductID == product.ProductID && c.VendorID == VendorID); if (productMedia == null) { productMedia = new ProductMedia { ProductID = product.ProductID, VendorID = VendorID, MediaUrl = String.Empty, TypeID = typeID }; mediaRepo.Add(productMedia); } if (File.Exists(finalDestination)) { log.WarnFormat("Skipping image for product with centraal boekhuis number: {0} because it already exists", productID); } else { if (!Directory.Exists(destinationPath)) { Directory.CreateDirectory(destinationPath); } using (var file = File.Create(finalDestination)) { zipFile.Data.WriteTo(file); } } productMedia.MediaPath = Path.Combine("Products", destFileName); }