// Helper method for filling dummy data into the Conversation table protected void btnInsertCommand_Click(object sender, EventArgs e) { Conversation newConvo = new Conversation(); newConvo.ParticipantA_ID = 12; newConvo.ParticipantB_ID = 1; Message msg1 = new Message(); msg1.SenderID = 12; msg1.Timestamp = DateTime.Now; msg1.Content = "How did you get on on Saturday"; Message msg2 = new Message(); msg2.SenderID = 1; msg2.Timestamp = DateTime.Now; msg2.Content = "What was on Saturday?"; Message msg3 = new Message(); msg3.SenderID = 1; msg3.Timestamp = DateTime.Now; msg3.Content = "Wait, oh the cinema. Yeah it was nice. Good movie, highly recommended."; Message msg4 = new Message(); msg4.SenderID = 12; msg4.Timestamp = DateTime.Now; msg4.Content = "Which film was it again?"; newConvo.MessagesList.Add(msg1); newConvo.MessagesList.Add(msg2); newConvo.MessagesList.Add(msg3); newConvo.MessagesList.Add(msg4); messageManager.InsertIntoConvoTable(newConvo); }
public bool AddNewConversation(Conversation newConvo) { bool isAddedSuccessfully = false; try { messageManager = new DALMessageMngr(); if (messageManager.AddNewConversation(newConvo)) { isAddedSuccessfully = true; } } catch (Exception ex) { throw; } return isAddedSuccessfully; }
protected void imgBtnSendMessage_Click(object sender, ImageClickEventArgs e) { /* * This button does three things: * 1. It saves the latest message to selectedConvo.MessageList. * 2. It sends the entire conversation to the database to be refreshed and then stored. * 3. It refreshes the repeater. * * The second point seems excessive as there will therefore be a database call every time * a message is sent. But for users who expect to be able to message one another, * a narrow frame of time between messages being sent and received, * and therefore stored in the database and fetched, is essential. * */ try { // Point 1. Message newMessage = new Message(); newMessage.SenderID = user.ID; newMessage.Timestamp = DateTime.Now; newMessage.Content = txtNewMessage.Text; selectedConversation.MessagesList.Add(newMessage); // Point 2. selectedConversation = messageManager.UpdateConvoTable(selectedConversation); // Point 3. PopulateMessageThread(selectedConversation); txtNewMessage.Text = ""; } catch (Exception) { Page.ClientScript.RegisterStartupScript(this.GetType(), "Error", "alert('Error sending message. Message not delivered.')", true); throw; } }
protected void closeThisMessage_Click1(object sender, EventArgs e) { MessageThread.Visible = false; mySummaries.Visible = true; selectedConversation = null; }
private void PopulateMessageThread(Conversation convo) { /* This fills rptconvoMessages with all the messages in selectedConvo * and assigns CSS classes according to the message's sender. * */ rptconvoMessages.DataSource = convo.MessagesList; rptconvoMessages.DataBind(); }
protected void Page_Load(object sender, EventArgs e) { // Instantiate selectedConversation, if required. if (selectedConversation == null) { selectedConversation = new Conversation(); } // Check if query string contains ConversationID value String selectedConvoID = Request.ServerVariables["QUERY_STRING"]; if (selectedConvoID.Length > 0 && conversationList.Count > 0) { /* If a conversation was selected, retreive the selected conversation * according to its ID in conversation<List> and present its messages to the user. * */ int selectedIDasInt; if (int.TryParse(selectedConvoID, out selectedIDasInt)) { for (int i = 0; i < conversationList.Count; i++) { if (conversationList.ElementAt(i).ConversationID.Equals(selectedIDasInt)) { selectedConversation = conversationList.ElementAt(i); break; } } mySummaries.Visible = false; MessageThread.Visible = true; PopulateMessageThread(selectedConversation); } } try { userManager = new BLLUserMngr(); user = userManager.BLLGetCurrentUser(Session); messageManager = new BLLMessageMngr(user.ID); getMessages(); } catch (Exception) { //Log error Response.Redirect("404.aspx"); } }
public Conversation UpdateConvoTable(Conversation selectedConvo) { selectedConvo = messageManager.UpdateConvoTable(selectedConvo); return selectedConvo; }
public void InsertIntoConvoTable(Conversation newConvo) { messageManager.InsertIntoConvoTable(newConvo); }