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

            medicoViewModel.CPF      = medicoViewModel.CPF.ApenasNumeros();
            medicoViewModel.Telefone = medicoViewModel.Telefone.ApenasNumeros();
            var medico = _mapper.Map <Medico>(medicoViewModel);

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

            if ((await _medicoRepository.ObtenhaMedicoPorCRM(medico.CRM) != null))
            {
                ModelState.AddModelError(string.Empty, "CRM já cadastrado!");
            }

            if (ModelState.ErrorCount > 0)
            {
                return(View(medicoViewModel));
            }

            var usuarioIdentity = await _usuarioService.CadastrarMedico(medicoViewModel.Email, medicoViewModel.Email, medicoViewModel.Senha);

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

            medico.UsuarioId = Guid.Parse(usuarioIdentity.Id);
            await _medicoRepository.Adicionar(medico);

            return(RedirectToAction("Index"));
        }
Exemple #2
0
 public IEnumerable <Medico> Buscar(Expression <Func <Medico, bool> > predicado)
 {
     return(_medicoRepository.Buscar(predicado));
 }