public ActionResult Create(TipoProductoEditViewModel tipoVm)
        {
            if (!ModelState.IsValid)
            {
                return(View(tipoVm));
            }

            TipoProductoEditDto tipoDto = _mapper.Map <TipoProductoEditDto>(tipoVm);

            if (_servicio.Existe(tipoDto))
            {
                ModelState.AddModelError(string.Empty, "Registro existente...");
                return(View(tipoVm));
            }

            try
            {
                _servicio.Guardar(tipoDto);
                TempData["Msg"] = "Registro agregado";
                return(RedirectToAction("Index"));
            }
            catch (Exception e)
            {
                ModelState.AddModelError(string.Empty, e.Message);
                return(View(tipoVm));
            }
        }
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            TipoProductoEditDto tipoDto = _servicio.GetTipoPorId(id);

            if (tipoDto == null)
            {
                return(HttpNotFound("Código de tipo de producto no encontrado..."));
            }
            TipoProductoEditViewModel tipoVm = _mapper.Map <TipoProductoEditViewModel>(tipoDto);

            return(View(tipoVm));
        }
        public ActionResult Delete(TipoProductoEditViewModel tipoVm)
        {
            TipoProductoEditDto tipoDto = _mapper.Map <TipoProductoEditDto>(tipoVm);

            if (_servicio.EstaRelacionado(tipoDto))
            {
                ModelState.AddModelError(String.Empty, "Registro relacionado con otras tablas... Baja denegada");
                return(View(tipoVm));
            }

            try
            {
                tipoVm = _mapper.Map <TipoProductoEditViewModel>(_servicio.GetTipoPorId(tipoVm.TipoProductoId));

                _servicio.Borrar(tipoVm.TipoProductoId);
                TempData["Msg"] = "Registro borrado...";
                return(RedirectToAction("Index"));
            }
            catch (Exception e)
            {
                ModelState.AddModelError(String.Empty, e.Message);
                return(View(tipoVm));
            }
        }