private void Init() { ProductMediaRepository = new ProductMediaRepository(Database, SourceDatabaseName, DestinationDatabaseName); ProductMediaTypeIDLookup = new Dictionary <int, int>(); var mediaTypes = ProductMediaRepository.GetProductMediaTypes(); foreach (var mediaType in mediaTypes) { if (!mediaType.RsoTypeID.HasValue) { mediaType.RsoTypeID = ProductMediaRepository.AddProductMediaType(mediaType.Type); mediaType.RsoType = mediaType.Type; } ProductMediaTypeIDLookup.Add(mediaType.TypeID, mediaType.RsoTypeID.Value); } IntersportContentVendorID = Database.FirstOrDefault <int>(GetVendorByNameQuery, RsoConstants.Vendor.ContentVendorName); if (IntersportContentVendorID <= 0) { throw new ArgumentNullException("Intersport content vendor not found."); } }
protected override void ExecuteConnectorTask() { EmbeddedResourceHelper.Bind(GetType()); Init(); var productToProcess = ProductMediaRepository.GetProductsForSync(); foreach (var productToSync in productToProcess) { SyncMedia(productToSync); } }
private void SyncProductMediaData(ProductMediaDifferential productToSync, Database db) { var productMedia = ProductMediaRepository.GetMediaForProduct(productToSync.ProductID); foreach (var productMediaItem in productMedia) { var newProductMedia = productMediaItem; newProductMedia.ProductID = productToSync.RsoProductID; newProductMedia.TypeID = ProductMediaTypeIDLookup[productMediaItem.TypeID]; newProductMedia.VendorID = IntersportContentVendorID; newProductMedia.MediaPath = GetNewMediaPath(productMediaItem.MediaPath); ProductMediaRepository.AddNewProductMedia(newProductMedia, db); } }
private void SyncProductMediaFiles(ProductMediaDifferential productToSync, Database db) { var productMedias = ProductMediaRepository.GetMediaForProduct(productToSync.ProductID); foreach (var productMedia in productMedias) { var newFileLocation = Path.Combine(MediaLocationBasePath, GetNewMediaPath(productMedia.MediaPath)); var directoryName = Path.GetDirectoryName(newFileLocation); if (!Directory.Exists(directoryName)) { Directory.CreateDirectory(directoryName); } if (!File.Exists(newFileLocation)) { File.Copy(Path.Combine(MediaSourceLocation, productMedia.MediaPath), newFileLocation); } } }