public GuestPage(LoginCredentionals credits) { this.credits = credits; var id = DataManager.DStorage.Login_Id_Map[credits.Username]; var position = DataManager.DStorage.Id_Position_Map[id]; if (position == ElectronicJournal.Position.Guest) { guestView = true; id = DataManager.DStorage.Guest_Studednt_Map[id]; } this.student = DataManager.DStorage.Id_Person_Map[id]; InitializeComponent(); if (guestView) { MarkLabel.Content = "Marks for student [" + student + "] (guest view):"; } else { MarkLabel.Content = "Marks for student [" + student + "]:"; } var entries = DataManager.DStorage.Journal.GetEntries(id); var displayEntries = entries.ConvertAll(e => new DisplayEntry(e.Time, e.Subject, DataManager.DStorage.Id_Person_Map[e.TeacherId], e.Mark)); MarkGrid.ItemsSource = displayEntries; }
public static bool Authenticate(LoginCredentionals credits, out int userId) { Logger.Info("Authenticating user [" + credits.Username + "]..."); string storedPassword; if (!dStorage.Login_Password_Map.TryGetValue(credits.Username, out storedPassword) || !storedPassword.Equals(credits.Password)) { Logger.Warn("Authentication error. Login and password do not match!"); userId = -1; return(false); } else { try { dStorage.Login_Id_Map.TryGetValue(credits.Username, out userId); Logger.Info("Authentication succeeded."); } catch { userId = -1; Logger.Error("Authentication failed."); } return(true); } }
public TeacherPage(LoginCredentionals credits) { this.credits = credits; InitializeComponent(); InitializeObservable(); tvm = new TeacherViewModel(_studentList, _markList); DataContext = tvm; MarkComboBox.ItemsSource = Enumerable.Range((int)AppConfiguration.MinMarkValue, (int)AppConfiguration.MaxMarkValue - (int)AppConfiguration.MinMarkValue + 1); MarkComboBox.SelectedIndex = 0; var teacherId = DataManager.DStorage.Login_Id_Map[credits.Username]; this.teacher = DataManager.DStorage.Id_Person_Map[teacherId]; this.subject = DataManager.DStorage.Id_Subject_Map[teacherId]; TeacherLabel.Content = "Teacher [" + teacher.ToShortString() + "]"; }
public void RegisterGuest(LoginCredentionals credits, int studentId, int guestId) { Logger.Info("Trying to add a guest [" + guestId + "] to watch student [" + studentId + "]..."); if (CheckPermission(credits)) { Console.WriteLine("Adding new guest..."); try { Guest_Studednt_Map.Add(guestId, studentId); Logger.Info("Regestering new guest succeeded."); } catch { Logger.Warn("Registering new guest failed."); } } }
public void RegisterTeacher(LoginCredentionals credits, int id, Subject subject) { Logger.Info("Trying to add a teacher [" + id + "]..."); if (CheckPermission(credits)) { Console.WriteLine("Adding new teacher..."); try { Id_Subject_Map.Add(id, subject); Logger.Info("Regestering new teacher succeeded."); } catch { Logger.Warn("Registering new teacher failed."); } } }
public AdministratorPage(LoginCredentionals credits) { this.credits = credits; InitializeComponent(); InitializeData(); var id = DataManager.DStorage.Login_Id_Map[credits.Username]; var person = DataManager.DStorage.Id_Person_Map[id]; AdminLabel.Content = "Administrator [" + person.ToShortString() + "]"; avm = new AdministrativeViewModel(_personList, _studentList); DataContext = avm; PositionComboBox.ItemsSource = Enum.GetValues(typeof(Position)); SexComboBox.ItemsSource = Enum.GetValues(typeof(SexT)); SubjectComboBox.ItemsSource = Enum.GetValues(typeof(Subject)); SwitchSubject(false); SwitchGuest(false); }
private void loginButton_Click(object sender, RoutedEventArgs e) { int id; var credits = new LoginCredentionals(usernameTextBox.Text, passwordBox.Password); bool auth = AccountManager.Authenticate(credits, out id); if (auth) { Position pos; if (DataManager.DStorage.Id_Position_Map.TryGetValue(id, out pos)) { NavigationService nav = NavigationService.GetNavigationService(this); switch (pos) { case Position.Guest: case Position.Student: Logger.Info("Navigating to guest page."); nav.Navigate(new GuestPage(credits)); return; case Position.Teacher: Logger.Info("Navigating to teacher page."); nav.Navigate(new TeacherPage(credits)); return; case Position.Administrator: Logger.Info("Navigating to administrator page."); nav.Navigate(new AdministratorPage(credits)); return; default: return; } } else { Logger.Warn("Can not determine position of person [" + credits.Username + "]."); } } else { NavigationService nav = NavigationService.GetNavigationService(this); textLabel.Content = "Login failed. Please try once more!"; } }
private void AddButton_Click(object sender, RoutedEventArgs e) { var newUserCredits = new LoginCredentionals(avm.UserName, avm.Password); var p = new Person(avm.Name, avm.SecondName, avm.Surname, avm.Birthday, (SexT)avm.SexIndex); var pos = (Position)avm.PositionIndex; DataManager.DStorage.RegisterNewUser(credits, newUserCredits, pos, p); _personList.Add(new ExtendedPerson(p, pos)); if ((Position)avm.PositionIndex == Position.Teacher) { DataManager.DStorage.RegisterTeacher(credits, p.Id, (Subject)avm.SubjectIndex); } else if ((Position)avm.PositionIndex == Position.Guest) { var studentId = _studentList[avm.StudentIndex].Id; DataManager.DStorage.RegisterGuest(credits, studentId, p.Id); } Reset(); }
public void RegisterNewUser(LoginCredentionals credits, LoginCredentionals newUserCredits, Position position, Person p) { Logger.Info("Trying to register new user..."); if (CheckPermission(credits)) { Console.WriteLine("Registing new user [" + p + "][" + position + "..."); try { Id_Position_Map.Add(p.Id, position); Id_Person_Map.Add(p.Id, p); Id_Login_Map.Add(p.Id, newUserCredits.Username); Login_Id_Map.Add(newUserCredits.Username, p.Id); Login_Password_Map.Add(newUserCredits.Username, newUserCredits.Password); Logger.Info("Regestering new user succeeded."); } catch { Logger.Warn("Registering new user failed."); } } }
public void RemoveUser(LoginCredentionals credits, int id) { Logger.Info("Trying to remove a user [" + id + "]..."); if (CheckPermission(credits)) { try { if (Id_Login_Map.ContainsKey(id)) { var login = Id_Login_Map[id]; if (Login_Id_Map.ContainsKey(login)) { Login_Id_Map.Remove(login); } Id_Login_Map.Remove(id); } if (Id_Person_Map.ContainsKey(id)) { Id_Person_Map.Remove(id); } if (Id_Position_Map.ContainsKey(id)) { Id_Position_Map.Remove(id); } if (Id_Subject_Map.ContainsKey(id)) { Id_Subject_Map.Remove(id); } if (Guest_Studednt_Map.ContainsKey(id)) { Guest_Studednt_Map.Remove(id); } Logger.Info("Removing user succeeded."); } catch { Logger.Warn("Removing user failed."); } } }
private bool CheckPermission(LoginCredentionals credits) { Logger.Info("Cheking permissions..."); int id; Position position; if (AccountManager.Authenticate(credits, out id)) { if (Id_Position_Map.TryGetValue(id, out position) && position == Position.Administrator) { Logger.Info("Ok."); return(true); } else { Logger.Warn("Not enought permitions!"); } } else { Logger.Warn("Current user authentication [" + credits.Username + "] failed."); } return(false); }