private async void BtnLogout_OnClick(object sender, RoutedEventArgs e)
        {
            var model = DataContext as AsanaViewModel;

            if (model.IsBlockingProgress)
            {
                return;
            }

            if (MessageBox.Show("Are you sure you want to logout? All local data will be removed.", "Warning", MessageBoxButton.OKCancel) != MessageBoxResult.OK)
            {
                return;
            }

            model.IsBlockingProgress = true;
            Bootstrapper.Current.Container.Resolve <IProgressIndicatorService>().Show("Processing");

            await Bootstrapper.Current.Container.Resolve <DbService>().ClearDb();

            DispatcherHelper.OnUi(() =>
            {
                (DataContext as AsanaViewModel).IsBlockingProgress = false;

                Bootstrapper.Current.Container.Resolve <IProgressIndicatorService>().Hide();

                AsanaStateService.ResetAuthData();
                ExNavigationService.ClearNavigationHistory();
                ExNavigationService.Navigate <LoginNewPage>();
            });
        }
        private async void BtnLogin_OnClick(object sender, EventArgs e)
        {
            var model = DataContext as LoginViewModel;

            if (string.IsNullOrEmpty(model.ApiKey))
            {
                MessageBox.Show("Set your Asana API key", "Error", MessageBoxButton.OK);
                return;
            }

            btnLogin.IsEnabled = false;
            AsanaStateService.SetAuthToken(model.ApiKey);
            model.IsBusy = true;
            var response = await new AsanaRespository().GetWorkspaces();

            btnLogin.IsEnabled = true;


            if (AsanaClient.ProcessResponse(response, true))
            {
                AsanaStateService.SetAuthToken(model.ApiKey);
                ExNavigationService.Navigate <MainPage>();
            }
            else
            {
                AsanaStateService.SetAuthToken("");
                OnError(response);
            }
            model.IsBusy = false;
        }
        protected override void Init()
        {
            Container.Register <ILogger, DebugLogger>();
            Container.Register <IDbService, TestDbService>();
            SmallProfiler.Start();

            Container.Resolve <IDbService>().Initialize();



            AsanaStateService.Initialize();

            ViewModelMap.Register <DevRain.Asana.Pages.MainPage, MainViewModel>();
            ViewModelMap.Register <WorkspaceDetails, WorkspaceDetailsViewModel>();
            ViewModelMap.Register <UserDetails, UserDetailsViewModel>();
            ViewModelMap.Register <AddEditProject, AddEditProjectViewModel>();
            ViewModelMap.Register <TagDetails, TagDetailsViewModel>();
            ViewModelMap.Register <TaskDetails, TaskDetailsViewModel>();
            ViewModelMap.Register <AddEditTask, AddEditTaskViewModel>();
            ViewModelMap.Register <ProjectDetails, ProjectDetailsViewModel>();


            ViewModelCache.Register <WorkspaceDetailsViewModel>();
            ViewModelCache.Register <ProjectDetailsViewModel>();
            ViewModelCache.Register <UserDetailsViewModel>();
            ViewModelCache.Register <TagDetailsViewModel>();
            ViewModelCache.Register <TaskDetailsViewModel>();
            //Container.Resolve<ILogger>().Debug("Init complete");
        }
