//this function save the users dictionary to file private void saveUsers() { using (FileStream fs = new FileStream("users.txt", FileMode.Create)) { using (BinaryWriter bw = new BinaryWriter(fs)) { foreach (string user in this.forum.users.Keys) { RegisteredUser userToWrite = this.forum.users[user]; bw.Write(userToWrite.FirstName); bw.Write(userToWrite.LastName); bw.Write(userToWrite.Email); bw.Write(userToWrite.Password); bw.Write(userToWrite.UserName); bw.Write(userToWrite.CanDeleteMsg); bw.Write(userToWrite.CanDeleteTopic); bw.Write(userToWrite.CanBanUser); bw.Write(userToWrite.NotificationList.Count.ToString()); foreach (string noti in userToWrite.NotificationList) { bw.Write(noti); } bw.Write(userToWrite.SubForumsList.Count.ToString()); foreach (string subF in userToWrite.SubForumsList) { bw.Write(subF); } } } } }
private void addUserToFile(RegisteredUser user) { using (FileStream fs = new FileStream("users.txt", FileMode.Append)) { using (BinaryWriter bw = new BinaryWriter(fs)) { bw.Write(user.FirstName); bw.Write(user.LastName); bw.Write(user.Email); bw.Write(user.Password); bw.Write(user.UserName); bw.Write(user.CanDeleteMsg); bw.Write(user.CanDeleteTopic); bw.Write(user.CanBanUser); bw.Write(user.NotificationList.Count.ToString()); foreach (string noti in user.NotificationList) { bw.Write(noti); } bw.Write(user.SubForumsList.Count.ToString()); foreach (string subF in user.SubForumsList) { bw.Write(subF); } } } }
public Topic(string subject, string content, RegisteredUser user) { messages = new List <Message>(); this.content = content; this.subject = subject; openedBy = user; userFirstOpenMsgName = openedBy.UserName; }
//load users that are regitred to the forum private void loadUsers() { if (!File.Exists("users.txt")) { return; } using (FileStream fs = new FileStream("users.txt", FileMode.Open)) { using (BinaryReader sr = new BinaryReader(fs)) { while (sr.BaseStream.Position != sr.BaseStream.Length) { string firstName = sr.ReadString(); string lastName = sr.ReadString(); string email = sr.ReadString(); string password = sr.ReadString(); string userName = sr.ReadString(); bool canDeleteMsg = sr.ReadBoolean(); bool canDeleteTopic = sr.ReadBoolean(); bool canBanUser = sr.ReadBoolean(); List <string> notification = new List <string>(); int numOfNotification = Int32.Parse(sr.ReadString()); for (int i = 0; i < numOfNotification; i++) { notification.Add(sr.ReadString()); } List <string> subForumList = new List <string>(); int numOfSubForum = Int32.Parse(sr.ReadString()); for (int i = 0; i < numOfSubForum; i++) { subForumList.Add(sr.ReadString()); } RegisteredUser user = new RegisteredUser(firstName, lastName, email, password, userName, canDeleteMsg, canDeleteTopic, canBanUser, notification, subForumList); this.forum.users.Add(user.UserName, user); } } } }
//add this forum to sub forum list in the user internal void follow(RegisteredUser user, string forumName) { //add the forum to the sub list of the user user.SubForumsList.Add(forumName); }