예제 #1
0
        public ActionResult Details(int id)
        {
            DesignationDto d           = new DesignationDto();
            var            teacherInDb = _context.Teachers.SingleOrDefault(t => t.Id == id);

            ViewBag.teacherCourses = _context.TeacherCourse.Where(c => c.TeacherId == id).Include(c => c.Course);
            ViewBag.salaries       = _context.Salaries.Where(s => s.TeacherId == id).Include(m => m.Month).Include(y => y.Year);
            ViewBag.designation    = d.designationList.SingleOrDefault(c => c.Id == teacherInDb.DesignationId);

            var records   = _context.TeacherCourse.Where(t => t.TeacherId == id).ToList();
            var timeTable = new List <TeacherTimeTable>();

            foreach (var record in records)
            {
                var      teacherName         = _context.Teachers.SingleOrDefault(t => t.Id == record.TeacherId).Name;
                var      course              = _context.Course.SingleOrDefault(c => c.Id == record.CourseId);
                var      departmentShortName = _context.Departments.SingleOrDefault(de => de.Id == course.DepartmentId).ShortName;
                var      semesterId          = _context.Semester.SingleOrDefault(s => s.Id == course.SemesterId).Id;
                Dtos.Day dayClass            = new Dtos.Day();
                var      days = dayClass.days;
                var      day  = days.SingleOrDefault(da => da.Id == record.DayId);

                //
                var starttime = record.StartTime;
                var ampm      = starttime.Contains("AM") ? "A" : "P";
                var sampm     = starttime.Contains("A") ?
                                starttime.Substring(starttime.IndexOf("A")) :
                                starttime.Substring(starttime.IndexOf("P"));

                var endtime = record.EndTime;
                var eampm   = endtime.Contains("A") ?
                              endtime.Substring(endtime.IndexOf("A")) :
                              endtime.Substring(endtime.IndexOf("P"));

                var starthour   = starttime.Substring(0, starttime.IndexOf(":"));
                var endhour     = endtime.Substring(0, endtime.IndexOf(":"));
                var startminute = "";
                var endminute   = "";
                var flag        = 0;
                for (int i = 0; i < starttime.Length; i++)
                {
                    if (flag == 1)
                    {
                        if (starttime[i] == 'A' || starttime[i] == 'P')
                        {
                            break;
                        }
                        startminute += starttime[i];
                    }
                    if (starttime[i] == ':')
                    {
                        flag = 1;
                    }
                }
                var flag1 = 0;
                for (int i = 0; i < endtime.Length; i++)
                {
                    if (flag1 == 1)
                    {
                        if (endtime[i] == 'A' || endtime[i] == 'P')
                        {
                            break;
                        }
                        endminute += endtime[i];
                    }
                    if (endtime[i] == ':')
                    {
                        flag1 = 1;
                    }
                }

                //8/2/1995 12:00:00 AM
                var      startD    = "8/2/2018 " + starthour + ":" + startminute + ":00 " + sampm;
                var      endD      = "8/2/2018 " + endhour + ":" + endminute + ":00 " + eampm;
                DateTime sdateTime = DateTime.Parse(startD);
                DateTime edateTime = DateTime.Parse(endD);

                //DateTime d1 = DateTime.Parse(sdateTime.ToString("HH:mm:ss tt"));
                //DateTime d2 = DateTime.Parse(edateTime.ToString("HH:mm:ss tt"));

                TimeSpan differencet = edateTime - sdateTime;
                var      difference  = (differencet.Hours * 60) + differencet.Minutes;

                if (difference > 50 && record.DayId != 5)
                {
                    var f = sdateTime;
                    while (f != edateTime)
                    {
                        var stfull = f;
                        f = f.AddMinutes(50);
                        var etfull = f;

                        timeTable.Add(
                            new TeacherTimeTable
                        {
                            Teacher    = teacherName,
                            Section    = record.Section,
                            Semester   = semesterId.ToString(),
                            Department = departmentShortName,
                            Course     = course.Name,
                            Day        = day.Name,
                            Room       = record.Room,
                            StartTime  = stfull.ToString("h:mtt"),
                            EndTime    = etfull.ToString("h:mtt")
                        });
                    }
                }
                else if (difference > 45 && record.DayId == 5)
                {
                    var f = sdateTime;
                    while (f != edateTime)
                    {
                        var stfull = f;
                        f = f.AddMinutes(45);
                        var etfull = f;

                        timeTable.Add(
                            new TeacherTimeTable
                        {
                            Teacher    = teacherName,
                            Section    = record.Section,
                            Semester   = semesterId.ToString(),
                            Department = departmentShortName,
                            Course     = course.Name,
                            Day        = day.Name,
                            Room       = record.Room,
                            StartTime  = stfull.ToString("h:mtt"),
                            EndTime    = etfull.ToString("h:mtt")
                        });
                    }
                }
                //

                else
                {
                    timeTable.Add(new TeacherTimeTable
                    {
                        Teacher    = teacherName,
                        Section    = record.Section,
                        Semester   = semesterId.ToString(),
                        Department = departmentShortName,
                        Course     = course.Name,
                        Day        = day.Name,
                        Room       = record.Room,
                        StartTime  = record.StartTime,
                        EndTime    = record.EndTime
                    });
                }
            }

            foreach (var record in timeTable)
            {
                if (record.Course.Contains("_Lab"))
                {
                    int index = record.Course.IndexOf("_Lab");
                    var n     = record.Course.Remove(index + 4);
                    record.Course = n;
                }
            }

            ViewBag.timeTable = timeTable;
            return(View(teacherInDb));
        }
