public async Task <ActionResult> Index(ZipCodeViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    model.GeographicData = await _geographicLookupService.Lookup(model.ZipCode);
                }
                catch (Exception e)
                {
                    _logger.LogError(e, $"Error looking up postal code {model.ZipCode}: {e.Message}");
                }

                if (model.GeographicData == null)
                {
                    ModelState.AddModelError("", "Couldn't geolocate the postal code entered. Please check again.");
                }
                else
                {
                    LastZipCode = JsonConvert.SerializeObject(model.GeographicData);
                }
            }

            model.PreviousZipCodeEntries = _zipCodeService.GetAll();

            return(View(model));
        }
Exemple #2
0
        public async Task LoadCommand_CallsZipCodesRepository_LoadZipCode()
        {
            // arrange
            var navigationsServiceMock = new Mock <IMvxNavigationService>(MockBehavior.Loose);

            var alertServiceMock = MockHelpers.CreateAlertService();

            var zipCodesRepositoryMock = new Mock <IZipCodesRepository>(MockBehavior.Loose);

            var citiesRepositoryMock = new Mock <ICitiesRepository>(MockBehavior.Loose);

            var viewModel = new ZipCodeViewModel(
                navigationsServiceMock.Object,
                alertServiceMock.Object,
                zipCodesRepositoryMock.Object,
                citiesRepositoryMock.Object
                );

            // act
            await viewModel.Initialize(new ZipCodeViewModel.Parameter(3));

            await viewModel.LoadCommand.ExecuteAsync();

            // assert
            zipCodesRepositoryMock.Verify(mock => mock.GetById(
                                              It.Is <int>(item => item == 3)
                                              ), Times.Once());
        }
        public IActionResult Index()
        {
            var model = new ZipCodeViewModel
            {
                PreviousZipCodeEntries = _zipCodeService.GetAll()
            };

            return(View(model));
        }
Exemple #4
0
        public async Task SelectCommand_NavigatesToCorrectViewModelWithCorrectData()
        {
            // arrange
            var zipCode = new ZipCodeModel
            {
                Id        = 3,
                CityId    = 2,
                Zip       = 123,
                Latitude  = 10,
                Longitude = 20
            };

            var city = new CityModel
            {
                Id   = 2,
                Name = "test"
            };

            var navigationsServiceMock = new Mock <IMvxNavigationService>(MockBehavior.Loose);

            var alertServiceMock = MockHelpers.CreateAlertService();

            var zipCodesRepositoryMock = new Mock <IZipCodesRepository>(MockBehavior.Loose);

            zipCodesRepositoryMock.Setup(mock => mock.GetById(It.IsAny <int>()))
            .Returns(zipCode);
            zipCodesRepositoryMock.Setup(mock => mock.GetNearby(It.IsAny <int>(), It.IsAny <int>()))
            .Returns(new[] { zipCode });

            var citiesRepositoryMock = new Mock <ICitiesRepository>(MockBehavior.Loose);

            citiesRepositoryMock.Setup(mock => mock.GetById(It.IsAny <int>()))
            .Returns(city);

            var viewModel = new ZipCodeViewModel(
                navigationsServiceMock.Object,
                alertServiceMock.Object,
                zipCodesRepositoryMock.Object,
                citiesRepositoryMock.Object
                );

            // act
            await viewModel.LoadCommand.ExecuteAsync();

            await viewModel.SelectCommand.ExecuteAsync(viewModel.Nearby.First());

            // assert
            navigationsServiceMock.Verify(mock => mock.Navigate <ZipCodeViewModel, ZipCodeViewModel.Parameter>(
                                              It.Is <ZipCodeViewModel.Parameter>(item => item.ZipCodeId == 3),
                                              It.IsAny <IMvxBundle>()
                                              ), Times.Once());
        }
Exemple #5
0
        public async Task LoadCommand_CallsZipCodesRepository_LoadNearbyData()
        {
            // arrange
            var zipCode = new ZipCodeModel
            {
                Id        = 3,
                CityId    = 2,
                Zip       = 123,
                Latitude  = 10,
                Longitude = 20
            };

            var city = new CityModel
            {
                Id   = 2,
                Name = "test"
            };

            var navigationsServiceMock = new Mock <IMvxNavigationService>(MockBehavior.Loose);

            var alertServiceMock = MockHelpers.CreateAlertService();

            var zipCodesRepositoryMock = new Mock <IZipCodesRepository>(MockBehavior.Loose);

            zipCodesRepositoryMock.Setup(mock => mock.GetById(It.IsAny <int>()))
            .Returns(zipCode);
            zipCodesRepositoryMock.Setup(mock => mock.GetNearby(It.IsAny <int>(), It.IsAny <int>()))
            .Returns(new[] { zipCode });

            var citiesRepositoryMock = new Mock <ICitiesRepository>(MockBehavior.Loose);

            citiesRepositoryMock.Setup(mock => mock.GetById(It.IsAny <int>()))
            .Returns(city);

            var viewModel = new ZipCodeViewModel(
                navigationsServiceMock.Object,
                alertServiceMock.Object,
                zipCodesRepositoryMock.Object,
                citiesRepositoryMock.Object
                );

            // act
            await viewModel.Initialize(new ZipCodeViewModel.Parameter(3));

            await viewModel.LoadCommand.ExecuteAsync();

            // assert
            zipCodesRepositoryMock.Verify(mock => mock.GetNearby(
                                              It.Is <int>(item => item == 3),
                                              It.Is <int>(item => item == Configuration.NearbyZipCodesCount)
                                              ), Times.Once());
        }
