Пример #1
0
        /// <summary>
        /// When you have authorized our application in Podio - you can use the code that podio returns
        /// to authenticate against the podio API (hold on to it - it can be used again and again and again)....
        /// </summary>
        public ActionResult HandleAuthorizationResponse(string code, string error_reason, string error, string error_description)
        {
            // You got the code - congratulations - lets kick some $$S and connect to podio.
            if (string.IsNullOrEmpty(error) && !string.IsNullOrEmpty(code))
            {
                ClientAppInfo appinf = Application.CurrentConnectionDetails.ClientAppInfo;

                // We got a winner
                // Connect and fetch the authentication token for reuse.
                try
                {
                    var client   = Podio.API.Client.ConnectWithAuthorizationCode(appinf.ClientId, appinf.ClientSecret, code, appinf.Domain);
                    var conninfo = Application.CurrentConnectionDetails;
                    conninfo.AuthorizationAccessToken    = client.AuthInfo;
                    Application.CurrentConnectionDetails = conninfo;
                }
                catch (Exception ex) {
                    TempData["error"] = ex.Message;
                }
            }
            else
            {
                // Lets display an error
                TempData["error"] = error;
            }
            return(RedirectToAction("Index"));
        }
Пример #2
0
        public ActionResult Index(ClientAppInfo inf)
        {
            var conninfo = Application.CurrentConnectionDetails;

            conninfo.ClientAppInfo = inf;
            Application.CurrentConnectionDetails = conninfo;
            return(RedirectToAction("index"));
        }
Пример #3
0
        public ActionResult ConnectApp(string appid, string apptoken)
        {
            ClientAppInfo appinf = Application.CurrentConnectionDetails.ClientAppInfo;

            try
            {
                var client   = Podio.API.Client.ConnectAsApp(appinf.ClientId, appinf.ClientSecret, appid, apptoken, appinf.Domain);
                var conninfo = Application.CurrentConnectionDetails;
                conninfo.AuthorizationAccessToken    = client.AuthInfo;
                Application.CurrentConnectionDetails = conninfo;
            }
            catch (Exception ex)
            {
                TempData["error"] = ex.Message;
            }
            return(RedirectToAction("Index"));
        }
Пример #4
0
        public ActionResult ConnectUserAndPass(string username, string password)
        {
            ClientAppInfo appinf = Application.CurrentConnectionDetails.ClientAppInfo;

            try
            {
                var client   = Podio.API.Client.ConnectAsUser(appinf.ClientId, appinf.ClientSecret, username, password);
                var conninfo = Application.CurrentConnectionDetails;
                conninfo.AuthorizationAccessToken    = client.AuthInfo;
                Application.CurrentConnectionDetails = conninfo;
            }
            catch (Exception ex)
            {
                TempData["error"] = ex.Message;
            }
            return(RedirectToAction("Index"));
        }
Пример #5
0
        /// <summary>
        /// This view contains a nice form for inputting your
        ///     1: client_id
        /// </summary>
        /// <returns></returns>
        public ActionResult Index()
        {
            var conninfo = Application.CurrentConnectionDetails;

            if (conninfo.IsReadyToRubmble) // You sir - are ready to rumble
            {
                return(View("ReadyToRumble", conninfo));
            }
            else if (conninfo.AuthorizationAccessToken == null && !string.IsNullOrEmpty(conninfo.ClientAppInfo.ClientSecret)) // You are now half-way - if we didn't loose you underways
            {
                return(View("SetupConnection", conninfo));                                                                    // You got a choice: App, User+Pass or Autorization for obtaining a token to go further with.
            }
            else // Lets get you ready to rumble
            {
                var viewmodel = new ClientAppInfo();
                viewmodel.Domain = Request.Url.GetLeftPart(UriPartial.Authority);
                return(View(viewmodel));
            }
        }
Пример #6
0
        private void InitServices()
        {
            var serverInfo = new ServerInfo()
            {
                SSL     = true,
                RootUrl = "dev-api.nuviot.com",
            };

            var clientAppInfo = new ClientAppInfo()
            {
                MainViewModel = typeof(MainViewModel)
            };

            DeviceInfo.Register();

            SLWIOC.RegisterSingleton <IAppConfig>(new AppConfig());
            LagoVista.Client.Core.Startup.Init(serverInfo);
            SLWIOC.RegisterSingleton <IClientAppInfo>(clientAppInfo);

            var navigation = new ViewModelNavigation(this);

            navigation.Add <MainViewModel, MainPage>();
            navigation.Add <ServicesViewModel, ServicesView>();
            navigation.Add <SecureStorageViewModel, SecureStorageView>();
            navigation.Add <ControlSampleViewModel, ControlSampleView>();
            navigation.Add <ViewModel2, Model2View>();



            SLWIOC.RegisterSingleton <IViewModelNavigation>(navigation);

            try
            {
                LagoVista.XPlat.Core.Startup.Init(this, navigation);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
            }

            navigation.Start <MainViewModel>();
        }