コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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);
        }