private void DoChangePassword(string oldPassword, string newPassword, string retryPassword)
 {
     if (newPassword == retryPassword)
     {
         using (var context = new Classmaister5000Entities())
         {
             var user = context.Users.Find(UIRepository.Instance.CurrentClientId);
             if (oldPassword == user.Password)
             {
                 if (newPassword != user.Password)
                 {
                     user.Password             = newPassword;
                     context.Entry(user).State = System.Data.Entity.EntityState.Modified;
                     context.SaveChanges();
                     MessageBox.Show("Password changed successfully!");
                     Application.Current.Windows[1].Close();
                 }
                 else
                 {
                     MessageBox.Show("The new password cannot be the old password!");
                 }
             }
             else
             {
                 MessageBox.Show("Your old password doesn't match!");
             }
         }
     }
     else
     {
         MessageBox.Show("The two passwords doesn't match!");
     }
 }
示例#2
0
 private static bool HasCourseByTeacherWithName(string name, string teacher, Day day, DateTime from, DateTime to)
 {
     using (var context = new Classmaister5000Entities())
     {
         return(context.Courses.Any(c => c.Name == name && c.Teacher == teacher && c.Day_Id == day.Id && c.From.Hour == from.Hour && c.From.Minute == from.Minute && c.To.Hour == to.Hour && c.To.Minute == to.Minute));
     }
 }
示例#3
0
 /// <summary>
 /// Eldönti, hogy létezik e már kurzus a megadott órán a megadott tanárral, a megadott napon és időpontban
 /// </summary>
 /// <param name="teacher"></param>
 /// <param name="subjectId"></param>
 /// <param name="day"></param>
 /// <param name="from"></param>
 /// <param name="to"></param>
 /// <returns></returns>
 private static bool HasCourseByTeacher(string teacher, int subjectId, Day day, DateTime from, DateTime to)
 {
     using (var context = new Classmaister5000Entities())
     {
         return(HasCourseByTeacher(teacher, subjectId) && context.Courses.Any(c => c.Day_Id == day.Id && c.From.Hour == from.Hour && c.From.Minute == from.Minute && c.To.Hour == to.Hour && c.To.Minute == to.Minute));
     }
 }
示例#4
0
 /// <summary>
 /// Eldönti, hogy létezik e már ilyen nevű kurzus ezen az órán, objektum alapján
 /// </summary>
 /// <param name="name"></param>
 /// <param name="subject"></param>
 /// <returns></returns>
 private static bool HasCourse(string name, Subject subject)
 {
     using (var context = new Classmaister5000Entities())
     {
         return(context.Courses.Any(c => c.Name == name && c.Subject == subject));
     }
 }
示例#5
0
 private static bool IsTeacherBusy(string teacher, int dayId, DateTime from, DateTime to)
 {
     using (var context = new Classmaister5000Entities())
     {
         return(context.Courses.Any(c => c.Day_Id == dayId && c.Teacher == teacher && c.From.Hour == from.Hour && c.From.Minute == from.Minute && c.To.Hour == to.Hour && c.To.Minute == to.Minute));
     }
 }
示例#6
0
 /// <summary>
 /// Eldönti, hogy létezik e már ilyen nevű kurzus ezen az órán, megadott napon és időpontban, objektum alapján
 /// </summary>
 /// <param name="name"></param>
 /// <param name="subject"></param>
 /// <param name="day"></param>
 /// <param name="from"></param>
 /// <param name="to"></param>
 /// <returns></returns>
 private static bool HasCourse(string name, Subject subject, Day day, DateTime from, DateTime to)
 {
     using (var context = new Classmaister5000Entities())
     {
         return(HasCourse(name, subject) && context.Courses.Any(c => c.Day_Id == day.Id && c.From.Hour == from.Hour && c.From.Minute == from.Minute && c.To.Hour == to.Hour && c.To.Minute == to.Minute));
     }
 }
