public async Task <IActionResult> Create(SecretariaViewModel secretariaViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(secretariaViewModel));
            }

            secretariaViewModel.CPF      = secretariaViewModel.CPF.ApenasNumeros();
            secretariaViewModel.Telefone = secretariaViewModel.Telefone.ApenasNumeros();
            var secretaria = _mapper.Map <Secretaria>(secretariaViewModel);

            if ((await _secretariaRepository.Buscar(m => Equals(m.CPF, secretariaViewModel.CPF))).Any())
            {
                ModelState.AddModelError(string.Empty, "CPF já cadastrado!");
                return(View(secretariaViewModel));
            }

            var usuarioIdentity = await _usuarioService.CadastrarSecretaria(secretariaViewModel.Email, secretariaViewModel.Email, secretariaViewModel.Senha);

            if (usuarioIdentity == null)
            {
                ModelState.AddModelError(string.Empty, "Email já em utilização!");
                return(View(secretariaViewModel));
            }

            secretaria.UsuarioId = Guid.Parse(usuarioIdentity.Id);
            await _secretariaRepository.Adicionar(secretaria);

            return(RedirectToAction("Index"));
        }
        public async Task <IActionResult> Edit(Guid id, SecretariaViewModel secretariaViewModel)
        {
            if (id != secretariaViewModel.Id)
            {
                return(NotFound());
            }

            if (!ModelState.IsValid)
            {
                return(View(secretariaViewModel));
            }

            secretariaViewModel.CPF      = secretariaViewModel.CPF.ApenasNumeros();
            secretariaViewModel.Telefone = secretariaViewModel.Telefone.ApenasNumeros();

            if (!await _usuarioService.AtualizeEmail(secretariaViewModel.UsuarioId, secretariaViewModel.Email))
            {
                ModelState.AddModelError(string.Empty, "Não foi possível atualizar o email.");
                return(View(secretariaViewModel));
            }

            if (!await _usuarioService.AtualizeSenha(secretariaViewModel.UsuarioId, secretariaViewModel.SenhaAntiga, secretariaViewModel.Senha))
            {
                ModelState.AddModelError(string.Empty, "Não foi possível atualizar a senha.");
                return(View(secretariaViewModel));
            }

            var secretaria = _mapper.Map <Secretaria>(secretariaViewModel);
            await _secretariaRepository.Atualizar(secretaria);

            return(RedirectToAction("Index"));
        }