예제 #2
0
        public ActionResult Details(int id)
        {
            var student = _context.Students.Include(s => s.Program).Include(s => s.Department).SingleOrDefault(s => s.Id == id);

            ViewBag.fees = _context.Fee.Where(f => f.StudentId == id).Include(s => s.Semester).ToList();
            //ViewBag.courses = _context.StudentCourse.Where(c => c.StudentId == id).ToList();
            var studentInDb    = _context.Students.SingleOrDefault(s => s.Id == id);
            var section        = _context.Section.SingleOrDefault(s => s.StudentId == id).Name;
            var semesters      = _context.Fee.Where(f => f.StudentId == id).ToList();
            var lastCount      = semesters.Count - 1;
            var lastSemesterId = semesters[lastCount].SemesterId;
            var departmentId   = studentInDb.DepartmentId;

            var currentCourses = _context.Course.Where(
                c => c.SemesterId == lastSemesterId &&
                c.DepartmentId == departmentId).ToList();

            var currentTimetable = new List <TeacherCourseDto>();

            foreach (var currentCourse in currentCourses)
            {
                var records = _context.TeacherCourse.Where(
                    t => t.CourseId == currentCourse.Id &&
                    t.Section == section).ToList();
                foreach (var record in records)
                {
                    //
                    var starttime = record.StartTime;
                    var ampm      = starttime.Contains("AM") ? "A" : "P";
                    var sampm     = starttime.Contains("A") ?
                                    starttime.Substring(starttime.IndexOf("A")) :
                                    starttime.Substring(starttime.IndexOf("P"));

                    var endtime = record.EndTime;
                    var eampm   = endtime.Contains("A") ?
                                  endtime.Substring(endtime.IndexOf("A")) :
                                  endtime.Substring(endtime.IndexOf("P"));

                    var starthour   = starttime.Substring(0, starttime.IndexOf(":"));
                    var endhour     = endtime.Substring(0, endtime.IndexOf(":"));
                    var startminute = "";
                    var endminute   = "";
                    var flag        = 0;
                    for (int i = 0; i < starttime.Length; i++)
                    {
                        if (flag == 1)
                        {
                            if (starttime[i] == 'A' || starttime[i] == 'P')
                            {
                                break;
                            }
                            startminute += starttime[i];
                        }
                        if (starttime[i] == ':')
                        {
                            flag = 1;
                        }
                    }
                    var flag1 = 0;
                    for (int i = 0; i < endtime.Length; i++)
                    {
                        if (flag1 == 1)
                        {
                            if (endtime[i] == 'A' || endtime[i] == 'P')
                            {
                                break;
                            }
                            endminute += endtime[i];
                        }
                        if (endtime[i] == ':')
                        {
                            flag1 = 1;
                        }
                    }

                    //8/2/1995 12:00:00 AM
                    var      startD    = "8/2/2018 " + starthour + ":" + startminute + ":00 " + sampm;
                    var      endD      = "8/2/2018 " + endhour + ":" + endminute + ":00 " + eampm;
                    DateTime sdateTime = DateTime.Parse(startD);
                    DateTime edateTime = DateTime.Parse(endD);

                    //DateTime d1 = DateTime.Parse(sdateTime.ToString("HH:mm:ss tt"));
                    //DateTime d2 = DateTime.Parse(edateTime.ToString("HH:mm:ss tt"));

                    TimeSpan differencet = edateTime - sdateTime;
                    var      difference  = (differencet.Hours * 60) + differencet.Minutes;
                    //

                    var      teacherName = _context.Teachers.SingleOrDefault(t => t.Id == record.TeacherId).Name;
                    var      courseName  = _context.Course.SingleOrDefault(c => c.Id == record.CourseId).Name;
                    Dtos.Day d           = new Dtos.Day();
                    var      days        = d.days;
                    var      day         = days.SingleOrDefault(da => da.Id == record.DayId);

                    if (difference > 50 && record.DayId != 5)
                    {
                        var f = sdateTime;
                        while (f != edateTime)
                        {
                            var stfull = f;
                            f = f.AddMinutes(50);
                            var etfull = f;

                            currentTimetable.Add(
                                new TeacherCourseDto
                            {
                                Teacher   = teacherName,
                                Course    = courseName,
                                Day       = day.Name,
                                Room      = record.Room,
                                StartTime = stfull.ToString("h:mtt"),
                                EndTime   = etfull.ToString("h:mtt")
                            });
                        }
                    }
                    else if (difference > 45 && record.DayId == 5)
                    {
                        var f = sdateTime;
                        while (f != edateTime)
                        {
                            var stfull = f;
                            f = f.AddMinutes(45);
                            var etfull = f;

                            currentTimetable.Add(
                                new TeacherCourseDto
                            {
                                Teacher   = teacherName,
                                Course    = courseName,
                                Day       = day.Name,
                                Room      = record.Room,
                                StartTime = stfull.ToString("h:mtt"),
                                EndTime   = etfull.ToString("h:mtt")
                            });
                        }
                    }

                    else
                    {
                        currentTimetable.Add(
                            new TeacherCourseDto
                        {
                            Teacher   = teacherName,
                            Course    = courseName,
                            Day       = day.Name,
                            Room      = record.Room,
                            StartTime = record.StartTime,
                            EndTime   = record.EndTime
                        });
                    }
                }
            }

            if (student == null)
            {
                return(HttpNotFound());
            }

            foreach (var record in currentTimetable)
            {
                if (record.Course.Contains("_Lab"))
                {
                    int index = record.Course.IndexOf("_Lab");
                    var n     = record.Course.Remove(index + 4);
                    record.Course = n;
                }
            }
            ViewBag.timetable = currentTimetable;
            return(View(student));
        }