示例#7
0
 /// <summary>
 /// Eldönti, hogy létezik e már kurzus a megadott órán a megadott tanárral
 /// </summary>
 /// <param name="teacher"></param>
 /// <param name="subjectId"></param>
 /// <param name="day"></param>
 /// <param name="from"></param>
 /// <param name="to"></param>
 /// <returns></returns>
 private static bool HasCourseByTeacher(string teacher, int subjectId)
 {
     using (var context = new Classmaister5000Entities())
     {
         return(context.Courses.Any(c => c.Teacher == teacher && c.Subject_Id == subjectId));
     }
 }
示例#8
0
 private static bool HasSubjectName(string Name)
 {
     using (var context = new Classmaister5000Entities())
     {
         return(context.Subjects.Any(s => s.SubjectName.ToLower() == Name.ToLower()));
     }
 }
示例#9
0
 private static bool HasCourseId(int courseId)
 {
     using (var context = new Classmaister5000Entities())
     {
         return(context.Timetables.Any(c => c.Course_Id == courseId));
     }
 }
示例#10
0
 public static bool HasUserName(string username)
 {
     using (var context = new Classmaister5000Entities())
     {
         var hasuser = context.Users.Any(u => u.UserName.ToLower() == username.ToLower());
         return(hasuser);
     }
 }
示例#11
0
 public void TestRegistration()
 {
     Registration.RegisterUser("xXxGasTheJews88", "jelszo", "jelszo", "Kalányos", "Dakota");
     using (var context = new Classmaister5000Entities())
     {
         bool hasUser = context.Users.Any(user => user.UserName.ToLower() == "xXxGasTheJews88".ToLower());
         Assert.IsTrue(hasUser);
     }
 }
示例#12
0
 public static void DeleteCourse(int id)
 {
     using (var context = new Classmaister5000Entities())
     {
         var deleteThis = context.Courses.Where(c => c.Id == id).First();
         TimetableActions.RemoveFromTimetableByCourseId(id);
         context.Courses.Remove(deleteThis);
         context.SaveChanges();
     }
 }
示例#13
0
 public static void UserLogout()
 {
     using (var context = new Classmaister5000Entities())
     {
         var CurrentUser = context.Users.Where(u => u.Id == UIRepository.Instance.CurrentClientId).First();
         CurrentUser.LastLogin            = DateTime.Now;
         context.Entry(CurrentUser).State = System.Data.Entity.EntityState.Modified;
         context.SaveChanges();
     }
     UIRepository.Instance.CurrentClientId = 0;
 }
示例#14
0
        public static bool RemoveFromTimetable(int id)
        {
            using (var context = new Classmaister5000Entities())
            {
                Timetable removeThis = context.Timetables.Find(id);
                context.Timetables.Remove(removeThis);
                context.SaveChanges();
            }

            return(true);
        }
示例#15
0
        public static bool RemoveFromTimetableByCourseId(int courseId)
        {
            using (var context = new Classmaister5000Entities())
            {
                ICollection <Timetable> removeThese = context.Timetables.Where(c => c.Course_Id == courseId).ToList();
                context.Timetables.RemoveRange(removeThese);
                context.SaveChanges();
            }

            return(true);
        }
示例#16
0
 public static bool CourseAdd(string name, string teacher, string room, int dayId, DateTime from, DateTime to, int subjectId)
 {
     if (!HasCourse(name, subjectId))
     {
         if (from.Hour < to.Hour)
         {
             if (!IsTeacherBusy(teacher, dayId, from, to))
             {
                 using (var context = new Classmaister5000Entities())
                 {
                     //CourseModel newCourse = new CourseModel();
                     //newCourse.Name = name;
                     //newCourse.Teacher = teacher;
                     //newCourse.Room = room;
                     //newCourse.Day_Id = dayId;
                     //newCourse.From = from;
                     //newCourse.To = to;
                     //newCourse.Subject_Id = subjectId;
                     //context.Courses.Add(CourseMapper.ModelToEntity(newCourse));
                     Course newCourse = new Course();
                     newCourse.Day_Id     = dayId;
                     newCourse.Room       = room;
                     newCourse.Teacher    = teacher;
                     newCourse.Name       = name;
                     newCourse.Subject_Id = subjectId;
                     newCourse.From       = from;
                     newCourse.To         = to;
                     context.Courses.Add(newCourse);
                     context.SaveChanges();
                     return(true);
                 }
             }
             else
             {
                 throw new TeacherBusyException();
             }
         }
         else
         {
             throw new InvalidTimeException();
         }
     }
     else
     {
         throw new CourseAlreadyExistsException();
     }
 }
