public async Task <ActionResult> Mentions(ContentType?type = null, int?page = null)
        {
            //ViewBag.PmView = "inbox";
            //ViewBag.Title = "Mentions";

            var contentType = MessageTypeFlag.CommentMention | MessageTypeFlag.SubmissionMention;

            if (type.HasValue)
            {
                contentType   = type.Value == ContentType.Comment ? MessageTypeFlag.CommentMention : MessageTypeFlag.SubmissionMention;
                ViewBag.Title = type.ToString() + " Mentions";
            }

            var q = new QueryMessages(User, contentType, MessageState.All, true).SetUserContext(User);

            q.PageNumber = SetPage(page);

            var result = await q.ExecuteAsync();

            var pagedList = new PaginatedList <Message>(result, q.PageNumber, q.PageCount);

            SetMenuNavigationModel("Mentions", MenuType.UserMessages);

            return(View("Index", pagedList));
        }
示例#2
0
        public async Task GetUnreadInbox()
        {
            var user = TestHelper.SetPrincipal(userName);
            var q    = new QueryMessages(user, MessageTypeFlag.All, MessageState.Unread, false).SetUserContext(user);
            var m    = await q.ExecuteAsync();

            Assert.IsNotNull(m, "Assert 1");

            var qc = new QueryMessageCounts(user, MessageTypeFlag.All, MessageState.Unread).SetUserContext(user);
            var mc = await qc.ExecuteAsync();

            Assert.IsNotNull(mc, "Assert 2");
        }
示例#3
0
        public async Task <ActionResult> Sent(int?page = null)
        {
            ViewBag.PmView = "sent";
            ViewBag.Title  = "Sent";

            var q = new QueryMessages(MessageTypeFlag.Sent, MessageState.All, true);

            q.PageNumber = SetPage(page);
            var result = await q.ExecuteAsync();

            var pagedList = FakePaging(result, q.PageNumber, q.PageCount);

            return(View("Index", pagedList));
        }
        public async Task <ActionResult> SubverseIndex(string subverse, MessageTypeFlag type, MessageState?state = null, int?page = null)
        {
            if (!(type == MessageTypeFlag.Private || type == MessageTypeFlag.Sent))
            {
                return(RedirectToAction("Index", "Home"));
            }
            if (string.IsNullOrEmpty(subverse))
            {
                return(RedirectToAction("Index", "Home"));
            }
            if (!ModeratorPermission.HasPermission(User, subverse, ModeratorAction.ReadMail))
            {
                return(RedirectToAction("Index", "Home"));
            }

            ViewBag.Context = new MessageContextViewModel()
            {
                ViewerContext = new UserDefinition()
                {
                    Name = subverse, Type = IdentityType.Subverse
                }
            };

            var qSub = new QuerySubverse(subverse);
            var sub  = await qSub.ExecuteAsync();

            if (sub == null)
            {
                return(ErrorView(ErrorViewModel.GetErrorViewModel(ErrorType.SubverseNotFound)));
            }
            //ViewBag.PmView = "mod";
            //ViewBag.Title = string.Format("v/{0} {1}", sub.Name, (type == MessageTypeFlag.Sent ? "Sent" : "Inbox"));

            var q = new QueryMessages(sub.Name, IdentityType.Subverse, type, MessageState.All, false).SetUserContext(User);

            q.PageNumber = SetPage(page);
            var result = await q.ExecuteAsync();

            var pagedList = new PaginatedList <Message>(result, q.PageNumber, q.PageCount);

            //TODO: This needs to be the Smail Menu, right now it shows user menu
            var name = type == MessageTypeFlag.Sent ? "Sent" : "Inbox";

            ViewBag.Title = name;
            SetMenuNavigationModel(name, MenuType.Smail, subverse);

            return(View("Index", pagedList));
        }
        public async Task <ActionResult> Sent(int?page = null)
        {
            //ViewBag.PmView = "sent";
            //ViewBag.Title = "Sent";

            var q = new QueryMessages(User, MessageTypeFlag.Sent, MessageState.All, true).SetUserContext(User);

            q.PageNumber = SetPage(page);
            var result = await q.ExecuteAsync();

            var pagedList = new PaginatedList <Message>(result, q.PageNumber, q.PageCount);

            SetMenuNavigationModel("Sent", MenuType.UserMessages);
            ViewBag.Title = "Sent";

            return(View("Index", pagedList));
        }
