public async Task <List <PrivateMessageEntity> > GetPrivateMessages(int page) { var privateMessageEntities = new List <PrivateMessageEntity>(); var url = Constants.PRIVATE_MESSAGES; if (page > 0) { url = Constants.PRIVATE_MESSAGES + string.Format(Constants.PAGE_NUMBER, page); } HtmlDocument doc = (await _webManager.GetData(url)).Document; HtmlNode forumNode = doc.DocumentNode.Descendants("tbody").FirstOrDefault(); foreach ( HtmlNode threadNode in forumNode.Descendants("tr")) { var threadEntity = new PrivateMessageEntity(); threadEntity.Parse(threadNode); privateMessageEntities.Add(threadEntity); } return(privateMessageEntities); }
/// <summary> /// Populates the page with content passed during navigation. Any saved state is also /// provided when recreating a page from a prior session. /// </summary> /// <param name="sender"> /// The source of the event; typically <see cref="NavigationHelper"/> /// </param> /// <param name="e">Event data that provides both the navigation parameter passed to /// <see cref="Frame.Navigate(Type, Object)"/> when this page was initially requested and /// a dictionary of state preserved by this page during an earlier /// session. The state will be null the first time a page is visited.</param> private async void navigationHelper_LoadState(object sender, LoadStateEventArgs e) { var stringJson = (String)e.NavigationParameter; _privateMessageEntity = JsonConvert.DeserializeObject <PrivateMessageEntity>(stringJson); PrivateMessageWebView.NavigateToString(await _privateMessageManager.GetPrivateMessageHtml(_privateMessageEntity.MessageUrl)); }
private void Thread_OnClick(object sender, ItemClickEventArgs e) { var clickedItem = (PrivateMessageEntity)e.ClickedItem; _lastSelectedItem = clickedItem; Locator.ViewModels.PrivateMessageVm.NavigateToPrivateMessagePageCommand.Execute(e); if (AdaptiveStates.CurrentState == NarrowState) { // Use "drill in" transition for navigating from master list to detail view App.RootFrame.Navigate(typeof(PrivateMessagePage), null, new DrillInNavigationTransitionInfo()); } else { // Play a refresh animation when the user switches detail items. //EnableContentTransitions(); } }
private void Thread_OnClick(object sender, ItemClickEventArgs e) { var clickedItem = (PrivateMessageEntity)e.ClickedItem; _lastSelectedItem = clickedItem; Locator.ViewModels.PrivateMessageVm.NavigateToPrivateMessagePageCommand.Execute(e); if (AdaptiveStates.CurrentState == NarrowState) { // Use "drill in" transition for navigating from master list to detail view App.RootFrame.Navigate(typeof(PrivateMessagePage), null, new DrillInNavigationTransitionInfo()); } else { // Play a refresh animation when the user switches detail items. //EnableContentTransitions(); } }
public async Task AddMessageAsync(ChatMessage chatMessage) { var chat = await _messageEntityRepository.Query().FirstOrDefaultAsync(r => r.PrivatChatId == chatMessage.ChatID); if (chat.Equals(null)) { var newMessage = new PrivateMessageEntity { PrivatChatId = new Guid(), Content = chatMessage.Message, PrivateChat = new PrivateChatEntity { FirstUserInfoId = new Guid(chatMessage.FirstUserId), SecondUserInfoId = new Guid(chatMessage.SecondUserId) }, }; await _messageEntityRepository.InsertAsync(newMessage); } chat.Content = chatMessage.Message; await _messageEntityRepository.InsertAsync(chat); }
protected void Page_Load(object sender, EventArgs e) { if (!HttpContext.Current.User.Identity.IsAuthenticated) { FormsAuthentication.RedirectToLoginPage(); } var userId = Request.Cookies["SmacCookie"]["UserId"]; this.userRole.Value = Database.Helpers.GetUserRole(userId).ToString(); this.newMessages.Value = PrivateMessageEntity.CheckForNewMessages(userId).ToString(); if (Session["UpdateCookie"] != null && Session["UpdateCookie"].ToString() == "yes") { FormsAuthenticationTicket tkt; string cookiestr; HttpCookie ck; tkt = new FormsAuthenticationTicket(1, Session["UserName"].ToString(), DateTime.Now, DateTime.Now.AddMinutes(60), false, ""); cookiestr = FormsAuthentication.Encrypt(tkt); ck = new HttpCookie("SmacCookie", cookiestr); StringBuilder sb = new StringBuilder(); var genders = GenderEntity.GetGenders(); genders.ForEach(t => sb.Append(t.GenderType.ToString() + ":")); sb.Remove(sb.Length - 1, 1); ck.Values.Add("UserId", Session["UserId"].ToString()); ck.Values.Add("FirstName", Session["FirstName"].ToString()); ck.Values.Add("MiddleName", Session["MiddleName"].ToString()); ck.Values.Add("LastName", Session["LastName"].ToString()); ck.Values.Add("PhoneNumber", Session["PhoneNumber"].ToString()); ck.Values.Add("Email", Session["Email"].ToString()); ck.Values.Add("UserName", Session["UserName"].ToString()); ck.Values.Add("Gender", Session["Gender"].ToString()); ck.Values.Add("SchoolName", Session["SchoolName"].ToString()); ck.Values.Add("SchoolId", Session["SchoolId"].ToString()); ck.Values.Add("Genders", sb.ToString()); Response.Cookies.Add(ck); Session["UpdateCookie"] = "no"; } else { Session["UserId"] = Request.Cookies["SmacCookie"]["UserId"]; Session["FirstName"] = Request.Cookies["SmacCookie"]["FirstName"]; Session["MiddleName"] = Request.Cookies["SmacCookie"]["MiddleName"]; Session["LastName"] = Request.Cookies["SmacCookie"]["LastName"]; Session["PhoneNumber"] = Request.Cookies["SmacCookie"]["PhoneNumber"]; Session["Email"] = Request.Cookies["SmacCookie"]["Email"]; Session["UserName"] = Request.Cookies["SmacCookie"]["UserName"]; Session["Gender"] = Request.Cookies["SmacCookie"]["Gender"]; Session["SchoolName"] = Request.Cookies["SmacCookie"]["SchoolName"]; Session["SchoolId"] = Request.Cookies["SmacCookie"]["SchoolId"]; Session["Genders"] = Request.Cookies["SmacCookie"]["Genders"]; if (Session["SchoolName"] != null) { schoolBanner.Visible = true; schoolBanner.InnerHtml = Request.Cookies["SmacCookie"]["SchoolName"]; } } }
protected void Page_Load(object sender, EventArgs e) { var userId = Request.Cookies["SmacCookie"]["UserId"]; if (!IsPostBack) { if (Request.QueryString["msgId"] == null) { var msgs = PrivateMessageEntity.GetLatestPrivateMessages(userId, 1, 20); var list = new List <string> { "Id", "Name", "Date", "LastMessage", "UnRead" }; DataTable table = new DataTable(); foreach (var item in list) { table.Columns.Add(item, typeof(string)); } //Now add some rows(which will be repeated in the ItemTemplate) foreach (var msg in msgs) { table.Rows.Add( msg.PrivateMessageId, msg.ToUser == userId ? msg.SenderFN + " " + msg.SenderLN : msg.ReceiverFN + " " + msg.ReceiverLN, msg.DateSent, msg.Content, msg.DateRead == null && msg.ToUser == userId ? "true" : "false"); } messageListView.DataSource = table; messageListView.DataBind(); } else { var origMsg = PrivateMessageEntity.GetPrivateMessage(int.Parse(Request.QueryString["msgId"])); var msgs = PrivateMessageEntity.GetPrivateMessageThread(origMsg.ToUser, origMsg.FromUser); var toUser = userId == origMsg.ToUser ? origMsg.FromUser : origMsg.ToUser; this.toUserId.Value = toUser; var toUserName = toUser != origMsg.FromUser ? origMsg.UserSentTo.FirstName + " " + origMsg.UserSentTo.LastName : origMsg.UserSentFrom.FirstName + " " + origMsg.UserSentFrom.LastName; this.threadTitle.Text = "Conversation between you and " + toUserName; PrivateMessageEntity.MarkAllConvosAsRead(userId, toUser); var list = new List <string> { "Date", "Author", "Content" }; DataTable table = new DataTable(); foreach (var item in list) { table.Columns.Add(item, typeof(string)); } //Now add some rows(which will be repeated in the ItemTemplate) foreach (var msg in msgs) { table.Rows.Add( msg.DateSent, msg.FromUser == userId ? "You" : msg.UserSentFrom.FirstName + " " + msg.UserSentFrom.LastName, msg.Content ); } convoListView.DataSource = table; convoListView.DataBind(); } } }