public RouterSignal getRouterStrength(NetDevicesDatum device) { RouterSignal NewRS = new RouterSignal(); List <systemvar> vars = truckService.getAppVars(); var client = new RestClient(); client.BaseUrl = new Uri("https://www.cradlepointecm.com/"); var request = new RestRequest(); request.Resource = "api/v2/net_device_signal_samples/"; request.AddParameter("net_device", device.id); // easily add HTTP Headers request.AddHeader("Content-Type", "application/json"); request.AddHeader("X-CP-API-ID", vars.Where(v => v.varName == "X-CP-API-ID").Select(x => x.varVal).FirstOrDefault()); request.AddHeader("X-CP-API-KEY", vars.Where(v => v.varName == "X-CP-API-KEY").Select(x => x.varVal).FirstOrDefault()); request.AddHeader("X-ECM-API-ID", vars.Where(v => v.varName == "X-ECM-API-ID").Select(x => x.varVal).FirstOrDefault()); request.AddHeader("X-ECM-API-KEY", vars.Where(v => v.varName == "X-ECM-API-KEY").Select(x => x.varVal).FirstOrDefault()); IRestResponse response = client.Execute(request); DSSRootobject samples = JsonConvert.DeserializeObject <DSSRootobject>(response.Content); DSSDatum sample = samples.data.Where(s => s.net_device.Contains(device.id)).OrderByDescending(d => d.created_at).FirstOrDefault(); if (sample != null) { NewRS.connection_state = device.connection_state; NewRS.name = device.name; NewRS.signal_percent = sample.signal_percent; NewRS.dbm = sample.dbm; NewRS.sinr = sample.sinr; NewRS.created_at = sample.created_at; } else { NewRS.connection_state = device.connection_state; NewRS.name = device.name; NewRS.signal_percent = 0; NewRS.dbm = 0; NewRS.sinr = 0; NewRS.created_at = Convert.ToDateTime("01/01/1959 00:00:00"); } return(NewRS); }
public ActionResult getECMSignalStrength(string routerID) { //initialize RouterSignal List <RouterSignal> RSList = new List <RouterSignal>(); //get vars for api keys List <systemvar> vars = truckService.getAppVars(); var client = new RestClient(); client.BaseUrl = new Uri("https://www.cradlepointecm.com/"); var request = new RestRequest(); request.Resource = "api/v2/net_devices"; request.AddParameter("router", routerID); // easily add HTTP Headers request.AddHeader("Content-Type", "application/json"); request.AddHeader("X-CP-API-ID", vars.Where(v => v.varName == "X-CP-API-ID").Select(x => x.varVal).FirstOrDefault()); request.AddHeader("X-CP-API-KEY", vars.Where(v => v.varName == "X-CP-API-KEY").Select(x => x.varVal).FirstOrDefault()); request.AddHeader("X-ECM-API-ID", vars.Where(v => v.varName == "X-ECM-API-ID").Select(x => x.varVal).FirstOrDefault()); request.AddHeader("X-ECM-API-KEY", vars.Where(v => v.varName == "X-ECM-API-KEY").Select(x => x.varVal).FirstOrDefault()); IRestResponse response = client.Execute(request); NetDevicesRootobject devices = JsonConvert.DeserializeObject <NetDevicesRootobject>(response.Content); foreach (NetDevicesDatum device in devices.data) { if (device.mode == "wan" && device.service_type == "LTE") { RouterSignal rs = getRouterStrength(device); RSList.Add(rs); } } return(Json(RSList, JsonRequestBehavior.AllowGet)); }