示例#6
0
        public async Task <ActionResult> SubverseIndex(string subverse, MessageTypeFlag type, MessageState?state = null, int?page = null)
        {
            if (!(type == MessageTypeFlag.Private || type == MessageTypeFlag.Sent))
            {
                return(RedirectToAction("Index", "Home"));
            }
            if (string.IsNullOrEmpty(subverse))
            {
                return(RedirectToAction("Index", "Home"));
            }
            if (!ModeratorPermission.HasPermission(User.Identity.Name, subverse, ModeratorAction.ReadMail))
            {
                return(RedirectToAction("Index", "Home"));
            }

            ViewBag.Context = new MessageContextViewModel()
            {
                ViewerContext = new UserDefinition()
                {
                    Name = subverse, Type = IdentityType.Subverse
                }
            };

            var qSub = new QuerySubverse(subverse);
            var sub  = await qSub.ExecuteAsync();

            ViewBag.PmView = "mod";
            ViewBag.Title  = string.Format("v/{0} {1}", sub.Name, (type == MessageTypeFlag.Sent ? "Sent" : "Inbox"));

            var q = new QueryMessages(sub.Name, IdentityType.Subverse, type, MessageState.All, false);

            q.PageNumber = SetPage(page);
            var result = await q.ExecuteAsync();

            var pagedList = FakePaging(result, q.PageNumber, q.PageCount);

            return(View("Index", pagedList));
        }
示例#7
0
        public async Task <ActionResult> Mentions(ContentType?type = null, int?page = null)
        {
            ViewBag.PmView = "inbox";
            ViewBag.Title  = "Mentions";

            var contentType = MessageTypeFlag.CommentMention | MessageTypeFlag.SubmissionMention;

            if (type.HasValue)
            {
                contentType   = type.Value == ContentType.Comment ? MessageTypeFlag.CommentMention : MessageTypeFlag.SubmissionMention;
                ViewBag.Title = type.ToString() + " Mentions";
            }

            var q = new QueryMessages(contentType, MessageState.All, true);

            q.PageNumber = SetPage(page);

            var result = await q.ExecuteAsync();

            var pagedList = FakePaging(result, q.PageNumber, q.PageCount);

            return(View("Index", pagedList));
        }
示例#8
0
        public override void ClassInitialize()
        {
            var user2 = "TestUser01";
            //create user inbox
            Message message = null;

            var user = TestHelper.SetPrincipal(userName);
            var msg  = "1";
            var cmd  = new SendMessageCommand(new Domain.Models.SendMessage()
            {
                Subject = "Chain", Recipient = "TestUser01", Message = msg
            }).SetUserContext(user);
            var response = cmd.Execute().Result;

            VoatAssert.IsValid(response);

            message = response.Response;
            messages.Add(message);

            user = TestHelper.SetPrincipal(user2);
            //Find message
            var query = new QueryMessages(user, MessageTypeFlag.Private, MessageState.Unread, false).SetUserContext(user);
            var inbox = query.Execute();

            VoatAssert.IsValid(inbox);
            message = inbox.FirstOrDefault(x => x.Sender == USERNAMES.User50CCP && x.Content == msg);
            Assert.IsNotNull(message, "Can not find message in recipient inbox 1");

            msg = "1.1";
            var cmdReply      = new SendMessageReplyCommand(message.ID, msg).SetUserContext(user);
            var responseReply = cmdReply.Execute().Result;

            VoatAssert.IsValid(responseReply);
            messages.Add(message);


            user = TestHelper.SetPrincipal(userName);
            //Find message
            query = new QueryMessages(user, MessageTypeFlag.Private, MessageState.Unread, false).SetUserContext(user);
            inbox = query.Execute();
            VoatAssert.IsValid(inbox);
            message = inbox.FirstOrDefault(x => x.Sender == user2 && x.Content == msg);
            Assert.IsNotNull(message, "Can not find message in recipient inbox 2");

            msg           = "1.1.1";
            cmdReply      = new SendMessageReplyCommand(message.ID, msg).SetUserContext(user);
            responseReply = cmdReply.Execute().Result;
            VoatAssert.IsValid(responseReply);

            message = responseReply.Response;
            messages.Add(message);

            user = TestHelper.SetPrincipal(user2);
            //Find message
            query = new QueryMessages(user, MessageTypeFlag.Private, MessageState.Unread, false).SetUserContext(user);
            inbox = query.Execute();
            VoatAssert.IsValid(inbox);
            message = inbox.FirstOrDefault(x => x.Sender == USERNAMES.User50CCP && x.Content == msg);
            Assert.IsNotNull(message, "Can not find message in recipient inbox 3");

            msg           = "1.1.1.1";
            cmdReply      = new SendMessageReplyCommand(message.ID, msg).SetUserContext(user);
            responseReply = cmdReply.Execute().Result;
            VoatAssert.IsValid(responseReply);

            message = responseReply.Response;
            messages.Add(message);
        }