コード例 #1
0
        public IActionResult Index()
        {
            string userName = User.Identity.Name;

            var messages = _chatService.GetFilteredByUserName(userName).Select(message => new ChatListingModel
            {
                Id       = message.Id,
                Created  = message.Created,
                Messages = message.ChatRoom.Messages as IEnumerable <ChatMessageModel>
            });

            ChatIndexModel model = new ChatIndexModel
            {
                ChatList = messages
            };

            return(View(model));
        }
コード例 #2
0
ファイル: ChatService.cs プロジェクト: Lietuva2/LT2
        public ChatIndexModel GetIndexModel()
        {
            using (var context = usersSessionFactory.CreateContext())
            {
                var userId = MembershipSession.GetUser().DbId;
                var orgIds = MembershipSession.GetUser().OrganizationIds;
                var model  = new ChatIndexModel();
                model.Groups =
                    context.ChatGroups.Where(c => c.ChatMessages.Any() && (!c.IsPrivate || orgIds.Contains(c.OrganizationId))).OrderByDescending(m => m.ChatMessages.Max(cm => cm.Date))
                    .Select(g => new ChatGroupModel()
                {
                    Id           = g.Id,
                    Name         = g.Name,
                    Url          = g.Url,
                    MessageCount = g.ChatMessages.Count(),
                    Date         = g.ChatMessages.Max(m => m.Date),
                    Users        = g.ChatGroupUsers.Where(u => u.UserId != userId).Select(u => new ChatUser()
                    {
                        Id       = u.User.ObjectId,
                        DbId     = u.User.Id,
                        Name     = u.User.FirstName + " " + u.User.LastName,
                        IsOnline = u.User.ChatClients.Any()
                    })
                }).Take(20).ToList();

                model.Users = context.ChatClients.Where(c => c.User.Id != userId).Select(c => new ChatUser()
                {
                    Id       = c.User.ObjectId,
                    DbId     = c.User.Id,
                    Name     = c.User.FirstName + " " + c.User.LastName,
                    IsOnline = true
                }).Distinct().ToList();

                return(model);
            }
        }