static void LoadProducts(List <PIMProduct> pimProds, Dictionary <string, Product> currentProducts) { PIMServices ps = new PIMServices(); long lap = 0; // HACK: Uncomment this Console.WriteLine("Import Products and Specifications"); lap = DateTime.Now.Ticks; ps.ImportProducts(pimProds, currentProducts); Console.WriteLine(string.Format("Time taken {0:N4} secs", new TimeSpan(DateTime.Now.Ticks - lap).TotalMilliseconds / 1000D)); Console.WriteLine("Import Product Notes"); lap = DateTime.Now.Ticks; ps.ImportProductNotes(pimProds, currentProducts); Console.WriteLine(string.Format("Time taken {0:N4} secs", new TimeSpan(DateTime.Now.Ticks - lap).TotalMilliseconds / 1000D)); Console.WriteLine("Import Product Components"); lap = DateTime.Now.Ticks; ps.ImportProductComponents(pimProds, currentProducts); Console.WriteLine(string.Format("Time taken {0:N4} secs", new TimeSpan(DateTime.Now.Ticks - lap).TotalMilliseconds / 1000D)); Console.WriteLine("Starting Database Maintenance Routines"); lap = DateTime.Now.Ticks; ps.RunDatabaseMaintenanceRoutines(); Console.WriteLine(string.Format("Time taken {0:N4} secs", new TimeSpan(DateTime.Now.Ticks - lap).TotalMilliseconds / 1000D)); }
static void LoadListOfValues(Dictionary <string, PIMListOfValue> lovs, Dictionary <string, PIMAttribute> attributes, List <PIMProduct> pimProds) { PIMServices ps = new PIMServices(); // Identify all attributes with list of values var qryLovs = from lov in lovs where lov.Value != null select lov.Value; long lap = 0; Console.WriteLine("-- Importing Mapped List of Values"); lap = DateTime.Now.Ticks; ps.ImportLookupTablesMapped(qryLovs.ToDictionary(x => x.ID)); Console.WriteLine(string.Format("-- Time taken {0:N4} secs", new TimeSpan(DateTime.Now.Ticks - lap).TotalMilliseconds / 1000D)); Console.WriteLine("-- Importing Unmapped List of Values"); lap = DateTime.Now.Ticks; ps.ImportProductSpecificationLabelAndKeyLookup(attributes); Console.WriteLine(string.Format("-- Time taken {0:N4} secs", new TimeSpan(DateTime.Now.Ticks - lap).TotalMilliseconds / 1000D)); Console.WriteLine("-- Importing Custom List Of Values"); lap = DateTime.Now.Ticks; ps.ImportLookupTablesCustom(pimProds); Console.WriteLine(string.Format("-- Time taken {0:N4} secs", new TimeSpan(DateTime.Now.Ticks - lap).TotalMilliseconds / 1000D)); }
static void CleanupProducts(List <PIMProduct> pimProducts, Dictionary <string, Product> currentProducts) { PIMServices ps = new PIMServices(); long lap = 0; Console.WriteLine("-- Disabling Old Products"); lap = DateTime.Now.Ticks; ps.DisableProducts(pimProducts, currentProducts); Console.WriteLine(string.Format("-- Time taken {0:N4} secs", new TimeSpan(DateTime.Now.Ticks - lap).TotalMilliseconds / 1000D)); }
static void LoadDocuments(List <PIMProduct> pimProds, Dictionary <string, PIMAsset> assets, Dictionary <string, Product> currentProducts) { PIMServices ps = new PIMServices(); long lap = 0; Console.WriteLine("Import Product Documents"); lap = DateTime.Now.Ticks; ps.ImportProductDocuments(pimProds, currentProducts); Console.WriteLine(string.Format("Time taken {0:N4} secs", new TimeSpan(DateTime.Now.Ticks - lap).TotalMilliseconds / 1000D)); }
static XDocument LoadExportXml() { XDocument doc = null; PIMServices ps = new PIMServices(); try { using (SftpClient sftp = ps.CreatePIMSftp()) { sftp.Connect(); var directory = "/" + ps.GetPIMExportDirectory(); var allFiles = sftp.ListDirectory(directory); // Load expected files var filesToSearch = (from file in allFiles where !String.IsNullOrWhiteSpace(file.Name) && file.Name.Contains(ps.GetPIMZipFileName()) orderby file.LastWriteTime ascending select file).ToList(); // Remove old files if (filesToSearch.Count > 1) { for (int i = 0; i < filesToSearch.Count - 1; i++) { var file = filesToSearch[i]; sftp.DeleteFile(file.FullName); } } // Parse file (should now be only one file) foreach (var file in filesToSearch) { using (MemoryStream ms = new MemoryStream()) { sftp.DownloadFile(file.FullName, ms); ms.Position = 0; Stream unzippedMs; // TODO: Add zip capability ZipArchive archive = new ZipArchive(ms); foreach (ZipArchiveEntry entry in archive.Entries) { if (entry.FullName.IndexOf(ps.GetPIMExportFileName(), StringComparison.OrdinalIgnoreCase) >= 0) { unzippedMs = entry.Open(); // .Open will return a stream //Process entry data here doc = XDocument.Load(unzippedMs); } } } } sftp.Disconnect(); } } catch (Exception ex) { LogException(ex); Console.WriteLine("Unable to load file"); } return(doc); }