/// <summary> /// Get from database all conversation related of the user /// </summary> private void BindData() { var listMessagesFrom = MessageComponent.GetMessagesFrom(UserInfo.UserID).ToList(); var usersTo = (from s in listMessagesFrom select s.ToUserId).Distinct(); var listMessagesTo = MessageComponent.GetMessagesTo(UserInfo.UserID).ToList(); var usersFrom = (from s in listMessagesTo select s.FromUserId).Distinct(); var ListUsersConversations = usersFrom.Concat(usersTo).Distinct(); List <UserProperty> list = new List <UserProperty>(); foreach (int id in ListUsersConversations) { UserPropertyComponent userProperty = new UserPropertyComponent(id); list.Add(userProperty.UserProperty); } if (list.Count <= 0) { noMessageContainer.Visible = true; } else { noMessageContainer.Visible = false; } rpConversations.DataSource = list; rpConversations.DataBind(); }
public List <MessageModel> GetListFrom(int rows = 10, int page = 0) { try { var portal = PortalController.GetCurrentPortalSettings(); var currentUser = DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo(); if (currentUser.IsInRole("Registered Users")) { var result = MessageComponent.GetMessagesFrom(currentUser.UserID).OrderByDescending(p => p.DateCreated); var totalCount = result.Count(); var totalPages = (int)Math.Ceiling((double)totalCount / rows); var prevLink = page > 0 ? string.Format("/messages/GetListFrom?rows={0}&page={1}", rows, page - 1) : ""; var nextLink = page < totalPages - 1 ? string.Format("/messages/GetListFrom?rows={0}&page={1}", rows, page + 1) : ""; List <MessageModel> MessageModel = new List <MessageModel>(); foreach (var resultTmp in result.Skip(rows * page).Take(rows).ToList()) { MessageModel.Add(new MessageModel() { MessageId = resultTmp.MessageId, Message = resultTmp.Message1, FromUserId = Convert.ToInt32(resultTmp.FromUserId), ToUserId = Convert.ToInt32(resultTmp.ToUserId), CreatedDate = Convert.ToDateTime(resultTmp.DateCreated), DateRead = Convert.ToDateTime(resultTmp.DateRead) }); } var paginationHeader = new { TotalCount = totalCount, TotalPages = totalPages, PrevPageLink = prevLink, NextPageLink = nextLink }; System.Web.HttpContext.Current.Response.Headers.Add("X-Pagination", Newtonsoft.Json.JsonConvert.SerializeObject(paginationHeader)); return(MessageModel); } throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Unauthorized)); } catch (HttpResponseException e) { throw e; } catch (Exception ee) { DotNetNuke.Services.Exceptions.Exceptions.LogException(ee); throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError)); } }