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")); }
public IEnumerable <Medico> Buscar(Expression <Func <Medico, bool> > predicado) { return(_medicoRepository.Buscar(predicado)); }