Exemple #6
0
        /// <summary>
        /// Trae las poblaciones o colinias por medio del codigo postal
        /// </summary>
        /// <param name="pCodigoPostal"></param>
        /// <returns></returns>
        public JsonResult PoblacionesOColoniasCodigoPostal(ZipCodeViewModel pCodigoPostal)
        {
            ErrorProcedimientoAlmacenado errorError = new ErrorProcedimientoAlmacenado();
            clsCodigoPostal cCodPostal = new clsCodigoPostal();

            cCodPostal.Clave = pCodigoPostal.zipCode;
            CatalogoCodigoPostalRdn catPobColonias = new CatalogoCodigoPostalRdn();
            List <pa_PeticionesWeb_Catalogos_Obtener_PoblacionesOColoniasByCodigoPostal_Result> respuesta        = new List <pa_PeticionesWeb_Catalogos_Obtener_PoblacionesOColoniasByCodigoPostal_Result>();
            pa_PeticionesWeb_Catalogos_Obtener_PoblacionesOColoniasByCodigoPostal_Result        OpcionSelecciona = new pa_PeticionesWeb_Catalogos_Obtener_PoblacionesOColoniasByCodigoPostal_Result();

            respuesta = catPobColonias.solicitarPobColCP(cCodPostal, errorError);
            return(Json(respuesta.OrderBy(P => P.Nombre), JsonRequestBehavior.AllowGet));
        }
Exemple #7
0
        /// <summary>
        /// Trael el Estado por medio del CP
        /// </summary>
        /// <returns></returns>
        public JsonResult GetEstadoCP(ZipCodeViewModel pCodigoPostal)
        {
            ErrorProcedimientoAlmacenado errorErrror = new ErrorProcedimientoAlmacenado();
            clsCodigoPostal cCodPostal = new clsCodigoPostal();

            //cCodPostal.Clave = pCodigoPostal.zipCode;
            cCodPostal.Clave = pCodigoPostal.zipCode;
            CatalogoCodigoPostalRdn catEstado = new CatalogoCodigoPostalRdn();
            List <pa_PeticionesWeb_Catalogos_Obtener_EstadoByCodigoPostal_Result> respuesta = new List <pa_PeticionesWeb_Catalogos_Obtener_EstadoByCodigoPostal_Result>();

            respuesta = catEstado.solicitarEstadoCP(cCodPostal, errorErrror);
            return(Json(respuesta.OrderBy(E => E.IdEstado), JsonRequestBehavior.AllowGet));
        }
Exemple #8
0
        public async Task LoadCommand_CallsCityRepository_SetCityData()
        {
            // arrange
            var zipCode = new ZipCodeModel
            {
                Id        = 3,
                CityId    = 2,
                Zip       = 123,
                Latitude  = 10,
                Longitude = 20
            };

            var city = new CityModel
            {
                Id   = 2,
                Name = "test"
            };

            var navigationsServiceMock = new Mock <IMvxNavigationService>(MockBehavior.Loose);

            var alertServiceMock = MockHelpers.CreateAlertService();

            var zipCodesRepositoryMock = new Mock <IZipCodesRepository>(MockBehavior.Loose);

            zipCodesRepositoryMock.Setup(mock => mock.GetById(It.IsAny <int>()))
            .Returns(zipCode);

            var citiesRepositoryMock = new Mock <ICitiesRepository>(MockBehavior.Loose);

            citiesRepositoryMock.Setup(mock => mock.GetById(It.IsAny <int>()))
            .Returns(city);

            var viewModel = new ZipCodeViewModel(
                navigationsServiceMock.Object,
                alertServiceMock.Object,
                zipCodesRepositoryMock.Object,
                citiesRepositoryMock.Object
                );

            // act
            await viewModel.Initialize(new ZipCodeViewModel.Parameter(3));

            await viewModel.LoadCommand.ExecuteAsync();

            // assert
            Assert.AreEqual(city.Name, viewModel.City);
        }