Exemplo n.º 1
0
        // GET: Operadors/Edit/5
        public async Task <IActionResult> Edit(int?id) //esse id opcional colocado aqui é somente para não dar erro, pois na verdade o id é obrigatorio
        {
            if (id == null)
            {
                /*
                 * return NotFound();
                 */
                return(RedirectToAction(nameof(Error), new { message = "Id not provided" }));
            }

            /*
             * var operador = await _context.Operador.FindAsync(id);
             */

            var operador = await _operadorService.FindByIdAsync(id.Value); // o id.Value é porque lá encima o argumento está como opcional

            if (operador == null)
            {
                /*
                 * return NotFound();
                 */
                return(RedirectToAction(nameof(Error), new { message = "Id not found" }));
            }

            List <Departamento> departamentos = await _departamentoService.FindAllAsync();

            OperadorFormViewModel viewModel = new OperadorFormViewModel {
                Operador = operador, Departamentos = departamentos
            };

            /*
             * return View(operador);
             */
            return(View(viewModel));
        }
Exemplo n.º 2
0
        // GET: Operadores/Create
        public async Task <IActionResult> Create()
        {
            var departamentos = await _departamentoService.FindAllAsync(); //criei uma variavel que através do serviço DepartamentoService, busca no banco de dados todos os departamentos

            var viewModel = new OperadorFormViewModel {
                Departamentos = departamentos
            };                                                                           // agora vamos instanciar um objeto do nosso viewModel, no Departamentos vamos iniciar com a lista de departamentos que acabamos de gerar acima

            return(View(viewModel));
        }
Exemplo n.º 3
0
        // GET: Operadors/Create
        public async Task <IActionResult> Create()
        {
            /*
             * return View();
             */

            var departamentos = await _departamentoService.FindAllAsync();                //codigo para chamar uma lista de departamentos do DepartamentoService, e guardar essa lista na variavel departamentos

            var viewModel = new OperadorFormViewModel {
                Departamentos = departamentos
            };                                                                            //codigo para instanciar um novo OperadorFormViewModel já começando com a lista de departamentos acima, e chamando esse formulario de viewModel

            return(View(viewModel));                                                      //codigo que manda esse novo formulario já com a lista de departamentos criada para a View
        }
Exemplo n.º 4
0
        public async Task <IActionResult> Create([Bind("Id,Nome,Email,BirthDate,BaseSalary,DepartamentoId")] Operador operador)
        {
            if (ModelState.IsValid)                       //teste criado para checar se as validações do Model estão atendidas, elas podem vir erradas se as validações não foram feitas a nivel de JavaScript
            {
                await _operadorService.InsertAsync(operador);

                return(RedirectToAction(nameof(Index)));
            }
            //return View(operador);  //foi criado assim pelo framework, porem agora será pelo operadorFormViewModel  //se as validações não foram atendidas não é criado na tabela e devolve com o objeto incompleto sem criar na tabela
            //essa situação pode ocorrer se as validações não foram feita a nivel de JavaScript
            //criei a lista de departamentos e atraves da ViewModel OperadorFormViewModel, consigo apresentar na tela de edição o combo de departamentos para a edição do operador
            var departamentos = await _departamentoService.FindAllAsync();

            var viewModel = new OperadorFormViewModel {
                Operador = operador, Departamentos = departamentos
            };

            return(View(viewModel));                      // agora não mais retornando o operador somente, mas o operador e a lista de departamentos, com os erros de validação
        }
Exemplo n.º 5
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Nome,Email,BirthDate,BaseSalary,DepartamentoId")] Operador operador)
        {
            if (id != operador.Id)
            {
                //return BadRequest();
                return(RedirectToAction(nameof(Error), new { message = "Id mismatch" }));
            }

            if (ModelState.IsValid)
            {
                try
                {
                    await _operadorService.UpdateAsync(operador);
                }
                catch (ApplicationException e)
                {
                    if (!await _operadorService.OperadorExistsAsync(operador.Id))
                    {
                        //return NotFound();
                        return(RedirectToAction(nameof(Error), new { message = "Id not found" }));
                    }
                    else
                    {
                        //throw new DbConcurrencyException(e.Message);
                        return(RedirectToAction(nameof(Error), new { message = e.Message }));
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            //criei a lista de departamentos e atraves da ViewModel OperadorFormViewModel, consigo apresentar na tela de edição o combo de departamentos para a edição do operador
            var departamentos = await _departamentoService.FindAllAsync();

            var viewModel = new OperadorFormViewModel {
                Operador = operador, Departamentos = departamentos
            };

            return(View(viewModel));                                                  // agora não mais retornando o operador somente, mas o operador e a lista de departamentos
        }
Exemplo n.º 6
0
        // GET: Operadores/Edit/5
        public async Task <IActionResult> Edit(int?id) //esse opcional "?" foi colocado somente para evitar erro de execução, na verdade o id é obrigatorio
        {
            if (id == null)
            {
                //return NotFound();
                return(RedirectToAction(nameof(Error), new { message = "Id not provided" }));
            }

            var operador = await _operadorService.FindByIdAsync(id.Value); //essa variavel operador, vai ser usada no OperadorFormViewModel abaixo:

            if (operador == null)
            {
                //return NotFound();
                return(RedirectToAction(nameof(Error), new { message = "Id not found" }));
            }
            //criei a lista de departamentos e atraves da ViewModel OperadorFormViewModel, consigo apresentar na tela de edição o combo de departamentos para a edição do operador
            List <Departamento> departamentos = await _departamentoService.FindAllAsync();

            OperadorFormViewModel viewModel = new OperadorFormViewModel {
                Operador = operador, Departamentos = departamentos
            };

            return(View(viewModel)); // agora não mais retornando o operador somente, mas o operador e a lista de departamentos
        }