private async Task <SimResult> getResult(string contactNumber) { SimResult msg = new SimResult(); var queryList = new List <string>(); queryList.Add("query {{ sims(msisdn:\"{0}\", first:20) {{edges {{node{{contactNumber:msisdn description active network {{name}}airtimeBalance dataBalanceInMb smsBalance }}}}}}}}"); var cl = new GraphQLHttpClient(_configOptions.Value.GraphUrl, new NewtonsoftJsonSerializer()); cl.HttpClient.DefaultRequestHeaders.Add("simcontrol-api-key", _configOptions.Value.ApiKey); var content = new GraphQLRequest(string.Format(queryList[0], contactNumber)); var res = await cl.SendQueryAsync <Data>(content); if (res.Data.Sims.Edges.Any()) { var data = res.Data.Sims.Edges.First().Node; _logger.LogInformation("\r\n\r\n\r\n"); _logger.LogInformation("\t\tDescription : " + data.Description); _logger.LogInformation("\t\tNumber : " + data.ContactNumber); _logger.LogInformation("\t\tActive: " + data.Active); _logger.LogInformation("\t\tAirtime Balance : " + data.AirtimeBalance); _logger.LogInformation("\t\tData Balance: " + data.DataBalanceInMb); msg.Active = data.Active; msg.AirtimeBalance = data.AirtimeBalance; msg.DataBalance = data.DataBalanceInMb; msg.ContactNumber = data.ContactNumber; msg.Description = data.Description; } cl.Dispose(); return(msg); }
internal static string CalculateBin(SimResult simResult) { if (simResult == null) { return("CATCHALL-SimMissing"); } var bin = GetBins().Where(b => (simResult.Efficiency * 100) >= b.MinEfficiency && (simResult.Efficiency * 100) < b.MaxEfficiency).FirstOrDefault(); return(bin != null ? bin.BinClass : "CATCHALL-NoBin"); }
public async Task SetSimData(SimResult simResult, CancellationToken cancellationToken) { ActorEventSource.Current.ActorMessage(this, "SetSimData called"); await this.StateManager.AddOrUpdateStateAsync(SIMDATASTATENAME, simResult, (key, value) => simResult, cancellationToken); }