Ejemplo n.º 1
0
        public static void AutoImport(string[] args, DriveHelper driveHelper)
        {
            ContentElement contentElement = null;
            ContentType    contentType    = null;

            importOptions = new ImportOptions(args);
            bool hasError = false;

            try
            {
                List <Google.Apis.Drive.v3.Data.File> filestoimport;
                if (importOptions.directory != null)
                {
                    filestoimport = driveHelper.GetFilesInDirectory(importOptions.directory);
                }
                else
                {
                    var file = driveHelper.GetSingleFile(importOptions.sourceFileName);
                    filestoimport = new List <Google.Apis.Drive.v3.Data.File>();
                    filestoimport.Add(file);
                }

                // Get content type
                var task = clientDelivery.GetTypeAsync(importOptions.contentTypeName);
                contentType = task.GetAwaiter().GetResult();

                // Obtain target element from content type. Skip for spreadsheets
                bool allSpreadsheets = true;
                foreach (var f in filestoimport)
                {
                    if (!DriveHelper.IsSpreadsheet(f))
                    {
                        allSpreadsheets = false;
                        break;
                    }
                }
                if (!allSpreadsheets)
                {
                    contentElement = GetElementFromType(contentType, importOptions.targetElementName);
                }

                //Import file(s)
                foreach (var file in filestoimport)
                {
                    var stream = driveHelper.DownloadFile(file);
                    if (stream != null)
                    {
                        BeginImport(stream, file, contentElement, contentType, importOptions.update);
                    }
                }
            }
            catch (Exception e)
            {
                hasError = true;
                Program.ShowError(e.Message);
            }

            Console.WriteLine(hasError ? "Import not complete, please check error messages" : "Import complete");
            Console.ReadKey();
        }
Ejemplo n.º 2
0
        public static void Run()
        {
            ContentType    targetType    = null;
            ContentElement targetElement = null;

            Google.Apis.Drive.v3.Data.File sourceFile = null;
            bool update   = false;
            bool hasError = false;

            var files = driveHelper.ListFiles();

            if (files != null && files.Count > 0)
            {
                sourceFile = VerifySourceFile(files);
            }
            else
            {
                Program.ShowError("No files found.");
                Console.ReadKey();
                return;
            }

            if (!DriveHelper.IsAsset(sourceFile))
            {
                var types = KontentHelper.ListContentTypes();
                targetType = VerifyContentType(types);

                // If imported file is not a spreadsheet, get target element
                if (!DriveHelper.IsSpreadsheet(sourceFile))
                {
                    targetElement = VerifyContentElement(targetType);
                }

                update = AskUpdate();
            }

            // Verify data and begin import
            Console.WriteLine();
            if (!CanImport(sourceFile, targetElement, targetType))
            {
                ShowError("Something went wrong.. Please press any key to close.");
                Console.ReadKey();
                return;
            }
            else
            {
                try
                {
                    var stream = driveHelper.DownloadFile(sourceFile);
                    if (stream != null)
                    {
                        KontentHelper.BeginImport(stream, sourceFile, targetElement, targetType, update);
                    }
                }
                catch (Exception e)
                {
                    hasError = true;
                    ShowError(e.Message);
                }
                finally
                {
                    Console.WriteLine(hasError ? "Import completed with error(s), please check error messages" : "Import complete");
                    // Ask if user wants to run import again
                    Console.WriteLine("Do you want to perform another import? [Enter = Yes, Any other key = Quit]");
                    if (Console.ReadKey().Key == ConsoleKey.Enter)
                    {
                        Run();
                    }
                }
            }
        }