public List <Periodo_activa_por> ObtenerFormulariosDisponibles(DateTime?inicio, DateTime?fin) { List <Periodo_activa_por> formularios = new List <Periodo_activa_por>(); String correo = HttpContext.User.Identity.Name; var formsDB = db.ObtenerFormulariosDeEstudiante(correo, inicio, fin).ToList(); foreach (var form in formsDB) { Periodo_activa_por periodo = new Periodo_activa_por { CSigla = form.SiglaCurso, FCodigo = form.Codigo, GAnno = form.Anno, GNumero = form.NumGrupo, GSemestre = form.Semestre, FechaInicio = form.FechaInicio, FechaFin = form.FechaFin, }; formularios.Add(periodo); } return(formularios); }
public List <Periodo_activa_por> ObtenerFormulariosSemestre() { List <Periodo_activa_por> formularios = new List <Periodo_activa_por>(); String correo = HttpContext.User.Identity.Name; var formsDB = db.ObtenerFormulariosPorSemestre(correo, DateTime.Now.Year, SemestreActual); foreach (var form in formsDB) { Periodo_activa_por periodo = new Periodo_activa_por { CSigla = form.SiglaCurso, FCodigo = form.Codigo, GAnno = form.Anno, GNumero = form.NumGrupo, GSemestre = form.Semestre, FechaInicio = form.FechaInicio, FechaFin = form.FechaFin, }; formularios.Add(periodo); } return(formularios); }
public FechasSolapadasInfo VerificarFechasSolapadas(string FCodigo, int GAnno, byte GSemestre, byte GNumero, DateTime fechaInicio, DateTime fechaFin) { // Verificar si se solapa la fecha de inicio del form var inicioSolapada = from p in db.Periodo_activa_por where p.FCodigo == FCodigo && p.GAnno == GAnno && p.GSemestre == GSemestre && p.GNumero == GNumero && (fechaInicio <= p.FechaInicio && p.FechaInicio <= fechaFin) select p.FechaInicio; // Verificar si se solapa la fecha de fin del form var finSolapada = from p in db.Periodo_activa_por where p.FCodigo == FCodigo && p.GAnno == GAnno && p.GSemestre == GSemestre && p.GNumero == GNumero && (fechaInicio <= p.FechaFin && p.FechaFin <= fechaFin) select p.FechaFin; FechasSolapadasInfo fechas = new FechasSolapadasInfo(); Periodo_activa_por original = new Periodo_activa_por(); if (!inicioSolapada.Any() && !finSolapada.Any()) { return(null); } // Si la fecha se solapa if (inicioSolapada.Any()) { // Guardo la original original.FechaInicio = inicioSolapada.FirstOrDefault(); // Guardo la nueva fechas.FechaInicioNueva = fechaInicio; if (!finSolapada.Any()) { original.FechaFin = (from p in db.Periodo_activa_por where p.FCodigo == FCodigo && p.GAnno == GAnno && p.GSemestre == GSemestre && p.GNumero == GNumero && p.FechaInicio == original.FechaInicio select p.FechaFin).FirstOrDefault(); } } // Si la fecha se solapa if (finSolapada.Any()) { // Guardo la original original.FechaFin = finSolapada.FirstOrDefault(); // Guardo la nueva fechas.FechaFinNueva = fechaFin; if (!inicioSolapada.Any()) { original.FechaInicio = (from p in db.Periodo_activa_por where p.FCodigo == FCodigo && p.GAnno == GAnno && p.GSemestre == GSemestre && p.GNumero == GNumero && p.FechaFin == original.FechaFin select p.FechaInicio).FirstOrDefault(); } } fechas.PeriodoOriginal = original; return(fechas); }