public ActionResult ListHorarioDisponibles(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } HorarioDisponible horarioDisponible = db.HorariosDisponibles.Find(id); if (horarioDisponible == null) { return(HttpNotFound()); } return(PartialView("_ListHorarioDisponibles", horarioDisponible)); }
public ActionResult Create([Bind(Include = "Id,Duracion,HoraInicio,CantidadTurnos,Mes,Dia, Precio")] HorarioViewModel horarioModels) { if (ModelState.IsValid) { //db.Horarios.Add(horarioModels); //db.SaveChanges(); horarioModels.EspecialistaID = User.Identity.GetUserId(); horarioModels.Estado = EstadoHorario.Disponible; //Especialista usuario = db.Especialistas.Where(x => x.Id.Contains(horarioModels.EspecialistaID)).FirstOrDefault(); List <DateTime> lstSundays = new List <DateTime>(); int intYear = DateTime.Now.Year; int intDaysThisMonth = DateTime.DaysInMonth(intYear, (int)horarioModels.Mes /*intMonth*/); DateTime oBeginnngOfThisMonth = new DateTime(intYear, (int)horarioModels.Mes /*intMonth*/, 1); for (int i = 1; i < intDaysThisMonth + 1; i++) { if (oBeginnngOfThisMonth.AddDays(i - 1).DayOfWeek == (DayOfWeek)Convert.ToInt32(horarioModels.Dia)) { lstSundays.Add(new DateTime(intYear, (int)horarioModels.Mes /*intMonth*/, i)); } } foreach (DateTime dia in lstSundays) { int totalTurnos = horarioModels.CantidadTurnos; DateTime ultimaHora = DateTime.Now; while (totalTurnos != 0) { HorarioDisponible horarioDisponible = new HorarioDisponible(); horarioDisponible.Dia = dia; horarioDisponible.HorarioId = horarioModels.IDHorario; horarioDisponible.Precio = horarioModels.Precio; if (horarioModels.CantidadTurnos == totalTurnos) { horarioDisponible.HoraInicio = horarioModels.HoraInicio; horarioDisponible.HoraFin = horarioDisponible.HoraInicio.AddMinutes(horarioModels.Duracion); totalTurnos -= 1; ultimaHora = horarioDisponible.HoraFin; } else { horarioDisponible.HoraInicio = ultimaHora; horarioDisponible.HoraFin = horarioDisponible.HoraInicio.AddMinutes(horarioModels.Duracion); totalTurnos -= 1; ultimaHora = horarioDisponible.HoraFin; } horarioModels.HorariosDisponibles.Add(horarioDisponible); } } var horario = new Horario { Dia = horarioModels.Dia, Duracion = horarioModels.Duracion, HoraInicio = horarioModels.HoraInicio, Estado = horarioModels.Estado, Mes = horarioModels.Mes, HorariosDisponibles = horarioModels.HorariosDisponibles, CantidadTurnos = horarioModels.CantidadTurnos, EspecialistaId = horarioModels.EspecialistaID }; db.Horarios.Add(horario); db.SaveChanges(); return(RedirectToAction("MisHorarios", "Horario")); } return(RedirectToAction("MisHorarios", "Horario")); }