public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            PropiedadEditDto propiedadDto = _servicio.GetPropiedadPorId(id);

            if (propiedadDto == null)
            {
                return(HttpNotFound("Código de la Propiedad no encontrada"));
            }
            PropiedadEditViewModel propiedadVm = _mapper.Map <PropiedadEditViewModel>(propiedadDto);

            propiedadVm.Cliente = _mapper
                                  .Map <List <ClienteListViewModel> >(_servicioClientes.GetLista(null));

            propiedadVm.Provincia = _mapper
                                    .Map <List <ProvinciaListViewModel> >(_servicioProvincia.GetLista());

            propiedadVm.Localidad = _mapper
                                    .Map <List <LocalidadListViewModel> >(_servicioLocalidad.GetLista(null));

            propiedadVm.TipoPropiedad = _mapper
                                        .Map <List <TipoPropiedadListViewModel> >(_servicioTipoPropiedad.GetLista());

            propiedadVm.TipoOperacion = _mapper
                                        .Map <List <TipoOperacionListViewModel> >(_servicioTipoOperacion.GetLista());



            return(View(propiedadVm));
        }
        public ActionResult Create()
        {
            PropiedadEditViewModel propiedadVm = new PropiedadEditViewModel
            {
                Disponible = true,
                Jardin     = true,
                Garage     = true,
                Cliente    = _mapper
                             .Map <List <ClienteListViewModel> >(_servicioClientes.GetLista(null)),
                Provincia = _mapper
                            .Map <List <ProvinciaListViewModel> >(_servicioProvincia.GetLista()),
                Localidad = _mapper
                            .Map <List <LocalidadListViewModel> >(_servicioLocalidad.GetLista(null)),
                TipoPropiedad = _mapper
                                .Map <List <TipoPropiedadListViewModel> >(_servicioTipoPropiedad.GetLista()),
                TipoOperacion = _mapper
                                .Map <List <TipoOperacionListViewModel> >(_servicioTipoOperacion.GetLista()),
            };

            return(View(propiedadVm));
        }
        public ActionResult Create(PropiedadEditViewModel propiedadEditVm)
        {
            if (!ModelState.IsValid)
            {
                propiedadEditVm.Cliente = _mapper
                                          .Map <List <ClienteListViewModel> >(_servicioClientes.GetLista(null));

                propiedadEditVm.Provincia = _mapper
                                            .Map <List <ProvinciaListViewModel> >(_servicioProvincia.GetLista());

                propiedadEditVm.Localidad = _mapper
                                            .Map <List <LocalidadListViewModel> >(_servicioLocalidad.GetLista(null));

                propiedadEditVm.TipoPropiedad = _mapper
                                                .Map <List <TipoPropiedadListViewModel> >(_servicioTipoPropiedad.GetLista());

                propiedadEditVm.TipoOperacion = _mapper
                                                .Map <List <TipoOperacionListViewModel> >(_servicioTipoOperacion.GetLista());

                propiedadEditVm.Cliente = _mapper
                                          .Map <List <ClienteListViewModel> >(_servicioClientes.GetLista(null));


                return(View(propiedadEditVm));
            }

            PropiedadEditDto propiedadDto = _mapper.Map <PropiedadEditDto>(propiedadEditVm);

            if (_servicio.Existe(propiedadDto))
            {
                ModelState.AddModelError(string.Empty, "Propiedad existente...");

                propiedadEditVm.Cliente = _mapper
                                          .Map <List <ClienteListViewModel> >(_servicioClientes.GetLista(null));

                propiedadEditVm.Provincia = _mapper
                                            .Map <List <ProvinciaListViewModel> >(_servicioProvincia.GetLista());

                propiedadEditVm.Localidad = _mapper
                                            .Map <List <LocalidadListViewModel> >(_servicioLocalidad.GetLista(null));

                propiedadEditVm.TipoPropiedad = _mapper
                                                .Map <List <TipoPropiedadListViewModel> >(_servicioTipoPropiedad.GetLista());

                propiedadEditVm.TipoOperacion = _mapper
                                                .Map <List <TipoOperacionListViewModel> >(_servicioTipoOperacion.GetLista());



                return(View(propiedadEditVm));
            }

            try
            {
                _servicio.Guardar(propiedadDto);
                TempData["Msg"] = "Propiedad Agregada :) ";
                return(RedirectToAction("Index"));
            }
            catch (Exception e)
            {
                ModelState.AddModelError(string.Empty, e.Message);

                propiedadEditVm.Cliente = _mapper
                                          .Map <List <ClienteListViewModel> >(_servicioClientes.GetLista(null));

                propiedadEditVm.Provincia = _mapper
                                            .Map <List <ProvinciaListViewModel> >(_servicioProvincia.GetLista());

                propiedadEditVm.Localidad = _mapper
                                            .Map <List <LocalidadListViewModel> >(_servicioLocalidad.GetLista(null));

                propiedadEditVm.TipoPropiedad = _mapper
                                                .Map <List <TipoPropiedadListViewModel> >(_servicioTipoPropiedad.GetLista());

                propiedadEditVm.TipoOperacion = _mapper
                                                .Map <List <TipoOperacionListViewModel> >(_servicioTipoOperacion.GetLista());



                return(View(propiedadEditVm));
            }
        }