示例#17
0
        public static bool AddToTimetable(int courseId)
        {
            using (var context = new Classmaister5000Entities())
            {
                var course = context.Courses.Find(courseId);
                ICollection <Timetable> records = context.Timetables.ToList();
                ICollection <Course>    courses = new List <Course>();
                foreach (var item in records)
                {
                    courses.Add(context.Courses.Where(c => c.Id == item.Course_Id).First());
                }

                bool   exists     = false;
                Course changeThis = null;
                foreach (var item in courses)
                {
                    if (item.Subject_Id == course.Subject_Id)
                    {
                        exists     = true;
                        changeThis = item;
                    }
                }
                if (!exists)
                {
                    int?id = context.Timetables.Max(i => (int?)i.Id) + 1;
                    if (id == null)
                    {
                        id = 0;
                    }
                    TimetableModel record = new TimetableModel();
                    record.UserId   = GetUserId;
                    record.CourseId = courseId;
                    record.Id       = (int)id + 1;

                    context.Timetables.Add(TimetableMapper.ModelToEntity(record));
                    context.SaveChanges();
                }
                else
                {
                    var changeThisPlease = context.Timetables.Where(t => t.Course_Id == changeThis.Id).First();
                    changeThisPlease.Course_Id            = courseId;
                    context.Entry(changeThisPlease).State = System.Data.Entity.EntityState.Modified;
                    context.SaveChanges();
                }
            }
            return(true);
        }
示例#18
0
 public void RemoveFromTimeTable(int id) //p betű felül
 {
     try
     {
         using (var context = new Classmaister5000Entities())
         {
             var course = context.Courses.Find(id);
             TimetableActions.RemoveFromTimetableByCourseId(id);
             GetCoursesFromLoggedInUsers();
             WhichCourseChanged(course);
             MessageBox.Show("The course has been successfully removed from the timetable!");
         }
     }
     catch (Exception e)
     {
         ExceptionLogger.LogException(e);
         MessageBox.Show(e.Message);
     }
 }
示例#19
0
 public static bool SubjectAdd(string Name, bool IsLecture)
 {
     if (!HasSubjectName(Name))
     {
         using (var context = new Classmaister5000Entities())
         {
             SubjectModel newSubject = new SubjectModel();
             newSubject.SubjectName = Name;
             newSubject.IsLecture   = IsLecture;
             newSubject.User_Id     = GetUserId;
             context.Subjects.Add(SubjectMapper.ModelToEntity(newSubject));
             context.SaveChanges();
             return(true);
         }
     }
     else
     {
         throw new SubjectAlreadyExistsException();
     }
 }
示例#20
0
 public void AddTimeTable(int id) //p betű felül
 {
     try
     {
         using (var context = new Classmaister5000Entities())
         {
             context.Configuration.LazyLoadingEnabled = false;
             var course = context.Courses.Find(id);
             TimetableActions.AddToTimetable(id);
             GetCoursesFromLoggedInUsers();
             WhichCourseChanged(course);
             MessageBox.Show("The course has been successfully added to the timetable!");
         }
     }
     catch (Exception e)
     {
         ExceptionLogger.LogException(e);
         MessageBox.Show(e.Message);
     }
 }
