public async Task <IActionResult> Editar(int id, Vendedor vendedor)
        {
            if (!ModelState.IsValid)
            {
                if (!ModelState.IsValid)
                {
                    var departamentos = await _departamentoService.BuscarTodosAsync();

                    var viewModel = new VendedoresFormViewModel {
                        Vendedor = vendedor, Departamentos = departamentos
                    };
                    return(View(viewModel));
                }
            }
            if (id != vendedor.Id)
            {
                return(RedirectToAction(nameof(Error), new { mensagem = "Id do vendedor imcompativél." }));
            }

            try
            {
                await _vendedorService.AlteracaoAsync(vendedor);

                return(RedirectToAction(nameof(Index)));
            }
            catch (SistemaNotFoundException e)
            {
                return(RedirectToAction(nameof(Error), new { mensagem = e.Message }));
            }
            catch (SistemaDbConcurrencyException e)
            {
                return(RedirectToAction(nameof(Error), new { mensagem = e.Message }));
            }
        }
        public async Task <IActionResult> Criar()
        {
            var departamentos = await _departamentoService.BuscarTodosAsync();

            var viewModel = new VendedoresFormViewModel {
                Departamentos = departamentos
            };

            return(View(viewModel));
        }
        [ValidateAntiForgeryToken] //Evitar ataques utilizando a autenticacao da Pagina.
        public async Task <IActionResult> Criar(Vendedor vendedor)
        {
            if (!ModelState.IsValid)
            {
                var departamentos = await _departamentoService.BuscarTodosAsync();

                var viewModel = new VendedoresFormViewModel {
                    Vendedor = vendedor, Departamentos = departamentos
                };
                return(View(viewModel));
            }
            await _vendedorService.InserirAsync(vendedor);

            return(RedirectToAction(nameof(Index)));
        }
        public async Task <IActionResult> Editar(int?id) //interrogacao para indicar que o paramentro é opcional
        {
            if (id == null)
            {
                return(RedirectToAction(nameof(Error), new { mensagem = "Código Vendedor não foi fornecido!" }));
            }

            var obj = await _vendedorService.EncontarIdAsync(id.Value);

            if (obj == null)
            {
                return(RedirectToAction(nameof(Error), new { mensagem = "Vendor não encontrado!" }));
            }

            List <Departamento> listaDepartamentos = await _departamentoService.BuscarTodosAsync();

            VendedoresFormViewModel viewModelVendedor = new VendedoresFormViewModel {
                Vendedor = obj, Departamentos = listaDepartamentos
            };

            return(View(viewModelVendedor));
        }