public Agenda traerAgendaDelProfesional(Usuario usuario) { string procedimiento = "BEMVINDO.sp_agenda_del_profesional"; SqlParameter pIdProfesional = new SqlParameter("@id_profesional", usuario.id); List <SqlParameter> parametros = new List <SqlParameter> { pIdProfesional }; List <Dictionary <string, object> > listaDB = db.ejecutarStoredProcedure(procedimiento, parametros); if (listaDB.Count == 0) { return(new Agenda(0, usuario.id, db.getDate(), db.getDate(), new List <DiaAgenda>(), TipoAgenda.Nuevo)); } //creo los dias agenda List <DiaAgenda> listaDiasAgenda = new List <DiaAgenda>(); DiaAgenda diaAgenda; foreach (Dictionary <string, object> dic in listaDB) { if (listaDiasAgenda.Exists(x => x.idDiaAgenda == Convert.ToInt64(dic["id_dia_agenda"]))) { diaAgenda = listaDiasAgenda.Find(x => x.idDiaAgenda == Convert.ToInt64(dic["id_dia_agenda"])); diaAgenda.especialidades.Add((string)dic["descripcion"], Convert.ToInt64(dic["id_especialidad"])); } else { Dictionary <string, long> nuevaEsp = new Dictionary <string, long>(); nuevaEsp.Add((string)dic["descripcion"], Convert.ToInt64(dic["id_especialidad"])); diaAgenda = new DiaAgenda(Convert.ToInt64(dic["id_dia_agenda"]), (string)dic["dia"], nuevaEsp, (TimeSpan)dic["horario_inicial"], (TimeSpan)dic["horario_final"]); listaDiasAgenda.Add(diaAgenda); } } TipoAgenda tipo = ((DateTime)listaDB[0]["fecha_final"] < db.getDate())? TipoAgenda.Vencido : TipoAgenda.Actual; return(new Agenda(Convert.ToInt64(listaDB[0]["id_agenda"]), usuario.id, (DateTime)listaDB[0]["fecha_inicial"], (DateTime)listaDB[0]["fecha_final"], listaDiasAgenda, tipo)); }
private IList <DiaAgenda> ObtenerCronograma() { IList <DiaAgenda> retorno = new List <DiaAgenda>(this.listCronograma.Items.Count); foreach (DiaSemana diaSemana in this.listCronograma.Items.Cast <DiaSemana>()) { DiaAgenda diaAgenda = new DiaAgenda(); diaAgenda.NroDiaSemana = diaSemana.Id; diaAgenda.NombreDiaSemana = diaSemana.Nombre; diaAgenda.HoraDesde = diaSemana.HoraDesde.Hour; diaAgenda.MinutoDesde = diaSemana.HoraDesde.Minute; diaAgenda.HoraHasta = diaSemana.HoraHasta.Hour; diaAgenda.MinutoHasta = diaSemana.HoraHasta.Minute; retorno.Add(diaAgenda); } return(retorno); }
public void Post([FromBody] DiaAgenda value) { try { #region Validaçãoes if (value.Data == null) { throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotAcceptable) { Content = new StringContent("Data inválida."), ReasonPhrase = "Dia inválido" }); } if (value.Data <= DateTime.Now.Date) { throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotAcceptable) { Content = new StringContent("Data inválida."), ReasonPhrase = "Data inválida" }); } if (!Validacoes.ValidaTimeSpan24Hrs(value.HorarioAtendimentoInicio)) { throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotAcceptable) { Content = new StringContent("Horário de atendimento de início inválido."), ReasonPhrase = "Horário inválido" }); } if (!Validacoes.ValidaTimeSpan24Hrs(value.HorarioAtendimentoTermino)) { throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotAcceptable) { Content = new StringContent("Horário de atendimento de término inválido."), ReasonPhrase = "Horário inválido" }); } if (value.HorarioAtendimentoInicio > value.HorarioAtendimentoTermino) { throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotAcceptable) { Content = new StringContent("Intervalo de atendimento inválido."), ReasonPhrase = "Intervalo inválido" }); } if (value.HorarioAtendimentoInicio > value.HorarioAtendimentoTermino) { throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotAcceptable) { Content = new StringContent("Intervalo de atendimento inválido."), ReasonPhrase = "Intervalo inválido" }); } if (!ValidaIntervalo(0, value.IdOdontologista, value.IdClinica, value.Data, value.HorarioAtendimentoInicio, value.HorarioAtendimentoTermino)) { throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotAcceptable) { Content = new StringContent("Intervalo inválido, já existe na agenda essa data."), ReasonPhrase = "Intervalo inválido" }); } #endregion using (var repositorio = new DiaAgendaRepositorio(new Connection(new System.Data.SqlClient.SqlConnection()))) { repositorio.Criar(value); } } catch (Exception ex) { throw ex; } }