private void OnDataChanged(object sender, System.EventArgs e)
        {
            ITeamFoldersView  view  = base._view as ITeamFoldersView;
            ITeamFoldersModel model = base._model as ITeamFoldersModel;

            PresenterBase.SetModelPropertiesFromView <ITeamFoldersModel, ITeamFoldersView>(
                ref model, view
                );
        }
        private void OnCommandSetFolderSyncSetting(object sender, System.EventArgs e)
        {
            ITeamFoldersView  view      = base._view as ITeamFoldersView;
            ITeamFoldersModel model     = base._model as ITeamFoldersModel;
            IMainPresenter    presenter = SimpleResolver.Instance.Get <IMainPresenter>();
            TeamFoldersModel  teamModel = view.GetTeamFolderIds();
            bool syncSetting            = view.SyncSetting;

            if (SyncContext != null)
            {
                SyncContext.Post(delegate
                {
                    presenter.EnableControl(false);
                    presenter.ActivateSpinner(true);
                    presenter.UpdateProgressInfo("Processing...");
                }, null);
            }
            Thread setfoldersyncsetting = new Thread(() =>
            {
                if (string.IsNullOrEmpty(model.AccessToken))
                {
                    SyncContext.Post(delegate
                    {
                        presenter.EnableControl(true);
                        presenter.ActivateSpinner(false);
                        presenter.UpdateProgressInfo("");
                    }, null);
                }
                else
                {
                    foreach (TeamFoldersListViewItemModel lvItem in teamModel.TeamFolders)
                    {
                        this.SetDefaultSyncSetting(model, lvItem.TeamFolderId, syncSetting, presenter);
                    }
                    if (SyncContext != null)
                    {
                        SyncContext.Post(delegate
                        {
                            // update result and update view.
                            PresenterBase.SetViewPropertiesFromModel <ITeamFoldersView, ITeamFoldersModel>(
                                ref view, model
                                );
                            // update result and update view.
                            view.RenderTeamFoldersList();
                            presenter.ActivateSpinner(false);
                            presenter.EnableControl(true);
                            //presenter.UpdateProgressInfo("Completed.");
                        }, null);
                    }
                }
            });

            setfoldersyncsetting.Start();
        }
 protected override void UnWireViewEvents()
 {
     if (IsViewEventsWired)
     {
         ITeamFoldersView view = base._view as ITeamFoldersView;
         view.DataChanged                 -= OnDataChanged;
         view.CommandGetTeamFolders       -= OnCommandGetTeamFolders;
         view.CommandCreateTeamFolder     -= OnCommandCreateTeamFolder;
         view.CommandSetFolderStatus      -= OnCommandSetFolderStatus;
         view.CommandSetFolderSyncSetting -= OnCommandSetFolderSyncSetting;
         IsViewEventsWired                 = false;
     }
 }
 protected override void WireViewEvents()
 {
     if (!IsViewEventsWired)
     {
         ITeamFoldersView view = base._view as ITeamFoldersView;
         view.DataChanged                 += OnDataChanged;
         view.CommandGetTeamFolders       += OnCommandGetTeamFolders;
         view.CommandCreateTeamFolder     += OnCommandCreateTeamFolder;
         view.CommandSetFolderStatus      += OnCommandSetFolderStatus;
         view.CommandSetFolderSyncSetting += OnCommandSetFolderSyncSetting;
         IsViewEventsWired                 = true;
     }
 }
        protected override void Initialize()
        {
            ITeamFoldersView  view  = base._view as ITeamFoldersView;
            ITeamFoldersModel model = base._model as ITeamFoldersModel;

            PresenterBase.SetViewPropertiesFromModel <ITeamFoldersView, ITeamFoldersModel>(
                ref view, model
                );

            SyncContext.Post(delegate {
                view.RefreshAccessToken();
            }, null);
        }
        private void OnCommandCreateTeamFolder(object sender, System.EventArgs e)
        {
            ITeamFoldersView  view           = base._view as ITeamFoldersView;
            ITeamFoldersModel model          = base._model as ITeamFoldersModel;
            IMainPresenter    presenter      = SimpleResolver.Instance.Get <IMainPresenter>();
            string            teamFolderName = view.TeamFolderName;
            bool syncSetting = view.SyncSetting;

            if (SyncContext != null)
            {
                SyncContext.Post(delegate
                {
                    presenter.EnableControl(false);
                    presenter.ActivateSpinner(true);
                    presenter.UpdateProgressInfo("Processing...");
                }, null);
            }
            Thread createteamfolder = new Thread(() =>
            {
                if (string.IsNullOrEmpty(model.AccessToken))
                {
                    SyncContext.Post(delegate
                    {
                        presenter.EnableControl(true);
                        presenter.ActivateSpinner(false);
                        presenter.UpdateProgressInfo("");
                    }, null);
                }
                else
                {
                    this.CreateTeamFolder(model, teamFolderName, presenter);
                    if (SyncContext != null)
                    {
                        SyncContext.Post(delegate
                        {
                            // update result and update view.
                            PresenterBase.SetViewPropertiesFromModel <ITeamFoldersView, ITeamFoldersModel>(
                                ref view, model
                                );
                            // update result and update view.
                            view.RenderTeamFoldersList();
                            presenter.ActivateSpinner(false);
                            presenter.EnableControl(true);
                            presenter.UpdateProgressInfo("Completed.");
                        }, null);
                    }
                }
            });

            createteamfolder.Start();
        }
 public TeamFoldersPresenter(ITeamFoldersModel model, ITeamFoldersView view)
     : base(model, view)
 {
 }
 public TeamFoldersPresenter(ITeamFoldersModel model, ITeamFoldersView view)
     : base(model, view) {
 }