예제 #1
0
 public IActionResult Cadastrar(Medico medico)
 {
     _repository.Adicionar(medico);
     _repository.Salvar();
     TempData["msg"] = "Cadastrado!";
     return(RedirectToAction("Cadastrar"));
 }
예제 #2
0
        public async Task <IActionResult> Post([FromBody] ToEntityMedicoViewModel medicoViewModel)
        {
            if (!ModelState.IsValid)
            {
                _logger.Error($"Erro: {_httpContextAccessor.HttpContext.Connection.RemoteIpAddress} - Parâmetros inválidos.");
                return(StatusCode(400, "Parâmetros da chamada inválidos"));
            }

            try
            {
                _logger.Information("Inciando o processo de cadastro do médico.");

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

                if (!_medicoValidator.Validate(medico).IsValid)
                {
                    _logger.Error($"Erro: {_httpContextAccessor.HttpContext.Connection.RemoteIpAddress} - Entidade inválida.");
                    return(StatusCode(400, _medicoValidator.Validate(medico).Errors.ToList()));
                }

                _medicoRepository.Adicionar(medico);

                return(Ok(new { message = "Médico cadastrado com sucesso.", data = medico.Id }));
            }
            catch (Exception ex)
            {
                _logger.Error($"Erro: {_httpContextAccessor.HttpContext.Connection.RemoteIpAddress} - Algo deu errado ao cadastrar o médico: {ex.Message}");
                return(StatusCode(500, "Internal server error"));
            }
        }
        public IActionResult Post([FromBody] Medico medico)
        {
            try
            {
                medico.Validate();
                if (!medico.EhValido)
                {
                    return(BadRequest(medico.ObterMensagensValidacao()));
                }

                var medicoCadastrado = _medicoRepository.ObterTodos(medico.Crm);

                if (medicoCadastrado != null)
                {
                    return(BadRequest("Médico já cadastrado no sistema."));
                }

                if (medico.IdMedico > 0)
                {
                    _medicoRepository.Atualizar(medico);
                }
                else
                {
                    _medicoRepository.Adicionar(medico);
                }

                return(Created("api/medico", medico));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.ToString()));
            }
        }
예제 #4
0
        public async Task Adicionar(Medico medico)
        {
            if (!ExecutarValidacao(new MedicoValidation(), medico))
            {
                return;
            }

            await _medicoRepository.Adicionar(medico);
        }
예제 #5
0
        public async Task <Guid> Cadastrar(Medico medico)
        {
            if (!ValidarCadastro(medico))
            {
                return(Guid.Empty);
            }

            await _medicoRepository.Adicionar(medico);

            await _medicoRepository.SaveChanges();

            return(medico.Id);
        }
예제 #6
0
        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"));
        }
예제 #7
0
 public Medico Adicionar(Medico entidade)
 {
     return(_medicoRepository.Adicionar(entidade));
 }