public async Task <IHttpActionResult> Algav1(Algav1DTO request) { client = ALGAVWebApiHttpClient.GetClient(); var response = await client.PostAsJsonAsync("api/Algav1/", request); if (response.IsSuccessStatusCode) { var result = await response.Content.ReadAsStringAsync(); var objResponse1 = JsonConvert.DeserializeObject <object>(result); return(Ok(objResponse1)); } return(BadRequest()); }
// primeiro predicado - findpath recebe public async Task <IHttpActionResult> Algav1(Algav1DTO request) { try { string parameters1 = ConfigurationManager.AppSettings["PARAMETERS1"]; string loader1 = ConfigurationManager.AppSettings["LOADER1"]; string results1 = ConfigurationManager.AppSettings["RESULTS1"]; // Carrega base de conhecimento await loadsKnowledgeBase(); // Escreve parametros 1 File.WriteAllText(@results1, String.Empty); File.WriteAllText(@parameters1, String.Empty); File.AppendAllText(@parameters1, request.poiOrigem + "." + Environment.NewLine); string str = null; foreach (int poisId in request.poiList) { str = str + poisId + ","; } str = str.Remove(str.Length - 1); string horaInicio = Convert.ToString(request.horaInicialVisita.Hour * 60 + request.horaInicialVisita.Minute); File.AppendAllText(@parameters1, "[" + str + "]." + Environment.NewLine); File.AppendAllText(@parameters1, request.inclinacaoMax + "." + Environment.NewLine); File.AppendAllText(@parameters1, horaInicio + "." + Environment.NewLine); File.AppendAllText(@parameters1, request.tipoVeiculo + "." + Environment.NewLine); File.AppendAllText(@parameters1, request.kilometrosMax + "."); Process process = new Process(); ProcessStartInfo startInfo = new ProcessStartInfo(); //startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; Esconde janela cmd startInfo.FileName = "cmd.exe"; startInfo.Arguments = loader1; process.StartInfo = startInfo; process.Start(); process.WaitForExit(); // Read result string[] lines = File.ReadAllLines(@results1); List <int> poisCaminho = new List <int>(); if (lines.Length > 0) { string line = lines[0]; poisCaminho = processResultString(line, poisCaminho); } var response = new { percurso = poisCaminho, duracao = double.Parse(lines[3], CultureInfo.InvariantCulture), kilometros = lines[2] }; return(Ok(response)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }