public void SendRequest_Pender() { var controller = new HomeController(); var obj = new Models.ServiceInput() { latitude = "+48.8277", longitude = "-123.3646335" }; var result = controller.Index(obj) as ViewResult; Models.ServiceInput res = (Models.ServiceInput)result.Model; Assert.AreEqual("Pender/Galiano/Saturna/Mayne", res.result); }
public void SendRequest_Sooke() { var controller = new HomeController(); var obj = new Models.ServiceInput() { latitude = "+48.4251378", longitude = "-123.711" }; var result = controller.Index(obj) as ViewResult; Models.ServiceInput res = (Models.ServiceInput)result.Model; Assert.AreEqual("Sooke", res.result); }
public void SendRequest_Cowichan() { var controller = new HomeController(); var obj = new Models.ServiceInput() { latitude = "+48.8277", longitude = "-123.711" }; var result = controller.Index(obj) as ViewResult; Models.ServiceInput res = (Models.ServiceInput)result.Model; Assert.AreEqual("Central Cowichan", res.result); }
public void SendRequest_Downtown() { var controller = new HomeController(); var obj = new Models.ServiceInput() { latitude = "+48.4251378", longitude = "-123.3646335" }; var result = controller.Index(obj) as ViewResult; Models.ServiceInput res = (Models.ServiceInput)result.Model; Assert.AreEqual("Downtown Victoria/Vic West", res.result); }
public ActionResult Index(Models.ServiceInput model) { var res = ServiceResult.NONE; string message = ""; try { if (ModelState.IsValid) { //model.latitude = "+48.4251378"; //model.longitude = "-123.3646335"; if (!string.IsNullOrEmpty(model.latitude) && !string.IsNullOrEmpty(model.longitude)) { message = model.result = getServiceResponse(model); res = ServiceResult.OK; // Event Log: db.EventLogs.Add(new Models.EventLog() { vAction = "GET", vInput = model.cql_filter, vOutput = message, iResult = (int)res, dProcessTimestamp = DateTime.UtcNow, vClientInfo = "" }); db.SaveChanges(); } else { model.result = ""; } } } catch (Exception ex) { model.result = "[!] Error"; message = ex.Message; res = ServiceResult.ERR; // Event Log: db.EventLogs.Add(new Models.EventLog() { vAction = "GET", vInput = model.cql_filter, vOutput = message, iResult = (int)res, dProcessTimestamp = DateTime.UtcNow, vClientInfo = "" }); db.SaveChanges(); } return(View("Index", model)); }
private string getServiceResponse(Models.ServiceInput model) { try { string uriApi = ConfigurationManager.AppSettings["ServiceEndpoint"] + ConfigurationManager.AppSettings["ServiceResource"]; using (var client = new HttpClient()) { client.BaseAddress = new Uri(uriApi); client.DefaultRequestHeaders.Accept.Clear(); client.Timeout = new TimeSpan(0, 0, 0, 90); string uriString = uriApi + string.Format("?service={0}&version={1}&request={2}&typeName={3}&srsname={4}&cql_filter={5}&propertyName={6}&outputFormat={7}", model.service, model.version, model.request, model.typeName, model.srsname, model.cql_filter, model.propertyName, model.outpuFormat); var responseTask = client.GetAsync(uriString); responseTask.Wait(); var response = responseTask.Result; if (response.IsSuccessStatusCode) { var jsonData = (response.Content.ReadAsStringAsync()).Result; Models.ServiceOutput result = JsonConvert.DeserializeObject <Models.ServiceOutput>(jsonData); foreach (var item in result.features) { if (item.properties != null) { return(item.properties.CMNTY_HLTH_SERV_AREA_NAME); } } throw new Exception("[!] Invalid data structure!"); } else { throw new Exception("[!] Wrong Response!"); } } } catch (Exception ex) { throw new Exception(ex.Message); } }