示例#21
0
 public static void RegisterUser(string username, string password, string RetryPassword,
                                 string FirstName, string LastName)
 {
     using (var context = new Classmaister5000Entities())
     {
         if (HasUserName(username))
         {
             throw new UsernameAlreadyExistsException();
         }
         else if (password == RetryPassword)
         {
             UserModel NewUser = new UserModel(FirstName, LastName, username, password);
             context.Users.Add(UserMapper.ModelToEntity(NewUser));
             context.SaveChanges();
         }
         else
         {
             throw new PasswordsNotEqualsException();
         }
     }
 }
示例#22
0
 public static bool SubjectRemove(string Name)
 {
     if (HasSubjectName(Name))
     {
         using (var context = new Classmaister5000Entities())
         {
             Subject removeThis = context.Subjects.Where(s => s.SubjectName.ToLower() == Name.ToLower()).First();
             ICollection <Course> removeTheseCourses = removeThis.Courses;
             foreach (var item in removeTheseCourses)
             {
                 TimetableActions.RemoveFromTimetableByCourseId(item.Id);
             }
             context.Courses.RemoveRange(removeTheseCourses);
             context.Subjects.Remove(removeThis);
             context.SaveChanges();
             return(true);
         }
     }
     else
     {
         throw new SubjectNotExistsException();
     }
 }
示例#23
0
 public static bool UserLogin(string username, string password)
 {
     using (var context = new Classmaister5000Entities()) // db kapcsolat
     {
         var hasUser = context.Users.Any(user => user.UserName.ToLower() == username.ToLower());
         if (!hasUser)
         {
             throw new UserNotFoundException();
         }
         else
         {
             var user = context.Users.Where(u => u.UserName.ToLower() == username.ToLower()).First();
             if (user.Password != password)
             {
                 throw new NotCorrectPasswordException();
             }
             else
             {
                 UIRepository.Instance.CurrentClientId = user.Id;
                 return(true);
             }
         }
     }
 }
示例#24
0
        public void GetCoursesFromLoggedInUsers()
        {
            CourseModel[] TempMonday    = new CourseModel[6];
            CourseModel[] TempTuesday   = new CourseModel[6];
            CourseModel[] TempWednesday = new CourseModel[6];
            CourseModel[] TempThursday  = new CourseModel[6];
            CourseModel[] TempFriday    = new CourseModel[6];
            CourseModel[] TempSaturday  = new CourseModel[6];
            CourseModel[] TempSunday    = new CourseModel[6];

            using (var context = new Classmaister5000Entities())
            {
                var records = TimetableMapper.EntityCollectionToModelCollection(context.Timetables.Where(c => c.User_Id == UIRepository.Instance.CurrentClientId).ToList());
                List <CourseModel> courses = new List <CourseModel>();
                //for (int i = 0; i < records.Count; i++)
                //{
                //    courses.Add(records[i].Course);
                //}

                foreach (var record in records)
                {
                    courses.Add(record.Course);
                }

                foreach (var course in courses)
                {
                    switch (course.Day_Id)
                    {
                    case 1:
                        TempMonday[SelectIndex(course)] = course;
                        break;

                    case 2:
                        TempTuesday[SelectIndex(course)] = course;
                        break;

                    case 3:
                        TempWednesday[SelectIndex(course)] = course;
                        break;

                    case 4:
                        TempThursday[SelectIndex(course)] = course;
                        break;

                    case 5:
                        TempFriday[SelectIndex(course)] = course;
                        break;

                    case 6:
                        TempSaturday[SelectIndex(course)] = course;
                        break;

                    case 7:
                        TempSunday[SelectIndex(course)] = course;
                        break;

                    default: throw new Exception("hiba");
                    }
                }
                MondayCourses    = TempMonday;
                TuesdayCourses   = TempTuesday;
                WednesdayCourses = TempWednesday;
                ThursdayCourses  = TempThursday;
                FridayCourses    = TempFriday;
                SaturdayCourses  = TempSaturday;
                SundayCourses    = TempSunday;
            }
        }