示例#1
0
        public ActionResult ShortPath([FromServices] ICidadeService cidadeService, [FromServices] IFronteiraService fronteiraService, int inicio, int final)
        {
            var cidadeInicio = cidadeService.GetById(inicio).Result;

            if (cidadeInicio == null)
            {
                return(NotFound(new { success = false, msg = "Cidade inicial não informada" }));
            }

            var cidadeFim = cidadeService.GetById(final).Result;

            if (cidadeInicio == null)
            {
                return(NotFound(new { success = false, msg = "Cidade final não informada" }));
            }

            var vertices   = cidadeService.GetAll().Result.ToArray();
            var fronteiras = fronteiraService.GetAll().Result.ToArray();
            var edges      = new List <Tuple <Cidade, Cidade> >();

            foreach (var fronteira in fronteiras)
            {
                var cidade1 = cidadeService.GetById(fronteira.Cidade1);
                var cidade2 = cidadeService.GetById(fronteira.Cidade2);
                edges.Add(Tuple.Create(cidade1.Result, cidade2.Result));
            }

            // var grafo = new Graph<int>(vertices, edges.ToArray());
            var grapho       = new Graph <Cidade>(vertices, edges);
            var menorCaminho = BuscaMenorCaminho.ShortestPathFunction(grapho, cidadeInicio);

            // var menorCaminho = BuscaMenorCaminho.ShortestPathFunction(grafo, inicio);
            return(Json(new { result = _mapper.Map <IEnumerable <CidadeViewModel> >(menorCaminho(cidadeFim)) }));
            // return Json(new { result = menorCaminho(final) });
        }
示例#2
0
        public ActionResult Edit(int id)
        {
            CidadeViewModel cidadeViewModel = new CidadeViewModel();

            cidadeViewModel.Cidade = _cidadeService.GetById(id);

            return(View(cidadeViewModel));
        }
示例#3
0
 public IActionResult Create([Bind("Nome,CPF,PaisId,EstadoId,CidadeId,Id")] Paciente paciente)
 {
     if (ModelState.IsValid)
     {
         paciente.Pais       = _paisService.GetById(paciente.PaisId).Descricao;
         paciente.Estado     = _estadoService.GetById(paciente.EstadoId).Descricao;
         paciente.Cidade     = _cidadeService.GetById(paciente.CidadeId).Descricao;
         paciente.DateCreate = DateTime.Now;
         _pacienteService.Add(paciente);
         _pacienteService.SaveChanges();
         return(RedirectToAction(nameof(Index)));
     }
     return(View(paciente));
 }
示例#4
0
        public async Task <ActionResult> Post([FromBody] CidadeModel value, [FromServices] ICidadeService cidadeService)
        {
            if (value != null)
            {
                var cidadesFronteira = new List <Cidade>();

                if (value.Fronteiras != null && value.Fronteiras.Any())
                {
                    foreach (var cidade in value.Fronteiras)
                    {
                        var cidadeFronteira = await cidadeService.GetById(cidade);

                        if (cidadeFronteira == null)
                        {
                            return(NotFound("Cidade fronteira não encontrada"));
                        }

                        cidadesFronteira.Add(cidadeFronteira);
                    }
                }

                var novaCidade = await cidadeService.Add(new Cidade
                {
                    Habitantes = value.Habitantes,
                    Nome       = value.Nome,
                    Fronteiras = cidadesFronteira
                });
            }
            return(Ok());
        }
        // GET: Pais/Details/5
        public IActionResult Details(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var cidade = _cidadeService.GetById(id);

            if (cidade == null)
            {
                return(NotFound());
            }

            return(View(cidade));
        }
示例#6
0
 public CidadeViewModel GetById(Guid id)
 {
     return(Mapper.Map <Cidade, CidadeViewModel>(_cidadeService.GetById(id)));
 }
示例#7
0
 public CidadeDTO Get(Guid Id)
 {
     return(service.GetById(Id));
 }