public ActionResult DeleteConfirmed(int id)
 {
     try
     {
         TempRoutine temproutine = db.TempRoutines.Find(id);
         if (User.Identity.Name == temproutine.UserName)
         {
             BackupHelper aBackupHelper = new BackupHelper();
             db.TempRoutineBackupModels.Add(aBackupHelper.GetTempRoputineBackupData(temproutine));
             db.Routines.Remove(temproutine);
             db.SaveChanges();
             return(RedirectToAction("Index"));
         }
         else
         {
             ViewBag.message = "You are not the creator of this Routine So You can not Delete It";
             return(View("Delete", temproutine));
         }
     }
     catch
     {
         ViewBag.M1 = "Unable to load DeleteConfirmed TempRoutineController";
         return(View("Delete"));
     }
 }
        private bool checkPossibilitywithDate(TempRoutine temproutine)
        {
            //temproutine.TempRoutineDate.TimeOfDay = temproutine.Time_From.TimeOfDay;
            var currentDay = DateTime.Now;

            //var CurrentTime=DateTime.Now.TimeOfDay;
            if (DateTime.Compare(temproutine.TempRoutineDate, currentDay) == 1)
            {
                return(true);
            }
            //var testDay = DateTime.Now.ToString();
            var testDay1 = DateTime.Now.Date.ToShortDateString();

            //var test1 = DateTime.Compare(testDay, temproutine.TempRoutineDate);
            //DateTime aDate=Convert.ToDateTime("11/23/2010 09:05:00 PM");
            //var test11 = DateTime.Compare(testDay,aDate );
            //var test12 = DateTime.Compare(aDate, aDate);
            //var test2 = DateTime.Today;
            //var test13 = DateTime.Now.TimeOfDay;
            //var test14 = DateTime.Now.TimeOfDay.CompareTo(test13);
            //var test15 = DateTime.Now.TimeOfDay.CompareTo(aDate.TimeOfDay);
            //var test3 = DateTime.Now.Day.ToString();
            //var test4 = DateTime.Now.DayOfWeek.ToString();
            //return true;
            return(false);
        }
        private bool CheckPossibilityWithUser(TempRoutine temproutine)
        {
            var name = User.Identity.Name;

            //
            //To test with today
            //DateTime day = DateTime.Now;

            //To test with given date
            //DateTime day = temproutine.TempRoutineDate;

            //try
            //{
            //    DateTime FromDate =GetFromDate(day);
            //    DateTime ToDate = GetToDate(day);

            //    int countchk = db.TempRoutines.Where(a => a.UserName == name).Where(a => a.TempRoutineDate >= FromDate && a.TempRoutineDate <= ToDate).Count();
            //}
            //catch { }
            int count = db.TempRoutines.Where(a => a.UserName == name).Where(a => a.TempRoutineDate == temproutine.TempRoutineDate).Count();

            if (count > 0)
            {
                return(false);
            }
            return(true);
        }
        public ActionResult Create(int?id)
        {
            try
            {
                if (User.IsInRole("Admin") || User.IsInRole("Teacher"))
                {
                    TempRoutine aTempRoutine = new TempRoutine();
                    if (id != null)
                    {
                        Routine aRoutine = db.Routines.Where(a => a.RoutineId == id).Select(a => a).FirstOrDefault();
                        aTempRoutine.Day                 = aRoutine.Day;
                        aTempRoutine.Department          = aRoutine.Department;
                        aTempRoutine.RoutineDepartmentId = aRoutine.RoutineDepartmentId;
                        aTempRoutine.Time_From           = aRoutine.Time_From;
                        aTempRoutine.Time_To             = aRoutine.Time_To;
                        aTempRoutine.ClassRoom           = aRoutine.ClassRoom;
                        aTempRoutine.RoutineClassroomId  = aRoutine.RoutineClassroomId;
                        aTempRoutine.RoutineType         = aRoutine.RoutineType;

                        aTempRoutine.RoutineTypeId = db.RoutineTypes.Where(a => a.TypeName == "Temporary").Select(a => a.RoutineTypeId).FirstOrDefault();

                        aRoutine.Year                  = Regex.Replace(aRoutine.Year, @"\0", "");
                        aTempRoutine.Year              = aRoutine.Year;
                        aTempRoutine.Semester          = aRoutine.Semester;
                        aTempRoutine.RoutineSemesterId = aRoutine.RoutineSemesterId;

                        aTempRoutine.UserName            = User.Identity.Name;
                        aTempRoutine.RoutineTeacherId    = db.Routines.Where(a => a.Teacher.Initial == User.Identity.Name).Select(a => a.Teacher.TeacherId).FirstOrDefault();
                        aTempRoutine.RoutineDepartmentId = db.Routines.Where(a => a.Teacher.Initial == User.Identity.Name).Select(a => a.Teacher.TeacherDeptId).FirstOrDefault();
                        aTempRoutine.TempRoutineDate     = System.DateTime.Now;
                        if (aTempRoutine.RoutineTeacherId == 0 || aTempRoutine.RoutineDepartmentId == 0)
                        {
                            ViewBag.ErrorMsg = "You Do not have any teacher initial in the routine.So you can not assign a make up class.";
                            ViewBag.message  = "You Do not have any teacher initial in the routine.So you can not assign a make up class.";
                            return(View("Error"));
                        }
                    }
                    else
                    {
                        aTempRoutine              = null;
                        ViewBag.DayName           = new SelectList(db.Days, "DayName", "DayName");
                        ViewBag.RoutineTypeId     = new SelectList(db.RoutineTypes, "RoutineTypeId", "TypeName");
                        ViewBag.RoutineSemesterId = new SelectList(db.Semesters, "SemesterId", "Name");
                    }

                    ViewBag.RoutineCourseId    = new SelectList(db.Routines.Where(a => a.Teacher.Initial == User.Identity.Name).Select(a => a.Course).Distinct(), "CourseId", "Code");
                    ViewBag.RoutineClassroomId = new SelectList(db.ClassRooms, "ClassRoomId", "RoomNo");

                    return(View(aTempRoutine));
                }
                ViewBag.message = "Please Contact with the Admin because you are not authorize to do this.";
                return(View("Error", "Upload"));
            }
            catch
            {
                ViewBag.M = "Unable to load Create TempRoutineController";
                return(View());
            }
        }
        private bool CheckPossibilityWithTimeSlot(TempRoutine temproutine)
        {
            List <TempRoutine> routineList = db.TempRoutines.Where(a => a.TempRoutineDate == temproutine.TempRoutineDate).Where(a => a.RoutineClassroomId == temproutine.RoutineClassroomId).Where(a => a.Time_From == temproutine.Time_From).Select(a => a).ToList();

            if (routineList.Count > 0)
            {
                return(false);
            }
            //return true;
            return(true);
        }
        private bool checkPossibilitywithDay(TempRoutine temproutine)
        {
            string chosenDay = temproutine.TempRoutineDate.DayOfWeek.ToString();

            if (chosenDay == temproutine.Day)
            {
                return(true);
            }

            return(false);
        }
 public ActionResult Delete(int id)
 {
     try
     {
         TempRoutine temproutine = db.TempRoutines.Find(id);
         return(View(temproutine));
     }
     catch
     {
         ViewBag.M = "Unable to load Delete TempRoutineController";
         return(View());
     }
 }
        private bool CheckPossibilityWithUser2(TempRoutine temproutine)
        {
            var      name     = User.Identity.Name;
            DateTime day      = temproutine.TempRoutineDate;
            DateTime FromDate = GetFromDate(day);
            DateTime ToDate   = GetToDate(day);
            int      countchk = db.TempRoutines.Where(a => a.UserName == name).Where(a => a.TempRoutineDate >= FromDate && a.TempRoutineDate <= ToDate).Count();

            if (countchk < 3)
            {
                return(true);
            }
            return(false);
        }
 public ActionResult Edit(int id)
 {
     try
     {
         TempRoutine temproutine = db.TempRoutines.Find(id);
         ViewBag.RoutineCourseId     = new SelectList(db.Courses, "CourseId", "Name", temproutine.RoutineCourseId);
         ViewBag.RoutineDepartmentId = new SelectList(db.Departments, "DepartmentId", "Name", temproutine.RoutineDepartmentId);
         ViewBag.RoutineClassroomId  = new SelectList(db.ClassRooms, "ClassRoomId", "RoomNo", temproutine.RoutineClassroomId);
         ViewBag.RoutineTeacherId    = new SelectList(db.Teachers, "TeacherId", "Name", temproutine.RoutineTeacherId);
         ViewBag.RoutineSemesterId   = new SelectList(db.Semesters, "SemesterId", "Name", temproutine.RoutineSemesterId);
         ViewBag.RoutineTypeId       = new SelectList(db.RoutineTypes, "RoutineTypeId", "TypeName", temproutine.RoutineTypeId);
         return(View(temproutine));
     }
     catch
     {
         ViewBag.M = "Unable to load Edit TempRoutineController";
         return(View());
     }
 }
 public ActionResult Edit(TempRoutine temproutine)
 {
     try
     {
         if (ModelState.IsValid)
         {
             if (User.Identity.Name == temproutine.UserName)
             {
                 db.Entry(temproutine).State = EntityState.Modified;
                 db.SaveChanges();
                 return(RedirectToAction("Index"));
             }
             else
             {
                 ViewBag.message             = "You are not the creator of this Routine So You can not Edit It";
                 ViewBag.RoutineCourseId     = new SelectList(db.Courses, "CourseId", "Name", temproutine.RoutineCourseId);
                 ViewBag.RoutineDepartmentId = new SelectList(db.Departments, "DepartmentId", "Name", temproutine.RoutineDepartmentId);
                 ViewBag.RoutineClassroomId  = new SelectList(db.ClassRooms, "ClassRoomId", "RoomNo", temproutine.RoutineClassroomId);
                 ViewBag.RoutineTeacherId    = new SelectList(db.Teachers, "TeacherId", "Name", temproutine.RoutineTeacherId);
                 ViewBag.RoutineSemesterId   = new SelectList(db.Semesters, "SemesterId", "Name", temproutine.RoutineSemesterId);
                 ViewBag.RoutineTypeId       = new SelectList(db.RoutineTypes, "RoutineTypeId", "TypeName", temproutine.RoutineTypeId);
                 return(View(temproutine));
             }
         }
         ViewBag.RoutineCourseId     = new SelectList(db.Courses, "CourseId", "Name", temproutine.RoutineCourseId);
         ViewBag.RoutineDepartmentId = new SelectList(db.Departments, "DepartmentId", "Name", temproutine.RoutineDepartmentId);
         ViewBag.RoutineClassroomId  = new SelectList(db.ClassRooms, "ClassRoomId", "RoomNo", temproutine.RoutineClassroomId);
         ViewBag.RoutineTeacherId    = new SelectList(db.Teachers, "TeacherId", "Name", temproutine.RoutineTeacherId);
         ViewBag.RoutineSemesterId   = new SelectList(db.Semesters, "SemesterId", "Name", temproutine.RoutineSemesterId);
         ViewBag.RoutineTypeId       = new SelectList(db.RoutineTypes, "RoutineTypeId", "TypeName", temproutine.RoutineTypeId);
         return(View(temproutine));
     }
     catch
     {
         ViewBag.M = "Unable to load Edit TempRoutineController";
         return(View());
     }
 }
        public ActionResult Create(TempRoutine temproutine)
        {
            try
            {
                //temproutine.UserName = User.Identity.Name;

                if (ModelState.IsValid)
                {
                    if (checkPossibilitywithDate(temproutine) == true)
                    {
                        if (CheckPossibilityWithUser(temproutine) == true)
                        {
                            if (CheckPossibilityWithUser2(temproutine) == true)
                            {
                                if (checkPossibilitywithDay(temproutine) == true)
                                {
                                    if (CheckPossibilityWithTimeSlot(temproutine) == true)
                                    {
                                        temproutine.RoutineTypeId = db.RoutineTypes.Where(a => a.TypeName == "Temporary").Select(a => a.RoutineTypeId).FirstOrDefault();
                                        db.TempRoutines.Add(temproutine);
                                        db.SaveChanges();
                                        return(RedirectToAction("Index"));
                                    }
                                    else
                                    {
                                        string ft        = temproutine.Time_From.TimeOfDay.ToString();
                                        string tt        = temproutine.Time_To.TimeOfDay.ToString();
                                        string room      = db.ClassRooms.Where(a => a.ClassRoomId == temproutine.RoutineClassroomId).Select(a => a.RoomNo).FirstOrDefault();
                                        string givendate = temproutine.TempRoutineDate.Date.ToShortDateString();
                                        string chosenDay = temproutine.TempRoutineDate.DayOfWeek.ToString();
                                        string msg       = "Room " + room + " is not available at " + givendate + " ( " + chosenDay + " )" + " from " + ft + " to " + tt;
                                        ViewBag.message             = msg;
                                        ViewBag.RoutineCourseId     = new SelectList(db.Routines.Where(a => a.Teacher.Initial == User.Identity.Name).Select(a => a.Course).Distinct(), "CourseId", "Code");
                                        ViewBag.RoutineDepartmentId = new SelectList(db.Departments, "DepartmentId", "Code", temproutine.RoutineDepartmentId);
                                        ViewBag.RoutineClassroomId  = new SelectList(db.ClassRooms, "ClassRoomId", "RoomNo", temproutine.RoutineClassroomId);
                                        ViewBag.RoutineTeacherId    = new SelectList(db.Teachers, "TeacherId", "Initial", temproutine.RoutineTeacherId);
                                        ViewBag.RoutineSemesterId   = new SelectList(db.Semesters, "SemesterId", "Name", temproutine.RoutineSemesterId);
                                        ViewBag.RoutineTypeId       = new SelectList(db.RoutineTypes, "RoutineTypeId", "TypeName", temproutine.RoutineTypeId);
                                        ViewBag.DayName             = new SelectList(db.Days, "DayName", "DayName");
                                        return(View(temproutine));
                                    }
                                }
                                else
                                {
                                    var      name     = User.Identity.Name;
                                    DateTime day      = temproutine.TempRoutineDate;
                                    DateTime FromDate = GetFromDate(day);
                                    DateTime ToDate   = GetToDate(day);
                                    string   msg      = "You have already Booked 3 or more classes from ''" + FromDate.GetDateTimeFormats()[3].ToString() + "''  to  ''" + ToDate.GetDateTimeFormats()[3].ToString() + "''";
                                    ViewBag.message             = msg;
                                    ViewBag.RoutineCourseId     = new SelectList(db.Routines.Where(a => a.Teacher.Initial == User.Identity.Name).Select(a => a.Course).Distinct(), "CourseId", "Code");
                                    ViewBag.RoutineDepartmentId = new SelectList(db.Departments, "DepartmentId", "Code", temproutine.RoutineDepartmentId);
                                    ViewBag.RoutineClassroomId  = new SelectList(db.ClassRooms, "ClassRoomId", "RoomNo", temproutine.RoutineClassroomId);
                                    ViewBag.RoutineTeacherId    = new SelectList(db.Teachers, "TeacherId", "Initial", temproutine.RoutineTeacherId);
                                    ViewBag.RoutineSemesterId   = new SelectList(db.Semesters, "SemesterId", "Name", temproutine.RoutineSemesterId);
                                    ViewBag.RoutineTypeId       = new SelectList(db.RoutineTypes, "RoutineTypeId", "TypeName", temproutine.RoutineTypeId);
                                    ViewBag.DayName             = new SelectList(db.Days, "DayName", "DayName");
                                    return(View(temproutine));
                                }
                            }
                            else
                            {
                                string chosenDay = temproutine.TempRoutineDate.DayOfWeek.ToString();
                                string msg       = "The Day you choose is " + chosenDay + " which Does not match with make up slot day " + temproutine.Day;
                                ViewBag.message             = msg;
                                ViewBag.RoutineCourseId     = new SelectList(db.Routines.Where(a => a.Teacher.Initial == User.Identity.Name).Select(a => a.Course).Distinct(), "CourseId", "Code");
                                ViewBag.RoutineDepartmentId = new SelectList(db.Departments, "DepartmentId", "Code", temproutine.RoutineDepartmentId);
                                ViewBag.RoutineClassroomId  = new SelectList(db.ClassRooms, "ClassRoomId", "RoomNo", temproutine.RoutineClassroomId);
                                ViewBag.RoutineTeacherId    = new SelectList(db.Teachers, "TeacherId", "Initial", temproutine.RoutineTeacherId);
                                ViewBag.RoutineSemesterId   = new SelectList(db.Semesters, "SemesterId", "Name", temproutine.RoutineSemesterId);
                                ViewBag.RoutineTypeId       = new SelectList(db.RoutineTypes, "RoutineTypeId", "TypeName", temproutine.RoutineTypeId);
                                ViewBag.DayName             = new SelectList(db.Days, "DayName", "DayName");
                                return(View(temproutine));
                            }
                        }
                        else
                        {
                            string msg = "You have already Assigned a Class at " + temproutine.TempRoutineDate.Date.ToShortDateString();
                            ViewBag.message             = msg;
                            ViewBag.RoutineCourseId     = new SelectList(db.Routines.Where(a => a.Teacher.Initial == User.Identity.Name).Select(a => a.Course).Distinct(), "CourseId", "Code");
                            ViewBag.RoutineDepartmentId = new SelectList(db.Departments, "DepartmentId", "Code", temproutine.RoutineDepartmentId);
                            ViewBag.RoutineClassroomId  = new SelectList(db.ClassRooms, "ClassRoomId", "RoomNo", temproutine.RoutineClassroomId);
                            ViewBag.RoutineTeacherId    = new SelectList(db.Teachers, "TeacherId", "Initial", temproutine.RoutineTeacherId);
                            ViewBag.RoutineSemesterId   = new SelectList(db.Semesters, "SemesterId", "Name", temproutine.RoutineSemesterId);
                            ViewBag.RoutineTypeId       = new SelectList(db.RoutineTypes, "RoutineTypeId", "TypeName", temproutine.RoutineTypeId);
                            ViewBag.DayName             = new SelectList(db.Days, "DayName", "DayName");
                            return(View(temproutine));
                        }
                    }
                    else
                    {
                        ViewBag.message             = "Assigned Date have to be greater than Today";
                        ViewBag.RoutineCourseId     = new SelectList(db.Routines.Where(a => a.Teacher.Initial == User.Identity.Name).Select(a => a.Course).Distinct(), "CourseId", "Code");
                        ViewBag.RoutineDepartmentId = new SelectList(db.Departments, "DepartmentId", "Code", temproutine.RoutineDepartmentId);
                        ViewBag.RoutineClassroomId  = new SelectList(db.ClassRooms, "ClassRoomId", "RoomNo", temproutine.RoutineClassroomId);
                        ViewBag.RoutineTeacherId    = new SelectList(db.Teachers, "TeacherId", "Initial", temproutine.RoutineTeacherId);
                        ViewBag.RoutineSemesterId   = new SelectList(db.Semesters, "SemesterId", "Name", temproutine.RoutineSemesterId);
                        ViewBag.RoutineTypeId       = new SelectList(db.RoutineTypes, "RoutineTypeId", "TypeName", temproutine.RoutineTypeId);
                        ViewBag.DayName             = new SelectList(db.Days, "DayName", "DayName");
                        return(View(temproutine));
                    }
                }

                ViewBag.RoutineCourseId     = new SelectList(db.Routines.Where(a => a.Teacher.Initial == User.Identity.Name).Select(a => a.Course).Distinct(), "CourseId", "Code");
                ViewBag.RoutineDepartmentId = new SelectList(db.Departments, "DepartmentId", "Code", temproutine.RoutineDepartmentId);
                ViewBag.RoutineClassroomId  = new SelectList(db.ClassRooms, "ClassRoomId", "RoomNo", temproutine.RoutineClassroomId);
                ViewBag.RoutineTeacherId    = new SelectList(db.Teachers, "TeacherId", "Initial", temproutine.RoutineTeacherId);
                ViewBag.RoutineSemesterId   = new SelectList(db.Semesters, "SemesterId", "Name", temproutine.RoutineSemesterId);
                ViewBag.RoutineTypeId       = new SelectList(db.RoutineTypes, "RoutineTypeId", "TypeName", temproutine.RoutineTypeId);
                ViewBag.DayName             = new SelectList(db.Days, "DayName", "DayName");
                return(View(temproutine));
            }
            catch
            {
                ViewBag.M = "Unable to load Create TempRoutineController";
                return(View());
            }
        }
        public ViewResult Details(int id)
        {
            TempRoutine temproutine = db.TempRoutines.Find(id);

            return(View(temproutine));
        }