/// <summary> /// Get a list of all masteries asynchronously. /// </summary> /// <param name="region">Region from which to retrieve the data.</param> /// <param name="masteryData">Data to retrieve.</param> /// <param name="language">Language of the data to be retrieved.</param> /// <returns>An MasteryListStatic object containing all masteries.</returns> public async Task <MasteryListStatic> GetMasteriesAsync(Region region, MasteryData masteryData = MasteryData.basic, Language language = Language.en_US) { var wrapper = cache.Get <string, MasteryListStaticWrapper>(MasteriesCacheKey); if (wrapper != null && language == wrapper.Language && masteryData == wrapper.MasteryData) { return(wrapper.MasteryListStatic); } var args = "{\"data\" : \"" + masteryData.ToString() + "\", \"region\" : \"" + region.ToString() + "\"}"; var ir = new Amazon.Lambda.Model.InvokeRequest { FunctionName = "arn:aws:lambda:us-east-1:907841483528:function:staticGetMastery", PayloadStream = AWSSDKUtils.GenerateMemoryStreamFromString(args) }; var json = ""; var resp = await App.lambdaClient.InvokeAsync(ir); var sr = new StreamReader(resp.Payload); json = sr.ReadToEnd(); var masteries = await Task.Factory.StartNew(() => JsonConvert.DeserializeObject <MasteryListStatic>(json)); wrapper = new MasteryListStaticWrapper(masteries, language, masteryData); cache.Add(MasteriesCacheKey, wrapper, DefaultSlidingExpiry); return(wrapper.MasteryListStatic); }
public override void ViewDidLoad() { base.ViewDidLoad(); CognitoAWSCredentials credentials = new CognitoAWSCredentials( "ap-southeast-2:b3abd62e-3efc-4d68-998e-7e528afc3368", // Cognito Identity Pool ID RegionEndpoint.APSoutheast2 // Region ); Amazon.Lambda.Model.InvokeRequest request = new Amazon.Lambda.Model.InvokeRequest(); request.FunctionName = "TestTT"; request.Payload = "{\"id\":1,\"operation\":\"list\",\"tableName\":\"TimeTrackDB\",\"username\":\"" + User + "\",\"client\":\"" + "a" + "\",\"charge\":\"" + "a" + "\",\"starttime\":\"" + DateTime.Now + "\",\"stoptime\":\"" + DateTime.Now + "\"}"; Amazon.Lambda.AmazonLambdaClient client = new AmazonLambdaClient(credentials, RegionEndpoint.APSoutheast2); var result = client.InvokeAsync(request).Result; result.Payload.Position = 0; var sr = new StreamReader(result.Payload); var myStr = sr.ReadToEnd(); var data = JsonConvert.DeserializeObject <LogTimes>(myStr); tblLogTimeData.Source = new LogTimeData(data.Items); }
/// <summary> /// Get a summoner spell synchronously. /// </summary> /// <param name="region">Region from which to retrieve the data.</param> /// <param name="summonerSpell">Summoner spell to retrieve.</param> /// <param name="summonerSpellData">Data to retrieve.</param> /// <param name="language">Language of the data to be retrieved.</param> /// <returns>A summoner spell.</returns> public SummonerSpellStatic GetSummonerSpell(Region region, SummonerSpell summonerSpell, List <SummonerSpellData> summonerSpellData, Language language = Language.en_US) { var stringList = new List <string>(); foreach (var data in summonerSpellData) { stringList.Add(data.ToString()); } var champData = Util.BuildNamesString(stringList); var args = "{\"data\" : \"" + champData + "\", \"region\" : \"" + region.ToString() + ", \"id\" : \"" + (int)summonerSpell + "\"}"; var ir = new Amazon.Lambda.Model.InvokeRequest { FunctionName = "arn:aws:lambda:us-east-1:907841483528:function:staticGetSummonerSpell", PayloadStream = AWSSDKUtils.GenerateMemoryStreamFromString(args) }; var json = ""; var test = Task.Run(async() => { var resp = await App.lambdaClient.InvokeAsync(ir); var sr = new StreamReader(resp.Payload); json = sr.ReadToEnd(); }); test.Wait(); var spell = JsonConvert.DeserializeObject <SummonerSpellStatic>(json); return(spell); }
/// <summary> /// Get a list of all champions asynchronously. /// </summary> /// <param name="region">Region from which to retrieve the data.</param> /// <param name="championData">Data to retrieve.</param> /// <param name="language">Language of the data to be retrieved.</param> /// <returns>A ChampionListStatic object containing all champions.</returns> public async Task <ChampionListStatic> GetChampionsAsync(Region region, List <ChampionData> championData, Language language = Language.en_US) { var stringList = new List <string> { }; foreach (var data in championData) { stringList.Add(data.ToString()); } var champData = Util.BuildNamesString(stringList); var args = "{\"data\" : \"" + champData + "\", \"region\" : \"" + region.ToString() + "\"}"; var ir = new Amazon.Lambda.Model.InvokeRequest { FunctionName = "arn:aws:lambda:us-east-1:907841483528:function:staticGetChampion", PayloadStream = AWSSDKUtils.GenerateMemoryStreamFromString(args) }; var json = ""; var resp = await App.lambdaClient.InvokeAsync(ir); var sr = new StreamReader(resp.Payload); json = sr.ReadToEnd(); var champs = await Task.Factory.StartNew(() => JsonConvert.DeserializeObject <ChampionListStatic>(json)); return(champs); }
/// <summary> /// Get a rune asynchronously. /// </summary> /// <param name="region">Region from which to retrieve the data.</param> /// <param name="runeId">Id of the rune to retrieve.</param> /// <param name="runeData">Data to retrieve.</param> /// <param name="language">Language of the data to be retrieved.</param> /// <returns>A rune.</returns> public async Task <RuneStatic> GetRuneAsync(Region region, int runeId, RuneData runeData = RuneData.basic, Language language = Language.en_US) { var wrapper = cache.Get <string, RuneStaticWrapper>(RuneCacheKey + runeId); if (wrapper != null && wrapper.Language == language && wrapper.RuneData == RuneData.all) { return(wrapper.RuneStatic); } var listWrapper = cache.Get <string, RuneListStaticWrapper>(RunesCacheKey); if (listWrapper != null && listWrapper.Language == language && listWrapper.RuneData == runeData) { return(listWrapper.RuneListStatic.Runes.ContainsKey(runeId) ? listWrapper.RuneListStatic.Runes[runeId] : null); } var args = "{\"data\" : \"" + runeData.ToString() + "\", \"region\" : \"" + region.ToString() + ", \"id\" : \"" + runeId + "\"}"; var ir = new Amazon.Lambda.Model.InvokeRequest { FunctionName = "arn:aws:lambda:us-east-1:907841483528:function:staticGetRune", PayloadStream = AWSSDKUtils.GenerateMemoryStreamFromString(args) }; var json = ""; var resp = await App.lambdaClient.InvokeAsync(ir); var sr = new StreamReader(resp.Payload); json = sr.ReadToEnd(); var rune = await Task.Factory.StartNew(() => JsonConvert.DeserializeObject <RuneStatic>(json)); cache.Add(RuneCacheKey + runeId, new RuneStaticWrapper(rune, language, runeData), DefaultSlidingExpiry); return(rune); }
/// <summary> /// Retrieve static api version data asynchronously. /// </summary> /// <param name="region">Region from which to retrieve data.</param> /// <returns>A list of versions as strings.</returns> public async Task <List <string> > GetVersionsAsync(Region region) { var wrapper = cache.Get <string, List <string> >(VersionCacheKey); if (wrapper != null) { return(wrapper); } var args = "{\"region\" : \"" + region.ToString() + "\"}"; var ir = new Amazon.Lambda.Model.InvokeRequest { FunctionName = "arn:aws:lambda:us-east-1:907841483528:function:staticGetVersion", PayloadStream = AWSSDKUtils.GenerateMemoryStreamFromString(args) }; var json = ""; var resp = await App.lambdaClient.InvokeAsync(ir); var sr = new StreamReader(resp.Payload); json = sr.ReadToEnd(); var version = await Task.Factory.StartNew(() => JsonConvert.DeserializeObject <List <string> >(json)); cache.Add(VersionCacheKey, version, DefaultSlidingExpiry); return(version); }
/// <summary> /// Retrieve realm data synchronously. /// </summary> /// <param name="region">Region corresponding to data to retrieve.</param> /// <returns>A realm object containing the requested information.</returns> /*public RealmStatic GetRealm(Region region) * { * var wrapper = cache.Get<string, RealmStaticWrapper>(RealmCacheKey); * if (wrapper != null) * { * return wrapper.RealmStatic; * } * * var json = requester.CreateGetRequest(string.Format(RealmRootUrl, region.ToString()), RootDomain); * var realm = JsonConvert.DeserializeObject<RealmStatic>(json); * * cache.Add(RealmCacheKey, new RealmStaticWrapper(realm), DefaultSlidingExpiry); * * return realm; * } * * /// <summary> * /// Retrieve realm data asynchronously. * /// </summary> * /// <param name="region">Region corresponding to data to retrieve.</param> * /// <returns>A realm object containing the requested information.</returns> * public async Task<RealmStatic> GetRealmAsync(Region region) * { * var wrapper = cache.Get<string, RealmStaticWrapper>(RealmCacheKey); * if (wrapper != null) * { * return wrapper.RealmStatic; * } * * var json = await requester.CreateGetRequestAsync(string.Format(RealmRootUrl, region.ToString()), RootDomain); * var realm = await Task.Factory.StartNew(() => JsonConvert.DeserializeObject<RealmStatic>(json)); * * cache.Add(RealmCacheKey, new RealmStaticWrapper(realm), DefaultSlidingExpiry); * * return realm; * }*/ /// <summary> /// Get a list of all runes synchronously. /// </summary> /// <param name="region">Region from which to retrieve the data.</param> /// <param name="runeData">Data to retrieve.</param> /// <param name="language">Language of the data to be retrieved.</param> /// <returns>A RuneListStatic object containing all runes.</returns> public RuneListStatic GetRunes(Region region, RuneData runeData = RuneData.basic , Language language = Language.en_US) { var wrapper = cache.Get <string, RuneListStaticWrapper>(RunesCacheKey); if (wrapper == null || language != wrapper.Language || runeData != wrapper.RuneData) { var args = "{\"data\" : \"" + runeData.ToString() + "\", \"region\" : \"" + region.ToString() + "\"}"; var ir = new Amazon.Lambda.Model.InvokeRequest { FunctionName = "arn:aws:lambda:us-east-1:907841483528:function:staticGetRune", PayloadStream = AWSSDKUtils.GenerateMemoryStreamFromString(args) }; var json = ""; var test = Task.Run(async() => { var resp = await App.lambdaClient.InvokeAsync(ir); var sr = new StreamReader(resp.Payload); json = sr.ReadToEnd(); }); test.Wait(); var runes = JsonConvert.DeserializeObject <RuneListStatic>(json); wrapper = new RuneListStaticWrapper(runes, language, runeData); cache.Add(RunesCacheKey, wrapper, DefaultSlidingExpiry); } return(wrapper.RuneListStatic); }
/// <summary> /// Get a mastery synchronously. /// </summary> /// <param name="region">Region from which to retrieve the data.</param> /// <param name="masteryId">Id of the mastery to retrieve.</param> /// <param name="masteryData">Data to retrieve.</param> /// <param name="language">Language of th data to be retrieved.</param> /// <returns>A mastery.</returns> public MasteryStatic GetMastery(Region region, int masteryId, MasteryData masteryData = MasteryData.basic, Language language = Language.en_US) { var wrapper = cache.Get <string, MasteryStaticWrapper>(MasteryCacheKey + masteryId); if (wrapper != null && wrapper.Language == language && wrapper.MasteryData == masteryData) { return(wrapper.MasteryStatic); } else { var listWrapper = cache.Get <string, MasteryListStaticWrapper>(MasteriesCacheKey); if (listWrapper != null && listWrapper.Language == language && listWrapper.MasteryData == masteryData) { if (listWrapper.MasteryListStatic.Masteries.ContainsKey(masteryId)) { return(listWrapper.MasteryListStatic.Masteries[masteryId]); } else { return(null); } } else { var args = "{\"data\" : \"" + masteryData.ToString() + "\", \"region\" : \"" + region.ToString() + ", \"id\" : \"" + masteryId + "\"}"; var ir = new Amazon.Lambda.Model.InvokeRequest { FunctionName = "arn:aws:lambda:us-east-1:907841483528:function:staticGetMastery", PayloadStream = AWSSDKUtils.GenerateMemoryStreamFromString(args) }; var json = ""; var test = Task.Run(async() => { var resp = await App.lambdaClient.InvokeAsync(ir); var sr = new StreamReader(resp.Payload); json = sr.ReadToEnd(); }); test.Wait(); var mastery = JsonConvert.DeserializeObject <MasteryStatic>(json); cache.Add(MasteryCacheKey + masteryId, new MasteryStaticWrapper(mastery, language, masteryData), DefaultSlidingExpiry); return(mastery); } } }
public override void ViewDidLoad() { base.ViewDidLoad(); lblConsultant.Text = User; var g = new UITapGestureRecognizer(() => View.EndEditing(true)); g.CancelsTouchesInView = false; //for iOS5 View.AddGestureRecognizer(g); postButton.Hidden = true; btnStart.TouchUpInside += (sender, e) => { StartTime = DateTime.Now; btnStart.Hidden = true; postButton.Hidden = false; }; postButton.TouchUpInside += (sender, e) => { CognitoAWSCredentials credentials = new CognitoAWSCredentials( "ap-southeast-2:b3abd62e-3efc-4d68-998e-7e528afc3368", // Cognito Identity Pool ID RegionEndpoint.APSoutheast2 // Region ); Amazon.Lambda.Model.InvokeRequest request = new Amazon.Lambda.Model.InvokeRequest(); request.FunctionName = "TestTT"; request.Payload = "{\"id\":\"" + Guid.NewGuid() + "\",\"operation\":\"create\",\"tableName\":\"TimeTrackDB\",\"username\":\"" + User + "\",\"client\":\"" + txtClient.Text + "\",\"charge\":\"" + txtCharge.Text + "\",\"starttime\":\"" + StartTime.ToString("dd/mmm/yyyy hh:mm:ss") + "\",\"stoptime\":\"" + DateTime.Now.ToString("dd/mmm/yyyy hh:mm:ss") + "\"}"; Amazon.Lambda.AmazonLambdaClient client = new AmazonLambdaClient(credentials, RegionEndpoint.APSoutheast2); var result = client.InvokeAsync(request).Result; var alert = UIAlertController.Create("Info", "Time Saved", UIAlertControllerStyle.Alert); alert.AddAction(UIAlertAction.Create("Ok", UIAlertActionStyle.Default, null)); PresentViewController(alert, true, null); btnStart.Hidden = false; postButton.Hidden = true; txtClient.Text = string.Empty; txtCharge.Text = string.Empty; }; }
/// <summary> /// Get ranked stats for this summoner asynchronously. /// Includes statistics for Twisted Treeline and Summoner's Rift. /// </summary> /// <param name="season">Season for which you want the stats.</param> /// <returns>A list of champions stats.</returns> public async Task <List <ChampionStats> > GetStatsRankedAsync(StatsEndpoint.Season season) { var args = "{\"id\" : \"" + Id + "\"," + " \"region\" : \"" + Region.ToString() + ", \"season\" : \"" + season + "\"}"; var ir = new Amazon.Lambda.Model.InvokeRequest { FunctionName = "arn:aws:lambda:us-east-1:907841483528:function:getRankedStats", PayloadStream = AWSSDKUtils.GenerateMemoryStreamFromString(args) }; var json = ""; var resp = await App.lambdaClient.InvokeAsync(ir); var sr = new StreamReader(resp.Payload); json = sr.ReadToEnd(); return((await Task.Factory.StartNew(() => JsonConvert.DeserializeObject <RankedStats>(json))).ChampionStats); }
/// <summary> /// Retrieves leagues data for this summoner, including leagues for all of this summoner's /// teams asynchronously. /// </summary> /// <returns>List of leagues.</returns> public async Task <List <League> > GetEntireLeaguesAsync() { var args = "{\"id\" : \"" + Id + "\"," + " \"region\" : \"" + Region.ToString() + "\"}"; var ir = new Amazon.Lambda.Model.InvokeRequest { FunctionName = "arn:aws:lambda:us-east-1:907841483528:function:getEntireLeague", PayloadStream = AWSSDKUtils.GenerateMemoryStreamFromString(args) }; var json = ""; var resp = await App.lambdaClient.InvokeAsync(ir); var sr = new StreamReader(resp.Payload); json = sr.ReadToEnd(); return((await Task.Factory.StartNew(() => JsonConvert.DeserializeObject <Dictionary <long, List <League> > >(json)))[Id]); }
/// <summary> /// Get ranked stats for this summoner synchronously, for the current season. /// Includes statistics for Twisted Treeline and Summoner's Rift. /// </summary> /// <returns>A list of champions stats.</returns> public List <ChampionStats> GetStatsRanked() { var args = "{\"id\" : \"" + Id + "\"," + " \"region\" : \"" + Region.ToString() + "\"}"; var ir = new Amazon.Lambda.Model.InvokeRequest { FunctionName = "arn:aws:lambda:us-east-1:907841483528:function:getRankedStats", PayloadStream = AWSSDKUtils.GenerateMemoryStreamFromString(args) }; var json = ""; var test = Task.Run(async() => { var resp = await App.lambdaClient.InvokeAsync(ir); var sr = new StreamReader(resp.Payload); json = sr.ReadToEnd(); }); test.Wait(); return(JsonConvert.DeserializeObject <RankedStats>(json).ChampionStats); }
public async Task <bool> IsSchnitzel(String filePath, String fileName) { await UploadToS3(filePath, fileName); AmazonLambdaClient alc = new AmazonLambdaClient(accessKey, secretKey, RegionEndpoint.EUCentral1); Amazon.Lambda.Model.InvokeRequest ir = new Amazon.Lambda.Model.InvokeRequest(); ir.InvocationType = InvocationType.RequestResponse; ir.FunctionName = "SchnitzelOrNot"; ir.Payload = "\"" + fileName + "\""; var res = await alc.InvokeAsync(ir); var strResponse = Encoding.ASCII.GetString(res.Payload.ToArray()); if (bool.TryParse(strResponse, out bool retVal)) { return(retVal); } return(false); }
/// <summary> /// Get mastery pages for this summoner synchronously. /// </summary> /// <returns>A list of mastery pages.</returns> public List <MasteryPage> GetMasteryPages() { var args = "{\"id\" : \"" + Id + "\"," + " \"region\" : \"" + Region.ToString() + "\"}"; var ir = new Amazon.Lambda.Model.InvokeRequest { FunctionName = "arn:aws:lambda:us-east-1:907841483528:function:getMasteries", PayloadStream = AWSSDKUtils.GenerateMemoryStreamFromString(args) }; var json = ""; var test = Task.Run(async() => { var resp = await App.lambdaClient.InvokeAsync(ir); var sr = new StreamReader(resp.Payload); json = sr.ReadToEnd(); }); test.Wait(); return(JsonConvert.DeserializeObject <Dictionary <long, MasteryPages> >(json) .Values.FirstOrDefault().Pages); }
public async Task <bool> MachFaces(String filePath, String fileName, String personName) { await UploadToS3(filePath, fileName); AmazonLambdaClient alc = new AmazonLambdaClient(accessKey, secretKey, RegionEndpoint.USWest2); Amazon.Lambda.Model.InvokeRequest ir = new Amazon.Lambda.Model.InvokeRequest(); ir.InvocationType = InvocationType.RequestResponse; ir.FunctionName = "RekognitionFunction"; String value = personName + "#" + fileName; ir.Payload = "\"" + value + "\""; var res = await alc.InvokeAsync(ir); var strResponse = Encoding.ASCII.GetString(res.Payload.ToArray()); if (bool.TryParse(strResponse, out bool retVal)) { return(retVal); } return(false); }
public async void WriteRecord(string fname, string nick, int age, string gender) { //point the lambda call to the right location endpoint Amazon.RegionEndpoint region = Amazon.RegionEndpoint.USEast1; //credentials var awsCredentials = new Amazon.Runtime.BasicAWSCredentials(Auth.AWSKey, Auth.AWSSecret); try { //setup the lambda client with the credential and endpoint information Amazon.Lambda.AmazonLambdaClient client = new Amazon.Lambda.AmazonLambdaClient(awsCredentials, region); JObject myUser = new JObject(); myUser["id"] = id; myUser["email"] = email; myUser["name"] = fname; myUser["nickname"] = nick; myUser["age"] = age; myUser["gender"] = Gender; //payload has to be encapsulated in double quotes, thus the strange escape sequences here var invokeRequest = new Amazon.Lambda.Model.InvokeRequest { FunctionName = "WriteUserProfile", InvocationType = "RequestResponse", PayloadStream = AWSSDKUtils.GenerateMemoryStreamFromString(myUser.ToString()), }; //going to put this task on another thread so the UI doesn't lock up System.Threading.Tasks.Task <Amazon.Lambda.Model.InvokeResponse> responseTask = client.InvokeAsync(invokeRequest); await responseTask.ContinueWith((response) => { string statusText = ""; string informationalText = "Internal error: Unhandled branch point"; // Should always be set in the next "if" if (response.IsCanceled) { statusText = "Cancelled"; informationalText = ""; } else if (response.IsFaulted) { statusText = "Faulted"; informationalText = response.Exception.Message; foreach (var exception in response.Exception.InnerExceptions) { informationalText += "\n" + exception.Message; } } else if (response.IsCompleted) { statusText = "Finished"; var responseReader = new System.IO.StreamReader(response.Result.Payload); informationalText = responseReader.ReadToEnd(); //take the user over to the legal disclaimer step var activity = new Intent(this, typeof(LegalDisclaimerActivity)); StartActivity(activity); } // This continuation is not run on the main UI thread, so need to set up // another task perform the UI changes on the correct thread. RunOnUiThread(() => { Console.WriteLine(statusText); Console.WriteLine(informationalText); }); }); } catch (Exception ex) { Console.Write(ex.Message); } }
private async void GetRecords() { //get the stored email of this user string email = prefs.GetString("email", ""); //point the lambda call to the right location endpoint Amazon.RegionEndpoint region = Amazon.RegionEndpoint.USEast1; //credentials var awsCredentials = new Amazon.Runtime.BasicAWSCredentials(WebApp.AWSKey, WebApp.AWSSecret); TextView textHere = FindViewById <TextView>(Resource.Id.textView1); textHere.Text = ""; try { //setup the lambda client with the credential and endpoint information Amazon.Lambda.AmazonLambdaClient client = new Amazon.Lambda.AmazonLambdaClient(awsCredentials, region); //payload has to be encapsulated in double quotes, thus the strange escape sequences here var invokeRequest = new Amazon.Lambda.Model.InvokeRequest { FunctionName = "GetScanHistory", InvocationType = "RequestResponse", Payload = "\"" + email + "\"" }; //going to put this task on another thread so the UI doesn't lock up System.Threading.Tasks.Task <Amazon.Lambda.Model.InvokeResponse> responseTask = client.InvokeAsync(invokeRequest); await responseTask.ContinueWith((response) => { string statusText = ""; string informationalText = "Internal error: Unhandled branch point"; // Should always be set in the next "if" if (response.IsCanceled) { statusText = "Cancelled"; informationalText = ""; } else if (response.IsFaulted) { statusText = "Faulted"; informationalText = response.Exception.Message; foreach (var exception in response.Exception.InnerExceptions) { informationalText += "\n" + exception.Message; } } else if (response.IsCompleted) { statusText = "Finished"; var responseReader = new System.IO.StreamReader(response.Result.Payload); informationalText = responseReader.ReadToEnd(); } // This continuation is not run on the main UI thread, so need to set up // another task perform the UI changes on the correct thread. RunOnUiThread(() => { Console.WriteLine(statusText); Console.WriteLine(informationalText); //now that we have the response we can deserialize it from Json to our object type List <QRScan> scanList = JsonConvert.DeserializeObject <List <QRScan> >(informationalText); foreach (QRScan scan in scanList) { textHere.Text += scan; textHere.Text += "\n"; } }); }); } catch (Exception ex) { Console.Write(ex.Message); } }