public IHttpActionResult GetRangoHorario() { var agenda = agendaService.GetAgenda(); List <string> horarios = new List <string>(); DateTime horaInicio = agenda.HoraDesde; DateTime horaFin = agenda.HoraHasta; while (horaInicio <= horaFin) { horarios.Add(horaInicio.ToString("HH:mm")); horaInicio = horaInicio.AddMinutes(agenda.Frecuencia); } return(Ok(horarios)); }
public ActionResult <Agenda> GetAgenda_Single([FromBody] StringClass model) { Agenda agenda = new Agenda(); agenda = _AgendaService.GetAgenda(model.str); if (agenda == null) { return(BadRequest()); } return(Ok(agenda)); }
public JsonResult GetConsultoriosHorarios(string anio, string mes, string dia) { DateTime fecha = Convert.ToDateTime(anio + "/" + mes + "/" + dia); var model = Mapper.Map <List <ConsultorioHorariosModel> >(consultorioService.GetAll()); var agenda = agendaService.GetAgenda(); if (agendaService.AtiendeEl(fecha, agenda)) { var sesiones = agendaService.SearchSesions(fecha, fecha.AddDays(1)); List <string> horarios = new List <string>(); DateTime horaInicio = agenda.HoraDesde; DateTime horaFin = agenda.HoraHasta; if (agendaService.SearchFeriado(fecha, fecha).Count > 0 || agendaService.SearchRecesos(fecha, fecha).Count > 0) { horaInicio = agenda.HoraHasta; horaFin = agenda.HoraDesde; } while (horaInicio <= horaFin) { horarios.Add(horaInicio.ToString("HH:mm")); horaInicio = horaInicio.AddMinutes(agenda.Frecuencia); } //var bloqueos = agendaService.SearchBloqueos(fecha, fecha); //bloqueos.ToList().ForEach(bloqueo => //{ // while(bloqueo.HoraDesde.Value.TimeOfDay <= bloqueo.HoraHasta.Value.TimeOfDay) // { // sesiones.Add(new Sesion // { // FechaHora = bloqueo.HoraDesde.Value, // ConsultorioID = bloqueo.ConsultorioId, // TurnoSimultaneo = bloqueo.TurnoSimultaneo // }); // bloqueo.HoraDesde = bloqueo.HoraDesde.Value.AddMinutes(agenda.Frecuencia); // } //}); model.ForEach(consultorio => { for (int ts = 1; ts <= consultorio.TurnosSimultaneos; ts++) { var horariosTomados = sesiones .Where(x => x.ConsultorioID == consultorio.ID && (x.TurnoSimultaneo == ts || x.TurnoSimultaneo == 0)) .Select(y => y.FechaHora.ToString("HH:mm")) .ToList(); horarios .Where(x => !horariosTomados.Contains(x) && !consultorio.Horario.Contains(x)) .ToList() .ForEach(hr => { consultorio.Horario.Add(hr); }); } consultorio.Horario = consultorio.Horario.OrderBy(x => x).ToList(); }); } return(Json(model, JsonRequestBehavior.AllowGet)); }