public AdicionarMedicoResponse Executar(AdicionarMedicoRequest request)
        {
            var response  = new AdicionarMedicoResponse();
            var validacao = new AdicionarMedicoRequestValidator();

            try
            {
                response = validacao.ValidarCamposAdicionarMedico(request);


                if (response.erros.Count > 0)
                {
                    response.msg.Add("Erro ao adicionar o medico");
                    return(response);
                }

                var medicoAdicionar = _adapter.converterRequestParaMedico(request);
                _repositorioMedicos.Add(medicoAdicionar);
                response.msg.Add("Adicionado com sucesso");
                response.id = medicoAdicionar.id;
                return(response);
            }
            catch (Exception)
            {
                response.msg.Add("Erro ao adicionar o medico");
                return(response);
            }
        }
예제 #2
0
        public AdicionarMedicoRequestBuilder()
        {
            _adicionarMedicoRequest = new AdicionarMedicoRequest();

            _adicionarMedicoRequest.nome          = _faker.Random.String(40);
            _adicionarMedicoRequest.especialidade = _faker.Random.String(40);
            _adicionarMedicoRequest.telefone      = _faker.Phone.PhoneNumber("####-####");
            _adicionarMedicoRequest.especialidade = _faker.Random.String(40);
            _adicionarMedicoRequest.crm           = _faker.Random.String(10);
        }
        public Medico converterRequestParaMedico(AdicionarMedicoRequest request)
        {
            var novoMedico = new Medico();

            novoMedico.nome          = request.nome;
            novoMedico.especialidade = request.especialidade;
            novoMedico.telefone      = request.telefone;
            novoMedico.crm           = request.crm;
            novoMedico.situacao      = request.situacao;

            return(novoMedico);
        }
예제 #4
0
        public IActionResult Post([FromBody] AdicionarMedicoRequest novoMedico)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(novoMedico));
            }

            var response = _adicionarMedicoUseCase.Executar(novoMedico);

            if (response.erros.Count > 0)
            {
                return(BadRequest(response));
            }

            return(Ok(response));
        }
        public AdicionarMedicoResponse ValidarCamposAdicionarMedico(AdicionarMedicoRequest request)
        {
            var           response = new AdicionarMedicoResponse();
            List <string> erros    = new List <string>();


            if (request.nome.Length < 20 && request.nome.Length > 3)
            {
                erros.Add("Nome deve conter de 3 a 20 caracteres");
            }



            Regex expressao = new Regex(@"(\([0-9]{2}\)|)[0-9]{4,5}-[0-9]{4}");

            //Match(request.telefone, expressao);
            //request.telefone.Length <= 10 ||
            if (!expressao.IsMatch(request.telefone.ToString()))
            {
                erros.Add("Telefone numero de digitos incorretos. Ex. 12345-1234 ");
            }

            if (request.crm.Length != 10)
            {
                erros.Add("CRM deve conter 10 digitos.");
            }

            if (request.especialidade.Length > 40 || request.especialidade.Length < 3)
            {
                erros.Add("Especialidade deve conter 3 a 40 digitos.");
            }

            foreach (var item in erros)
            {
                response.erros.Add(item);
            }


            return(response);
        }