Esempio n. 1
0
        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));
        }