/// <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")); }
public ActionResult Index(ClientAppInfo inf) { var conninfo = Application.CurrentConnectionDetails; conninfo.ClientAppInfo = inf; Application.CurrentConnectionDetails = conninfo; return(RedirectToAction("index")); }
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")); }
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")); }
/// <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)); } }
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>(); }