public async Task <List <Drone.Model.DroneOutputModel> > GetDroneCoordinatesFromApi(string droneInputModel) { //string uri = settingsService.GetWebApiPath(); //string uri = Common.ServicesManager.GetClientUri(DroneService); string[] stringSeparators = new string[] { "\r\n" }; var commands = droneInputModel.TrimEnd().Split(stringSeparators, StringSplitOptions.None); List <DroneInputModel> inputModels = new List <DroneInputModel>(); var gridDimensions = commands[0].Split(' '); // First line sets the Battlefield dimensoins DroneControlModel droneControlModel = new DroneControlModel(); droneControlModel.GridTopX = int.Parse(gridDimensions[0]); droneControlModel.GridTopY = int.Parse(gridDimensions[1]); for (int i = 1; i < commands.Length; i += 2) { DroneInputModel model = new DroneInputModel(); var postion = commands[i].Split(' '); model.Position.PositionX = int.Parse(postion[0]); model.Position.PositionY = int.Parse(postion[1]); model.Position.Heading = postion[2]; model.Instructions = commands[i + 1]; droneControlModel.DroneInputs.Add(model); } string inputJson = JsonConvert.SerializeObject(droneControlModel); //var droneControlModel = JsonConvert.DeserializeObject<Drone.Model.DroneOutputModel>(droneControlJsonModel); string uri = "http://localhost/Drone.NavigationApi/api/DroneNavigation"; List <DroneOutputModel> FinalDroneCoordinates = new List <DroneOutputModel>(); try { using (HttpClient httpClient = new HttpClient()) { // FinalDroneCoordinates = JsonConvert.DeserializeObject<List<Drone.Model.DroneOutputModel>>( // await httpClient.GetStringAsync(uri) //); //var results = await httpClient.GetStringAsync(uri); //httpClient.GetAsync() StringContent content = new StringContent(JsonConvert.SerializeObject(droneControlModel), Encoding.UTF8, "application/json"); var response = await httpClient.PostAsync(uri, content); FinalDroneCoordinates = await response.Content.ReadAsAsync <List <Drone.Model.DroneOutputModel> >(); //FinalDroneCoordinates = JsonConvert.DeserializeObject<List<Drone.Model.DroneOutputModel>>( // await httpClient.PostAsJsonAsync(uri, droneControlModel).Result; //); return(FinalDroneCoordinates); } } catch (Exception ex) { //Log Exception Console.WriteLine(ex.Message); throw new Exception("Error occured while accessing the service API"); } return(FinalDroneCoordinates); }
/// <summary> /// Access the service endpoints and retrieves the list of pets based on the type passed as the parameter. /// </summary> /// <param name="petType">Pet Type Enum Refer Common.PetTypes.Type</param> /// <returns>List of pets grouped based on the owners gender</returns> public async Task <List <Drone.Model.DroneOutputModel> > GetDroneCoordinates(DroneControlModel droneControlModel) { //string uri = Common.ServicesManager.GetClientUri(DroneService); string uri = "http://localhost/Drone.NavigationApi/api/DroneNavigation"; List <DroneOutputModel> FinalDroneCoordinates = new List <DroneOutputModel>(); try { using (HttpClient httpClient = new HttpClient()) { // FinalDroneCoordinates = JsonConvert.DeserializeObject<List<Drone.Model.DroneOutputModel>>( // await httpClient.GetStringAsync(uri) //); //var results = await httpClient.GetStringAsync(uri); //httpClient.GetAsync() var response = await httpClient.PostAsJsonAsync(uri, droneControlModel); FinalDroneCoordinates = await response.Content.ReadAsAsync <List <Drone.Model.DroneOutputModel> >(); //FinalDroneCoordinates = JsonConvert.DeserializeObject<List<Drone.Model.DroneOutputModel>>( // await httpClient.PostAsJsonAsync(uri, droneControlModel).Result; //); return(FinalDroneCoordinates); } } catch (Exception ex) { //Log Exception Console.WriteLine(ex.Message); throw new Exception("Error occured while accessing the service API"); } return(FinalDroneCoordinates); }
/// <summary> /// /// </summary> /// <param name="droneControlModel"></param> /// <returns></returns> public List <DroneOutputModel> ExecuteDroneNavigation(DroneControlModel droneControlModel) { GridTopX = droneControlModel.GridTopX; GridTopY = droneControlModel.GridTopY; List <DroneOutputModel> FinalDroneCoordinates = new List <DroneOutputModel>(); foreach (DroneInputModel input in droneControlModel.DroneInputs) { FinalDroneCoordinates.Add(ExecuteCommand(input)); } return(FinalDroneCoordinates); }
public List <Drone.Model.DroneOutputModel> GetDroneCoordinates([FromBody] DroneControlModel droneControlModel) { return(ExecuteDroneNavigation(droneControlModel)); }