示例#4
0
        async void browser_Navigating(object sender, NavigatingEventArgs e)
        {
            Model.IsBusy = true;
            try
            {
                if (e.Uri.Host.Contains(_website))
                {
                    string[] data = e.Uri.Fragment.Split(new string[] { "&" }, StringSplitOptions.RemoveEmptyEntries);

                    var token = data[0].Replace("#access_token=", "");

                    token = HttpUtility.UrlDecode(token);

                    AsanaStateService.SetAuthToken(token);

                    var response = await new AsanaRespository().GetUser("me");

                    if (AsanaClient.ProcessResponse(response))
                    {
                        if (response.Data.id != SettingsService.LoggedUserId)
                        {
                            await Bootstrapper.Current.Container.Resolve <DbService>().ClearDb();
                        }

                        SettingsService.LoggedUserId  = response.Data.id;
                        SettingsService.CurrentUserId = response.Data.id;
                        ExNavigationService.Navigate <MainPage>();
                    }
                }
            }
            catch (Exception exc)
            {
                Debug.WriteLine(exc.Message);
            }
        }
        protected override void Init()
        {
            Container.Register <ILogger, DebugLogger>();
            Container.Register <DbService, DbService>();
            Container.RegisterInstance <IAsanaResponseProcessor, AsanaResponseProcessor>();
            SmallProfiler.Start();

            Container.Resolve <DbService>().Initialize();

            InteractionEffectManager.AllowedTypes.Add(typeof(RadDataBoundListBoxItem));


            Counter.Start(10669);

            RadDiagnostics diagnostics = new RadDiagnostics();

            diagnostics.EmailTo            = AsanaConstants.FeedbackEmail;
            diagnostics.EmailSubject       = AsanaConstants.AppTitle;
            diagnostics.ApplicationVersion = DeviceHelper.GetAppVersion().ToString();
            //diagnostics.MessageBoxInfo.Title = "";
            diagnostics.MessageBoxInfo.Content = "Would you to like to send information about error to developers?";

            diagnostics.Init();
            Telerik.Windows.Controls.ApplicationUsageHelper.Init(DeviceHelper.GetAppVersion().ToString());
            /// ///

            AsanaStateService.Initialize();


            //ApplicationRatingNotificationServiceFromNokia.Initialize("Winsana","*****@*****.**");


            ViewModelMap.Register <MainPage, MainViewModel>();
            ViewModelMap.Register <WorkspaceDetails, WorkspaceDetailsViewModel>();
            ViewModelMap.Register <UserDetails, UserDetailsViewModel>();
            ViewModelMap.Register <AddEditProject, AddEditProjectViewModel>();
            ViewModelMap.Register <TagDetails, TagDetailsViewModel>();
            ViewModelMap.Register <TaskDetails, TaskDetailsViewModel>();
            ViewModelMap.Register <AddEditTask, AddEditTaskViewModel>();
            ViewModelMap.Register <ProjectDetails, ProjectDetailsViewModel>();
            ViewModelMap.Register <AllTasks, AllTasksViewModel>();
            ViewModelMap.Register <SettingsPage, SettingsViewModel>();

            ViewModelCache.Register <WorkspaceDetailsViewModel>();
            ViewModelCache.Register <ProjectDetailsViewModel>();
            ViewModelCache.Register <UserDetailsViewModel>();
            ViewModelCache.Register <TagDetailsViewModel>();
            ViewModelCache.Register <TaskDetailsViewModel>();



            System.Threading.Tasks.TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException;
        }
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            SmallProfiler.PrintLine("StartPage - OnNavigatedTo");


#if DEBUG
            Bootstrapper.Current.Container.Resolve <IApplicationSettingsService>().SetSetting("ApiKey", "2IPsBtr.EBOluTYUi2mwwz86RkWKNHr6");
            AsanaStateService.Initialize();
#endif


            if (AsanaStateService.IsSetApiKey)
            {
                ExNavigationService.Navigate <MainPage>();
                return;
            }

            if (AsanaStateService.IsSetAuthToken)
            {
                if (NetworkHelper.IsNetworkAvailableNew())
                {
                    var response = await new AsanaRespository().GetUser("me");

                    if (AsanaClient.ProcessResponse(response, true))
                    {
                        ExNavigationService.Navigate <MainPage>();
                    }
                    else
                    {
                        ExNavigationService.Navigate <LoginNewPage>();
                    }
                }
                else
                {
                    ExNavigationService.Navigate <MainPage>();
                }
            }
            else
            {
                ExNavigationService.Navigate <LoginNewPage>();
            }
        }
示例#7
0
 /// <remarks>
 /// ScheduledAgent constructor, initializes the UnhandledException handler
 /// </remarks>
 public ScheduledAgent()
 {
     if (!_classInitialized)
     {
         _classInitialized = true;
         // Subscribe to the managed exception handler
         Deployment.Current.Dispatcher.BeginInvoke(delegate
         {
             Application.Current.UnhandledException += ScheduledAgent_UnhandledException;
         });
         //var b = new BackgroundBootstrapper();
         //b.InitializeForBackgroundTask();
         AsanaStateService.Initialize();
         AppBootstrapperStateService.Container = new IocContainer();
         AppBootstrapperStateService.Container.Register <ILogger, DebugLogger>();
         AppBootstrapperStateService.Container.Register <DbService, DbService>();
         AppBootstrapperStateService.Container.RegisterInstance <IApplicationSettingsService, ApplicationSettingsService>();
         AppBootstrapperStateService.Container.RegisterInstance <IAsanaResponseProcessor, NonUiAsanaResponseProcessor>();
         //AppBootstrapperStateService.Container.Resolve<DbService>().Initialize();
     }
 }