Beispiel #1
0
        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());
        }
Beispiel #2
0
        // 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));
            }
        }