Ejemplo n.º 1
0
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        static int Main(string[] args)
        {
            InitializeServiceLocator();

            ConsoleLog("Asset Importer v" + Assembly.GetExecutingAssembly().GetName().Version.ToString() + " Copyright 2011-2012 EPiServer AB\n");

            string csvFile      = null;
            string assetFolder  = null;
            string importFolder = "Catalogs";
            string sitePath     = null;

            switch (args.Length)
            {
            case 0:
                DisplayUsage();
                return(0);

            case 1:
                ConsoleLog("Arguments incorrect.");
                return(1);

            case 2:
                ConsoleLog("Arguments incorrect.");
                return(2);

            default:
                csvFile     = args[0];
                assetFolder = args[1];
                sitePath    = args[2];
                break;
            }

            bool importByAsset = false;
            bool uselegacy     = false;
            bool mappingOnly   = false;

            for (int i = 3; i < args.Length; i++)
            {
                if (i == 3 && args[i][0] != '-')
                {
                    importFolder = args[i];
                    continue;
                }
                switch (args[i].ToLower())
                {
                case "-byasset":
                    importByAsset = true;
                    break;

                case "-uselegacy":
                    uselegacy = true;
                    break;

                case "-mappingonly":
                    mappingOnly = true;
                    break;

                case "-verbose":
                    break;

                default:
                    ConsoleLogFormat("Invalid command line option {0}.", args[i]);
                    DisplayUsage();
                    return(1);
                }
            }

            var stopwatch = Stopwatch.StartNew();

            ConsoleLog("Reading mappings from " + csvFile);
            ConsoleLog("Importing assets from " + assetFolder);
            ConsoleLog("Importing assets to   " + importFolder);
            ConsoleLog("Site Path   " + sitePath);

            ImportBase importer = null;

            if (!uselegacy)
            {
                if (!mappingOnly)
                {
                    importer = new ImportByCmsContent(assetFolder, importFolder, sitePath);
                }
                else
                {
                    importer = new CmsContentMapping(ServiceLocator.Current.GetInstance <IConnectionStringHandler>());
                }
            }
            else
            {
                InitAssetDatabase();
                InitECFAppContext();
                if (importByAsset)
                {
                    importer = new ImportByAsset(assetFolder, importFolder);
                }
                else
                {
                    importer = new ImportByProduct(assetFolder, importFolder);
                }
            }
            var reader = new CsvReader(csvFile);

            importer.DoImport(reader.Entries());
            stopwatch.Stop();
            ConsoleLog("\nElapsed time " + stopwatch.Elapsed.ToString());
            return(0);
        }