Пример #1
0
 public void Delete(int idClinica, int id)
 {
     using (var repositorio = new OdontologistaRepositorio(new Connection(new System.Data.SqlClient.SqlConnection())))
     {
         repositorio.Deletar(new Odontologista()
         {
             Id = id, IdClinica = idClinica
         });
     }
 }
Пример #2
0
 public Odontologista Get(int idClinica, int id)
 {
     try
     {
         using (var repositorio = new OdontologistaRepositorio(new Connection(new System.Data.SqlClient.SqlConnection())))
         {
             return(repositorio.Buscar(idClinica).Where(x => x.Id == id).FirstOrDefault());
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Пример #3
0
 public IEnumerable <Odontologista> Get(int idClinica)
 {
     try
     {
         using (var repositorio = new OdontologistaRepositorio(new Connection(new System.Data.SqlClient.SqlConnection())))
         {
             return(repositorio.Buscar(idClinica));
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Пример #4
0
        public IEnumerable <OdontologistaAgendamento> Todos(DateTime data, int idClinica)
        {
            var conexao = new Connection(new System.Data.SqlClient.SqlConnection());

            try
            {
                using (var repositorioOdonto = new OdontologistaRepositorio(conexao))
                {
                    var listaOdonto = new List <OdontologistaAgendamento>();

                    repositorioOdonto.Buscar(idClinica).ToList().ForEach(
                        x => listaOdonto.Add(new OdontologistaAgendamento()
                    {
                        Odontologista = x
                    }));
                    using (var repositorioAgenda = new AgendaRepositorio(conexao))
                    {
                        using (var repositorioAgendamento = new AgendamentoRepositorio(conexao))
                        {
                            using (var repositorioSemana = new SemanaAgendaRepositorio(conexao))
                            {
                                using (var repositorioDia = new DiaAgendaRepositorio(conexao))
                                {
                                    using (var repositorioDayOff = new AgendaDayOffRepositorio(conexao))
                                    {
                                        foreach (var item in listaOdonto)
                                        {
                                            var agenda = repositorioAgenda.Buscar(new Agenda()
                                            {
                                                IdClinica = idClinica, IdOdontologista = item.Odontologista.Id
                                            }).FirstOrDefault();
                                            if (agenda != null)
                                            {
                                                var agendamentos = repositorioAgendamento.Buscar(new Agendamento()
                                                {
                                                    IdAgenda = agenda.Id
                                                }).Where(x => x.Data == data.Date);


                                                var semana = repositorioSemana.Buscar(new SemanaAgenda()
                                                {
                                                    IdClinica = idClinica, IdOdontologista = item.Odontologista.Id
                                                }).Where(x => x.DiaSemana == (int)data.DayOfWeek + 1);


                                                var dia = repositorioDia.Buscar(new DiaAgenda()
                                                {
                                                    IdClinica = idClinica, IdOdontologista = item.Odontologista.Id
                                                }).Where(x => x.Data == data.Date);


                                                var dayOff = repositorioDayOff.Buscar(new AgendaDayOff()
                                                {
                                                    IdClinica = idClinica, IdOdontologista = item.Odontologista.Id
                                                }).Where(x => x.Data == data.Date);

                                                var listaAgendamentos = new List <Agendamento>();

                                                if (dayOff.Count() >= 1)
                                                {
                                                    return(null);
                                                }

                                                if (dia.Count() >= 1)
                                                {
                                                    foreach (var d in dia.Where(x => x.Data.Date == data.Date))
                                                    {
                                                        TimeSpan horario = d.HorarioAtendimentoInicio;
                                                        do
                                                        {
                                                            if (agendamentos.Where(x => x.Data.Date == data.Date &&
                                                                                   x.Horario >= horario &&
                                                                                   x.Horario < horario.Add(new TimeSpan(0, 0, agenda.TempoAtendimento, 0, 0))
                                                                                   ).Count() > 0)
                                                            {
                                                                var agendamento = agendamentos.Where(x => x.Data.Date == data.Date &&
                                                                                                     x.Horario >= horario &&
                                                                                                     x.Horario < horario.Add(new TimeSpan(0, 0, agenda.TempoAtendimento, 0, 0))
                                                                                                     ).FirstOrDefault();

                                                                listaAgendamentos.Add(new Agendamento()
                                                                {
                                                                    Id         = agendamento.Id,
                                                                    Data       = agendamento.Data,
                                                                    Horario    = agendamento.Horario,
                                                                    IdAgenda   = agenda.Id,
                                                                    IdOdonto   = agenda.IdOdontologista,
                                                                    IdPaciente = agendamento.IdPaciente,
                                                                    Nome       = agendamento.Nome
                                                                });
                                                            }
                                                            else
                                                            {
                                                                listaAgendamentos.Add(new Agendamento()
                                                                {
                                                                    Id         = 0,
                                                                    Data       = data.Date,
                                                                    Horario    = horario,
                                                                    IdAgenda   = agenda.Id,
                                                                    IdOdonto   = agenda.IdOdontologista,
                                                                    IdPaciente = 0
                                                                });
                                                            }
                                                            horario = horario.Add(new TimeSpan(0, 0, agenda.TempoAtendimento, 0, 0));
                                                        } while (horario <= d.HorarioAtendimentoTermino);
                                                    }
                                                }

                                                if (semana.Count() >= 1)
                                                {
                                                    foreach (var s in semana.Where(x => x.DiaSemana == (int)data.DayOfWeek + 1))
                                                    {
                                                        TimeSpan horario = s.HorarioAtendimentoInicio;
                                                        do
                                                        {
                                                            if (agendamentos.Where(x => x.Data.Date == data.Date &&
                                                                                   x.Horario >= horario &&
                                                                                   x.Horario < horario.Add(new TimeSpan(0, 0, agenda.TempoAtendimento, 0, 0))
                                                                                   ).Count() > 0)
                                                            {
                                                                var agendamento = agendamentos.Where(x => x.Data.Date == data.Date &&
                                                                                                     x.Horario >= horario &&
                                                                                                     x.Horario < horario.Add(new TimeSpan(0, 0, agenda.TempoAtendimento, 0, 0))
                                                                                                     ).FirstOrDefault();

                                                                listaAgendamentos.Add(new Agendamento()
                                                                {
                                                                    Id         = agendamento.Id,
                                                                    Data       = agendamento.Data,
                                                                    Horario    = agendamento.Horario,
                                                                    IdAgenda   = agenda.Id,
                                                                    IdOdonto   = agenda.IdOdontologista,
                                                                    IdPaciente = agendamento.IdPaciente,
                                                                    Nome       = agendamento.Nome
                                                                });
                                                            }
                                                            else
                                                            {
                                                                listaAgendamentos.Add(new Agendamento()
                                                                {
                                                                    Id         = 0,
                                                                    Data       = data.Date,
                                                                    Horario    = horario,
                                                                    IdAgenda   = agenda.Id,
                                                                    IdOdonto   = agenda.IdOdontologista,
                                                                    IdPaciente = 0
                                                                });
                                                            }
                                                            horario = horario.Add(new TimeSpan(0, 0, agenda.TempoAtendimento, 0, 0));
                                                        } while (horario <= s.HorarioAtendimentoTermino);
                                                    }
                                                }
                                                item.Agendamentos = listaAgendamentos;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    return(listaOdonto);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                conexao.Dispose();
            }
        }
Пример #5
0
        public void Post([FromBody] Odontologista value)
        {
            var conexao = new Connection(new System.Data.SqlClient.SqlConnection());

            try
            {
                #region Validaçãoes
                if (!Validacoes.ValidaCpf(value.Cpf))
                {
                    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotAcceptable)
                    {
                        Content      = new StringContent("Cpf inválido."),
                        ReasonPhrase = "Campo inválido"
                    });
                }
                else
                {
                    value.Cpf = value.Cpf.Replace(".", "").Replace("-", "");
                }

                if (!Validacoes.ValidaCep(value.Cep))
                {
                    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotAcceptable)
                    {
                        Content      = new StringContent("Cep inválido."),
                        ReasonPhrase = "Campo inválido"
                    });
                }
                else
                {
                    value.Cep = value.Cep.Replace("-", "");
                }

                if (!Validacoes.ApenasNumeros(value.Cro))
                {
                    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotAcceptable)
                    {
                        Content      = new StringContent("Cro inválido."),
                        ReasonPhrase = "Campo inválido"
                    });
                }

                if (!Enum.IsDefined(typeof(AgendaEnums.Uf), value.CroEstado))
                {
                    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotAcceptable)
                    {
                        Content      = new StringContent("Cro UF inválido."),
                        ReasonPhrase = "Campo inválido"
                    });
                }

                if (string.IsNullOrWhiteSpace(value.Nome))
                {
                    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotAcceptable)
                    {
                        Content      = new StringContent("Nome inválido."),
                        ReasonPhrase = "Campo inválido"
                    });
                }

                if (value.IdClinica <= 0)
                {
                    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotAcceptable)
                    {
                        Content      = new StringContent("Clínica inválida."),
                        ReasonPhrase = "Campo inválido"
                    });
                }

                if (!Validacoes.ValidaDataNascimento(value.DataNascimento))
                {
                    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotAcceptable)
                    {
                        Content      = new StringContent("Data de nascimento inválida."),
                        ReasonPhrase = "Campo inválido"
                    });
                }
                #endregion

                using (var repositorio = new OdontologistaRepositorio(conexao))
                {
                    int id = repositorio.Criar(value);
                    if (id > 0)
                    {
                        using (var repositorioAgenda = new AgendaRepositorio(conexao))
                        {
                            repositorioAgenda.Criar(new Agenda(id, value.IdClinica, 30));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                conexao.Dispose();
            }
        }
Пример #6
0
        public void Put([FromBody] Odontologista value)
        {
            #region Validaçãoes
            if (value.Id <= 0)
            {
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotAcceptable)
                {
                    Content      = new StringContent("Objeto inválido."),
                    ReasonPhrase = "Campo inválido"
                });
            }

            if (!Validacoes.ValidaCpf(value.Cpf))
            {
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotAcceptable)
                {
                    Content      = new StringContent("Cpf inválido."),
                    ReasonPhrase = "Campo inválido"
                });
            }
            else
            {
                value.Cpf = value.Cpf.Replace(".", "").Replace("-", "");
            }

            if (!Validacoes.ValidaCep(value.Cep))
            {
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotAcceptable)
                {
                    Content      = new StringContent("Cep inválido."),
                    ReasonPhrase = "Campo inválido"
                });
            }
            else
            {
                value.Cep = value.Cep.Replace("-", "");
            }

            if (!Validacoes.ApenasNumeros(value.Cro))
            {
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotAcceptable)
                {
                    Content      = new StringContent("Cro inválido."),
                    ReasonPhrase = "Campo inválido"
                });
            }

            if (!Enum.IsDefined(typeof(AgendaEnums.Uf), value.CroEstado))
            {
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotAcceptable)
                {
                    Content      = new StringContent("Cro UF inválido."),
                    ReasonPhrase = "Campo inválido"
                });
            }

            if (string.IsNullOrWhiteSpace(value.Nome))
            {
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotAcceptable)
                {
                    Content      = new StringContent("Nome inválido."),
                    ReasonPhrase = "Campo inválido"
                });
            }

            if (value.IdClinica <= 0)
            {
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotAcceptable)
                {
                    Content      = new StringContent("Clínica inválida."),
                    ReasonPhrase = "Campo inválido"
                });
            }

            if (!Validacoes.ValidaDataNascimento(value.DataNascimento))
            {
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotAcceptable)
                {
                    Content      = new StringContent("Data de nascimento inválida."),
                    ReasonPhrase = "Campo inválido"
                });
            }
            #endregion
            using (var repositorio = new OdontologistaRepositorio(new Connection(new System.Data.SqlClient.SqlConnection())))
            {
                repositorio.Atualizar(value);
            }
        }