Beispiel #1
0
        /// <summary>
        /// Exec backup (new thread "body")
        /// </summary>
        private void ExecBackupThread(object data)
        {
            String[] parameters = data as String[];

            Properties.Settings conf = Properties.Settings.Default;

            IWebProxy webproxy = Utility.GetProxy(conf.ProxyExplicit, conf.ProxyDirectConnection, conf.ProxyHostPortSource, conf.ProxyHost, conf.ProxyPort, conf.ProxyAuthMode, conf.ProxyUsername, conf.ProxyPassword);

            Config config = new Config(
                parameters[0],
                parameters[1],
                parameters[2],
                parameters[3] == "ALL",
                Utility.DecodeDownloadTypeArray(conf.DocumentExportFormat).ToArray(),
                Utility.DecodeDownloadTypeArray(conf.SpreadsheetExportFormat).ToArray(),
                Utility.DecodeDownloadTypeArray(conf.PresentationExportFormat).ToArray(),
                Utility.DecodeDownloadTypeArray(conf.DrawingExportFormat).ToArray(),
                webproxy,
                conf.BypassCertificateChecks,
                this.DebugMode,
                conf.DateDelta,
                conf.AppsMode,
                conf.AppsDomain,
                String.IsNullOrEmpty(conf.AppsOAuthSecretEncrypted) ? null : Utility.UnprotectData(conf.AppsOAuthSecretEncrypted),
                conf.AppsOAuthOnly);

            Backup b = new Backup(config);
            b.Feedback += new EventHandler<FeedbackEventArgs>(Backup_Feedback);
            bool result = b.Exec();
            this.BeginInvoke((MethodInvoker)delegate() { EndDownload(result, b.DuplicatedDocNames, b.LastException); });
        }
Beispiel #2
0
        /// <summary>
        /// ...
        /// </summary>
        private static bool DoBackup(Dictionary<string, string> parameters)
        {
            // Google Apps
            bool appsMode = parameters.ContainsKey("appsMode") ? parameters["appsMode"] == "1" : false;
            string appsDomain = null;
            string appsOAuthSecret = null;
            bool appsOAuthOnly = false;
            if (appsMode)
            {
                appsDomain = parameters.ContainsKey("appsDomain") ? parameters["appsDomain"] : null;
                appsOAuthSecret = parameters.ContainsKey("appsOAuthSecret") ? parameters["appsOAuthSecret"] : null;
                appsOAuthOnly = parameters.ContainsKey("appsOAuthOnly") ? parameters["appsOAuthOnly"] == "1" : false;
                if (String.IsNullOrEmpty(appsDomain)) throw new ApplicationException("Empty appsDomain parameter");
                if (String.IsNullOrEmpty(appsOAuthSecret)) throw new ApplicationException("Empty appsOAuthSecret parameter");
            }

            // Get username
            string username = parameters.ContainsKey("username") ? parameters["username"] : null;
            if ((appsMode == false && username == null) ||
                (appsMode == true && appsOAuthOnly == false && username == null))
                throw new ApplicationException("Empty username parameter");

            // Get password
            string password = null;
            if (parameters.ContainsKey("password"))
                password = parameters["password"];
            if (parameters.ContainsKey("passwordEnc"))
                password = Utility.UnprotectData(parameters["passwordEnc"]);
            if (parameters.ContainsKey("passwordEncFile"))
                password = Utility.UnprotectData(File.ReadAllText(parameters["passwordEncFile"]));
            if ((appsMode == false && password == null) ||
                (appsMode == true && appsOAuthOnly == false && password == null))
                throw new ApplicationException("Empty password parameter");

            // Get destDir
            string destDir = parameters.ContainsKey("destDir") ? parameters["destDir"] : null;
            if (destDir == null)
                throw new ApplicationException("Empty destDir parameter");

            // Get document export format
            string docF = parameters.ContainsKey("docF") ? parameters["docF"] : null;
            string sprsF = parameters.ContainsKey("sprsF") ? parameters["sprsF"] : null;
            string presF = parameters.ContainsKey("presF") ? parameters["presF"] : null;
            string drawF = parameters.ContainsKey("drawF") ? parameters["drawF"] : null;
            if (docF == null) throw new ApplicationException("Empty docF parameter");
            if (sprsF == null) throw new ApplicationException("Empty sprsF parameter");
            if (presF == null) throw new ApplicationException("Empty presF parameter");
            if (drawF == null) throw new ApplicationException("Empty drawF parameter");
            List<Document.DownloadType> docTypes = Utility.DecodeDownloadTypeArray(docF, '+');
            List<Document.DownloadType> sprsTypes = Utility.DecodeDownloadTypeArray(sprsF, '+');
            List<Document.DownloadType> presTypes = Utility.DecodeDownloadTypeArray(presF, '+');
            List<Document.DownloadType> drawTypes = Utility.DecodeDownloadTypeArray(drawF, '+');
            string downloadAll = parameters.ContainsKey("downloadAll") ? parameters["downloadAll"] : null;

            // Get BypassHttpsCertChecks
            bool bypassHttpsCertChecks = parameters.ContainsKey("bypassHttpsCertChecks");

            // Output parameters
            Console.WriteLine(new String('-', 40));
            Console.WriteLine("Parameters: ");
            Console.WriteLine("Username:        "******"Password:        "******"[hidden]");
            Console.WriteLine("DestDir:         " + destDir);
            Console.WriteLine("Document:        " + docF);
            Console.WriteLine("Spreadsheet:     " + sprsF);
            Console.WriteLine("Presentation:    " + presF);
            Console.WriteLine("Drawing:         " + drawF);
            Console.WriteLine("DownloadAll:     " + downloadAll);
            Console.WriteLine("appsMode:        " + appsMode);
            Console.WriteLine("appsDomain:      " + appsDomain);
            Console.WriteLine("appsOAuthSecret: " + appsOAuthSecret);
            Console.WriteLine("appsOAuthOnly:   " + appsOAuthOnly);
            Console.WriteLine(new String('-', 40));

            // Exec backup
            Config config = new Config(
                username, password,
                destDir,
                downloadAll == "yes",
                docTypes.ToArray(), sprsTypes.ToArray(), presTypes.ToArray(), drawTypes.ToArray(),
                null,
                bypassHttpsCertChecks,
                false,
                null,
                appsMode,
                appsDomain,
                appsOAuthSecret,
                appsOAuthOnly);

            Backup backup = new Backup(config);
            backup.Feedback += new EventHandler<FeedbackEventArgs>(backup_Feedback);
            bool resOK = backup.Exec();

            return resOK;
        }