private void lst_sender_SelectedIndexChanged(object sender, EventArgs e) { List <MessagesClass.Message> messageRecievedSent = new List <MessagesClass.Message>(); HashSet <MessagesClass.Message> messageSent = new HashSet <MessagesClass.Message>(); var usr = new UsersClass.User(); MessagesClass ms = new MessagesClass(); if (lst_sender.SelectedIndex == -1) { return; } usr = (UsersClass.User)lst_sender.Items[lst_sender.SelectedIndex]; if (NumberOfMembers > 1) { return; } else { lst_inbox.Items.Clear(); DataTable dtUserId = new DataTable(); dtUserId = ms.MembershipsWithRoomId(roomsx.Id); var UserId = (int)dtUserId.Rows[0]["user_id"]; foreach (var messageRecieved0 in ms.GetMessagesOfRoom(usr.Id, roomsx.Id)) { if (roomsx.Id == messageRecieved0.Room_Id) { //lst_inbox.Items.Add(messageRecieved + " *recieved*"); messageRecievedSent.Add(messageRecieved0); } } foreach (DataRow membership in ms.MembershipsWithUserId(usr.Id).Rows) { DataTable dtRoomId = new DataTable(); dtRoomId = ms.CompareUserNameAndRoomName((int)membership["room_id"]); if (dtRoomId != null) { var RoomId = (int)dtRoomId.Rows[0]["id"]; foreach (var messageSent0 in ms.GetMessagesOfRoom(UserId, RoomId)) { if (roomsx.Id != messageSent0.Room_Id) { //lst_inbox.Items.Add(messageSent + " *sent*"); messageRecievedSent.Add(messageSent0); } } } } foreach (var item in messageRecievedSent) { lst_inbox.Items.Add(item); } var list = lst_inbox.Items.Cast <MessagesClass.Message>().OrderBy(i => i.Date).ToList(); lst_inbox.Items.Clear(); foreach (MessagesClass.Message listItem in list) { lst_inbox.Items.Add(listItem.Text + " (" + listItem.Date + ")"); } } }
//HashSet<UsersClass.User> usersWithMessages = new HashSet<UsersClass.User>(); private void timer1_Tick(object sender, EventArgs e) { // //timer1.Enabled=false; UsersClass user = new UsersClass(); MessagesClass ms = new MessagesClass(); var Users = user.FetchSenderUsers(); HashSet <UsersClass.User> usersWithMessages = new HashSet <UsersClass.User>(); ////foreach (var message in ms.GetMessagesOfUser(CurrentUserID, PollMessagesSince)) // ////{ // //// InboxIndexId.Add(i, message.Sender_Id); // //// i++; // //// lst_inbox.Items.Add(message); // //// usersWithMessages.Add(Users[message.Sender_Id]); // ////} // ////foreach (var usr in usersWithMessages) // ////{ // //// if (SenderIndexId.ContainsKey(usr.Id) == false) // //// { // //// SenderIndexId.Add(usr.Id, j); // //// j++; // //// lst_sender.Items.Add(usr); // //// } // ////} // ////btn_CountOfInbox.Text = lst_inbox.Items.Count.ToString(); // ////################################ //lst_inbox.Items.Clear(); //DataTable dtUserId = new DataTable(); //dtUserId = ms.MembershipsWithRoomId(roomsx.Id); //var UserId = (int)dtUserId.Rows[0]["user_id"]; //foreach (var messageRecieved0 in ms.GetMessagesOfRoom(usr.Id, roomsx.Id)) //{ // if (roomsx.Id == messageRecieved0.Room_Id) // { // //lst_inbox.Items.Add(messageRecieved + " *recieved*"); // messageRecievedSent.Add(messageRecieved0); // } //} //foreach (DataRow membership in ms.MembershipsWithUserId(usr.Id).Rows) //{ // DataTable dtRoomId = new DataTable(); // dtRoomId = ms.CompareUserNameAndRoomName((int)membership["room_id"]); // if (dtRoomId != null) // { // var RoomId = (int)dtRoomId.Rows[0]["id"]; // foreach (var messageSent0 in ms.GetMessagesOfRoom(UserId, RoomId)) // { // if (roomsx.Id != messageSent0.Room_Id) // { // //lst_inbox.Items.Add(messageSent + " *sent*"); // messageRecievedSent.Add(messageSent0); // } // } // } //} //foreach (var item in messageRecievedSent) //{ // lst_inbox.Items.Add(item); //} //var list = lst_inbox.Items.Cast<MessagesClass.Message>().OrderBy(i => i.Date).ToList(); //lst_inbox.Items.Clear(); //foreach (MessagesClass.Message listItem in list) //{ // lst_inbox.Items.Add(listItem.Text + " (" + listItem.Date + ")"); //} //################################################### DateTime next = DateTime.Now; var rooms = new MessagesClass.Rooms(); if (cmb_rooms.SelectedIndex == -1) { foreach (DataRow membership in ms.MembershipsWithUserId(CurrentUserID).Rows) { DataTable dt = new DataTable(); dt = ms.CompareUserNameAndRoomName((int)membership["room_id"]); if (dt != null) { var RoomId = (int)dt.Rows[0]["id"]; roomsx.Id = RoomId; foreach (var message in ms.GetMessagesOfRoom(RoomId, PollMessagesSince)) { //InboxIndexId.Add(i, message.Sender_Id); //i++; //lst_inbox.Items.Add(message); usersWithMessages.Add(Users[message.Sender_Id]); } //var list = lst_inbox.Items.Cast<MessagesClass.Message>().OrderBy(i => i.Date).ToList(); //lst_inbox.Items.Clear(); //foreach (MessagesClass.Message listItem in list) //{ // lst_inbox.Items.Add(listItem.Text + " (" + listItem.Date + ")"); //} //var list2 = lst_sender.Items.Cast<UsersClass.User>().OrderBy(item => item.Name).ToList(); //lst_sender.Items.Clear(); //foreach (UsersClass.User listItem in list2) //{ // lst_sender.Items.Add(listItem); //} } foreach (var usr in usersWithMessages) { List <string> x = new List <string>(); //if (InboxIndexId.ContainsKey(usr.Id) == false) //{ // SenderIndexId.Add(usr.Id, j); // j++; //} if (lst_sender.Items.Count == 0) { lst_sender.Items.Add(usr); } else { for (int i = 0; i < lst_sender.Items.Count; i++) { x.Add(lst_sender.Items[i].ToString()); } if (x.Contains(usr.ToString()) == false) { lst_sender.Items.Add(usr); } } } } } //SelectedIndex!=-1 else { rooms = (MessagesClass.Rooms)cmb_rooms.Items[cmb_rooms.SelectedIndex]; //var Rooms = ms.FetchRooms(); //lst_inbox.Items.Clear(); //lst_sender.Items.Clear(); if (rooms.NumberOfMembers == 1) { DataTable dt = new DataTable(); dt = ms.MembershipsWithRoomId(rooms.Id); foreach (DataRow membership in ms.MembershipsWithUserId((int)dt.Rows[0]["user_id"]).Rows) { foreach (var message in ms.GetMessagesOfRoom((int)membership["room_id"], PollMessagesSince)) { //InboxIndexId.Add(i, message.Sender_Id); //i++; lst_inbox.Items.Add(message); usersWithMessages.Add(Users[message.Sender_Id]); } } //var list = lst_inbox.Items.Cast<MessagesClass.Message>().OrderBy(i => i.Date).ToList(); //lst_inbox.Items.Clear(); //foreach (MessagesClass.Message listItem in list) //{ // lst_inbox.Items.Add(listItem.Text + " (" + listItem.Date + ")"); //} foreach (var usr in usersWithMessages) { List <string> x = new List <string>(); //if (InboxIndexId.ContainsKey(usr.Id) == false) //{ // SenderIndexId.Add(usr.Id, j); // j++; //} if (lst_sender.Items.Count == 0) { lst_sender.Items.Add(usr); } else { for (int i = 0; i < lst_sender.Items.Count; i++) { x.Add(lst_sender.Items[i].ToString()); } if (x.Contains(usr.ToString()) == false) { lst_sender.Items.Add(usr); } } } //var list2 = lst_sender.Items.Cast<UsersClass.User>()/*.OrderBy(item => item.Name).ToList()*/; //lst_sender.Items.Clear(); //foreach (UsersClass.User listItem in list2) //{ // lst_sender.Items.Add(listItem); //} } //NumberOfMembers > 1 else { foreach (var message in ms.GetMessagesOfRoom(rooms.Id, PollMessagesSince)) { //if (InboxIndexId.ContainsKey(i) == false) //{ // InboxIndexId.Add(i, message.Sender_Id); // i++; //} lst_inbox.Items.Add(message); usersWithMessages.Add(Users[message.Sender_Id]); } //var list = lst_inbox.Items.Cast<MessagesClass.Message>().OrderBy(i => i.Date).ToList(); //lst_inbox.Items.Clear(); //foreach (MessagesClass.Message listItem in list) //{ // lst_inbox.Items.Add(listItem.Text + " (" + listItem.Date + ")"); //} //var list = lst_inbox.Items.Cast<MessagesClass.Message>().OrderBy(item => item.Date).ToList(); //lst_inbox.Items.Clear(); //foreach (MessagesClass.Message listItem in list) //{ // lst_inbox.Items.Add(listItem); //} //var list2 = lst_sender.Items.Cast<UsersClass.User>().OrderBy(item => item.Name).ToList(); //lst_sender.Items.Clear(); //foreach (UsersClass.User listItem in list2) //{ // lst_sender.Items.Add(listItem); //} foreach (var usr in usersWithMessages) { List <string> x = new List <string>(); //if (InboxIndexId.ContainsKey(usr.Id) == false) //{ // SenderIndexId.Add(usr.Id, j); // j++; //} if (lst_sender.Items.Count == 0) { lst_sender.Items.Add(usr); } else { for (int i = 0; i < lst_sender.Items.Count; i++) { x.Add(lst_sender.Items[i].ToString()); } if (x.Contains(usr.ToString()) == false) { lst_sender.Items.Add(usr); } } } } } PollMessagesSince = next; // //btn_CountOfInbox.Text = lst_inbox.Items.Count.ToString(); // //################################ }