예제 #1
0
        public PartialViewResult Delete(string id)
        {
            ViewBag.Title = Resources.MapaController_HttpGet_Action_Delete_ViewBag_Title;//"Excluir mapa";

            var request = new EncontrarMapaPorRequest()
            {
                Mapa = new MapaDto()
                {
                    Id = id
                }
            };
            var response = _mapaServices.EncontrarMapaPor(request);

            if (response.Success)
            {
                ViewBag.MessageType = "alert-danger";
                ViewBag.Message     = Resources.MapaController_HttpGet_Action_Delete_ViewBag_Message;//"Deseja realmente excluir este mapa ? ";

                var model = new ExcluirMapaViewModel()
                {
                    Id = id, NomeMapa = response.Mapa.NomeMapa
                };

                return(PartialView("ExcluirMapaPartialView", model));
            }
            else
            {
                ViewBag.MessageType = "alert-danger";
                ViewBag.Message     = response.Message;

                return(PartialView("SucessoPartialView"));
            }
        }
        public void Test2_Finding_Map_Will_Pass()
        {
            var mapa = _mother.CreateRomeniaMapa();

            var request = new EncontrarMapaPorRequest()
            {
                Mapa = new MapaDto()
                {
                    NomeMapa = "Romenia"
                }
            };

            //Arrange
            var mapaRepository = MockRepository.GenerateMock <IMapaRepository>();

            mapaRepository.Stub(x => x.FindByName("Romenia")).Return(mapa);

            //Act
            _mapaServices = new MapaServices(mapaRepository);
            var result = _mapaServices.EncontrarMapaPor(request);

            //Assert
            Assert.IsTrue(result.Success);
            mapaRepository.VerifyAllExpectations();
        }
예제 #3
0
        public PartialViewResult CalcularCusto(string id)
        {
            ViewBag.Title = Resources.MapaController_HttpGet_Action_CalcularCusto_ViewBag_Title; //"Calcular custo para o trajeto:"

            var request = new EncontrarMapaPorRequest()
            {
                Mapa = new MapaDto()
                {
                    Id = id
                }
            };
            var response = _mapaServices.EncontrarMapaPor(request);

            if (response.Success)
            {
                ViewBag.MessageType = "alert-warning";
                ViewBag.Message     = Resources.MapaController_HttpGet_Action_CalcularCusto_ViewBag_Message;//"Utilize esta ferramenta para calcular o menor trajeto e seu custo.";

                var origens  = response.Mapa.Rotas.ConvertToListRotaOrigemViewMode();
                var destinos = response.Mapa.Rotas.ConvertToListRotaDestinoViewMode();

                IFormatProvider culture = Thread.CurrentThread.CurrentCulture;

                var model = new CalculoCustoViewModel()
                {
                    Id               = id,
                    NomeMapa         = response.Mapa.NomeMapa,
                    Origens          = origens,
                    Destinos         = destinos,
                    AutonomiaVeiculo = (0m).ToString("n", culture),
                    ValorCombustivel = (0m).ToString("n", culture),
                };

                return(PartialView("CalcularCustoPartialView", model));
            }
            else
            {
                ViewBag.MessageType = "alert-danger";
                ViewBag.Message     = response.Message;

                return(PartialView("SucessoPartialView"));
            }
        }
예제 #4
0
        public EncontrarMapaPorResponse EncontrarMapaPor(EncontrarMapaPorRequest request)
        {
            Mapa   mapa = null;
            Guid   id;
            string nomeMapa;

            var response = new EncontrarMapaPorResponse();

            try
            {
                //Opcoes de Busca
                if (!string.IsNullOrEmpty(request.Mapa.Id))
                {
                    id   = Guid.Parse(request.Mapa.Id);
                    mapa = _mapaRepository.FindBy(id);
                }
                else if (!string.IsNullOrEmpty(request.Mapa.NomeMapa))
                {
                    nomeMapa = request.Mapa.NomeMapa;
                    mapa     = _mapaRepository.FindByName(nomeMapa);
                }

                if (mapa != null)
                {
                    response.Success = true;
                    response.Message = Resources.MapaServices_EncontrarMapaPor_Success_Message;
                    response.Mapa    = mapa.ConvertoToMapaDto();
                }
                else
                {
                    response.Success = false;
                    response.Message = Resources.MapaServices_EncontrarMapaPor_Fail_Message;
                }
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = Resources.MapaServices_EncontrarMapaPor_Error_Message + ex.Message;
            }
            return(response);
        }
예제 #5
0
        public PartialViewResult CalcularCusto(CalculoCustoViewModel model, FormCollection forms)
        {
            ViewBag.Title = Resources.MapaController_HttpPost_Action_CalcularCusto_ViewBag_Title;//"Calculadora de Rota e Custo:";

            model.Origem  = forms["Origens"];
            model.Destino = forms["Destinos"];

            //Fix to compromise the calculation if one of the states was not set
            //Selecione
            if (model.Origem.Equals(Resources.SelectList_Null_Item))
            {
                model.Origem = string.Empty;
            }

            //Selecione
            if (model.Destino.Equals(Resources.SelectList_Null_Item))
            {
                model.Destino = string.Empty;
            }

            var request = new CalcularMelhorRotaRequest()
            {
                Problema = new ProblemaDto()
                {
                    Id               = model.Id,
                    NomeMapa         = model.NomeMapa,
                    Origem           = model.Origem,
                    Destino          = model.Destino,
                    AutonomiaVeiculo = model.AutonomiaVeiculo,
                    ValorCombustivel = model.ValorCombustivel,
                }
            };
            var response = _mapaServices.CalcularRota(request);

            if (response.Success)
            {
                ViewBag.MessageType = "alert-success";
                ViewBag.Message     = response.Message;

                var caminho = new StringBuilder();
                foreach (var state in response.MelhorCaminho)
                {
                    caminho.Append(state);
                    caminho.Append(" > ");
                }

                var resultado = new ResultadoCustoViewModel()
                {
                    Id         = model.Id,
                    NomeMapa   = model.NomeMapa,
                    Caminho    = caminho.ToString(),
                    CustoTotal = response.CustoTotal
                };
                return(PartialView("ResultadoCustoPartialView", resultado));
            }
            else
            {
                ViewBag.Title = Resources.MapaController_HttpPost_Action_CalcularCusto_ViewBag_Title;//"Calculadora de Rota e Custo:";


                response.Rules.ForEach(x => ModelState.AddModelError(x.Key, x.Value));
                var requestMapa = new EncontrarMapaPorRequest()
                {
                    Mapa = new MapaDto()
                    {
                        Id = model.Id, NomeMapa = model.NomeMapa
                    }
                };
                var responseMapa = _mapaServices.EncontrarMapaPor(requestMapa);
                if (responseMapa.Success)
                {
                    ViewBag.MessageType = "alert-warning";
                    ViewBag.Message     = response.Message;

                    var origens  = responseMapa.Mapa.Rotas.ConvertToListRotaOrigemViewMode();
                    var destinos = responseMapa.Mapa.Rotas.ConvertToListRotaDestinoViewMode();
                    model.Destinos = destinos;
                    model.Origens  = origens;
                    return(PartialView("CalcularCustoPartialView", model));
                }
                else
                {
                    ViewBag.MessageType = "alert-danger";
                    ViewBag.Message     = response.Message;

                    return(PartialView("SucessoPartialView"));
                }
            }
        }