예제 #1
0
        public async Task Update(EstablecimientoDto establecimiento, long id)
        {
            var _establecimiento = _mapper.Map <Galeno.Dominio.Entidades.Establecimiento>(establecimiento);

            _establecimiento.Id = id;
            await _repositorio.Update(_establecimiento);
        }
        public async Task <IActionResult> Edit(EstablecimientoViewModel vm)
        {
            try
            {
                ViewBag.EstablecimientoDuplicado = false;
                if (!ModelState.IsValid)
                {
                    throw new Exception("Error de validacion no controlado.");
                }

                // comprobar si cambio la direccion
                var direccionId = await _helperDireccion.ExisteDireccion(vm.Direccion);

                if (!direccionId.HasValue)
                {
                    direccionId = await _helperDireccion.NuevaDireccion(vm.Direccion);
                }
                else
                {
                    var existe = await _establecimientoServicio.Existe(vm.Nombre, vm.Direccion.Descripcion,
                                                                       vm.Direccion.LocalidadId, vm.Id);

                    if (existe)
                    {
                        ViewBag.EstablecimientoDuplicado = true;
                        throw new Exception("Establecimiento duplicado");
                    }
                }

                vm.DireccionId = direccionId.Value;

                var dto = new EstablecimientoDto()
                {
                    Id          = vm.Id,
                    Nombre      = vm.Nombre,
                    DireccionId = vm.DireccionId
                };

                await _establecimientoServicio.Modificar(dto);

                return(RedirectToAction(nameof(Index)));
            }
            catch (Exception)
            {
                return(View(vm));
            }
        }
        public async Task <IActionResult> Create(EstablecimientoViewModel vm)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    throw new Exception("Error de validacion no controlado.");
                }

                ViewBag.EstablecimientoDuplicado = false;
                // Existe establecimiento
                var existeEstablecimiento = await _establecimientoServicio.Existe(vm.Nombre, vm.Direccion.Descripcion, vm.Direccion.LocalidadId);

                if (existeEstablecimiento)
                {
                    ViewBag.EstablecimientoDuplicado = true;
                    throw new Exception("Establecimiento duplicado.");
                }
                // Existe direccion -> si no existe la creo y obtengo el id
                var direccionId = await _helperDireccion.ExisteDireccion(vm.Direccion);

                if (!direccionId.HasValue)
                {
                    // creo la direccion y devuelvo el id
                    direccionId = await _helperDireccion.NuevaDireccion(vm.Direccion);
                }
                vm.DireccionId = direccionId.Value;

                // creo el establecimiento
                var dto = new EstablecimientoDto()
                {
                    Nombre      = vm.Nombre,
                    DireccionId = vm.DireccionId
                };

                await _establecimientoServicio.Insertar(dto);

                return(RedirectToAction(nameof(Index)));
            }
            catch (Exception)
            {
                return(View(vm));
            }
        }
예제 #4
0
 public async Task Create(EstablecimientoDto establecimiento)
 {
     var _establecimiento = _mapper.Map <Galeno.Dominio.Entidades.Establecimiento>(establecimiento);
     await _repositorio.Add(_establecimiento);
 }