Пример #1
0
        public async Task <IActionResult> Edit(FabricantesViewModel fabricanteViewModel)
        {
            var fabricante = new Fabricante
            {
                Nome     = fabricanteViewModel.Nome,
                CNPJ     = fabricanteViewModel.CNPJ,
                Endereco = fabricanteViewModel.Endereco,
                Id       = fabricanteViewModel.Id
            };

            var fabricanteValidator = new FabricanteValidator();

            if (!fabricanteValidator.IsCnpj(fabricanteViewModel.CNPJ))
            {
                ModelState.AddModelError("CNPJ", "O CNPJ é inválido.");
            }
            var(exists, errorExists) = await fabricanteRepository.ExistsAsync(fabricante);

            if (exists)
            {
                foreach (var error in errorExists)
                {
                    ModelState.AddModelError(error.Key, error.Value);
                }
            }
            if (ModelState.IsValid)
            {
                try
                {
                    await fabricanteRepository.UpdateFabricanteAsync(fabricante);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!await fabricanteRepository.FabricanteExists(fabricanteViewModel.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(fabricanteViewModel));
        }