Exemple #1
0
        public async Task <IActionResult> SalvarMedico(MedicoDto medicoDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (!_repo.ValidaCpf(medicoDto.Cpf))
            {
                return(BadRequest("CPF inválido"));
            }
            //preparando meus registro da tabela de medico pra ser salva no banco
            var medico = new Medico {
                Nome = medicoDto.Nome,
                Crm  = medicoDto.Crm,
                Cpf  = medicoDto.Cpf
            };

            for (int i = 0; i < medicoDto.Especialidades.Count; i++)
            {
                //preparando meus registro da tabela de especialidades pra ser salva no banco
                var especialista = new Especialidade {
                    Descricao = medicoDto.Especialidades[i],
                    Medico    = medico
                };
                _repo.Add(especialista);
            }

            _repo.Add(medico);

            if (await _repo.SalvarTodos())
            {
                return(Ok(200));
            }

            return(BadRequest("Médico não cadastrado"));
        }
        public IActionResult Create([FromBody] Models.Medico medico)
        {
            var insert = _medicoRepository.Add(new Repositories.Model.Medico
            {
                Nome = medico.Nome,
                Cpf  = medico.Cpf,
                Crm  = medico.Crm
            });

            var especialidades = _especialidadeRepository.GetAll().ToList();

            var especialidadesMedico = new List <EspecialidadeMedico>();

            var especialidadesNaoCadastradas = new List <string>();

            var especialidadesCadastradas = especialidades.Where(x => medico.Especialidades.Any(y => y.ToLower() == x.Nome.ToLower())).ToList();

            if (especialidadesCadastradas.Any())
            {
                especialidadesNaoCadastradas = medico.Especialidades.Where(x => especialidadesCadastradas.Any(y => y.Nome.ToLower() != x.ToLower())).ToList();
            }
            else
            {
                especialidadesNaoCadastradas = medico.Especialidades.ToList();
            }

            foreach (var item in especialidadesNaoCadastradas)
            {
                var itemEspecialidade = new Especialidade {
                    Nome = item
                };
                var idEspecialidade = _especialidadeRepository.Add(itemEspecialidade);
                especialidadesCadastradas.Add(new Especialidade {
                    Id = new Guid(idEspecialidade), Nome = item
                });
            }

            foreach (var item in especialidadesCadastradas)
            {
                especialidadesMedico.Add(new EspecialidadeMedico {
                    EspecialidadeId = item.Id, MedicoId = new Guid(insert)
                });
            }

            _especialidadeMedicoRepository.AddRange(especialidadesMedico);

            return(Ok(insert));
        }
Exemple #3
0
 public void AddMedico(Medico m)
 {
     _medicoRepository.Add(m);
 }