Exemple #1
0
        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);
 }