Пример #1
0
            public bool Resync(ResyncOption option)
            {
                if (!CanResync(option))
                {
                    return(true);
                }

                switch (option)
                {
                case ResyncOption.GAB:
                    if (IsSyncing)
                    {
                        // Already syncing, resync GAB asynchronously
                        _featureGAB.FullResync(null, _accounts);
                        // Cannot resync again until the dialog is reopened
                        _canResync[(int)ResyncOption.GAB] = false;
                        return(false);
                    }
                    else
                    {
                        ProgressDialog.Execute("GABSync",
                                               (ct, tracker) =>
                        {
                            _featureGAB.FullResync(tracker, _accounts);
                            return(0);
                        }
                                               );
                        return(true);
                    }

                case ResyncOption.Signatures:
                    ProgressDialog.Execute("SignaturesSync",
                                           (ct) =>
                    {
                        _featureSignatures.Resync(_accounts);
                        return(0);
                    }
                                           );
                    return(true);

                case ResyncOption.ServerData:
                    ProgressDialog.Execute("ServerSync",
                                           (ct) =>
                    {
                        ThisAddIn.Instance.Watcher.Sync.ExecuteTasks(_accounts);
                        return(0);
                    }
                                           );

                    return(true);

                case ResyncOption.Full:
                    IRestarter restarter = ThisAddIn.Instance.Restarter();
                    restarter.ResyncAccounts(_accounts);
                    restarter.Restart();
                    return(true);
                }
                return(true);
            }