public DeleteMessagesCommand(string ownerName, IdentityType ownerType, MessageTypeFlag type, int?id = null)
 {
     this._ownerName = ownerName;
     this._ownerType = ownerType;
     this._type      = type;
     this._id        = id;
 }
예제 #2
0
 //public void SendCommentReplyNotice(string userName, MessageType type, int id)
 //{
 //    OnCommentReplyReceived?.Invoke(this, new MessageReceivedEventArgs() { UserName = userName, MessageType = type, ReferenceID = id });
 //}
 public void SendMessageNotice(string userName, string sendingUserName, MessageTypeFlag type, ContentType?referenceType, int?referenceID, string message = null)
 {
     OnMessageReceived?.Invoke(this, new MessageReceivedEventArgs()
     {
         TargetUserName = userName, SendingUserName = sendingUserName, MessageType = type, ReferenceType = referenceType, ReferenceID = referenceID, Message = message
     });
 }
예제 #3
0
 public QueryMessageBase(string ownerName, IdentityType ownerType, MessageTypeFlag type, MessageState state, bool markAsRead = true)
 {
     this._ownerName  = ownerName;
     this._ownerType  = ownerType;
     this._state      = state;
     this._markAsRead = markAsRead;
     this._type       = type;
 }
 public MarkMessagesCommand(string ownerName, IdentityType ownerType, MessageTypeFlag type, MessageState action, int?id = null)
 {
     this._ownerName = ownerName;
     this._ownerType = ownerType;
     this._type      = type;
     this._action    = action;
     this._id        = id;
 }
        public async Task <ActionResult> Mark(MessageTypeFlag type, MessageState markAction, int?id = null, string subverse = null)
        {
            var ownerName = User.Identity.Name;
            var ownerType = IdentityType.User;

            if (!string.IsNullOrEmpty(subverse))
            {
                ownerName = subverse.TrimSafe();
                ownerType = IdentityType.Subverse;
            }
            var cmd      = new MarkMessagesCommand(ownerName, ownerType, type, markAction, id).SetUserContext(User);
            var response = await cmd.Execute();

            return(JsonResult(response));
        }
        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));
        }
예제 #7
0
        public async Task <ActionResult> Mark(MessageTypeFlag type, MessageState markAction, int?id = null, string subverse = null)
        {
            var ownerName = User.Identity.Name;
            var ownerType = IdentityType.User;

            if (!string.IsNullOrEmpty(subverse))
            {
                ownerName = subverse.TrimSafe();
                ownerType = IdentityType.Subverse;
            }
            var cmd      = new MarkMessagesCommand(ownerName, ownerType, type, markAction, id);
            var response = await cmd.Execute();

            if (response.Success)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.OK));
            }
            else
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, response.Message));
            }
        }
예제 #8
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));
        }
 public QueryMessageCounts(IPrincipal user, MessageTypeFlag type, MessageState state)
     : base(user.Identity.Name, IdentityType.User, type, state)
 {
 }
예제 #10
0
 public QueryMessageCounts(MessageTypeFlag type, MessageState state)
     : base(type, state)
 {
 }
예제 #11
0
 public QueryMessages(string ownerName, IdentityType ownerType, MessageTypeFlag type, MessageState state, bool markAsRead = true)
     : base(ownerName, ownerType, type, state, markAsRead)
 {
 }
예제 #12
0
 public QueryMessages(MessageTypeFlag type, MessageState state, bool markAsRead = true)
     : base(type, state, markAsRead)
 {
 }
예제 #13
0
 public QueryMessageBase(MessageTypeFlag type, MessageState state, bool markAsRead = true)
     : this("", IdentityType.User, type, state, markAsRead)
 {
     this._ownerName = UserName;
     this._ownerType = IdentityType.User;
 }
 public MarkMessagesCommand(MessageTypeFlag type, MessageState action, int?id = null)
     : this(null, IdentityType.User, type, action, id)
 {
     this._ownerName = UserName;
     this._ownerType = IdentityType.User;
 }
예제 #15
0
 public QueryMessages(IPrincipal user, MessageTypeFlag type, MessageState state, bool markAsRead = true)
     : base(user.Identity.Name, IdentityType.User, type, state, markAsRead)
 {
 }
 public DeleteMessagesCommand(MessageTypeFlag type, int?id = null)
     : this(null, IdentityType.User, type, id)
 {
     this._ownerName = UserName;
     this._ownerType = IdentityType.User;
 }
 public QueryMessageCounts(string ownerName, IdentityType ownerType, MessageTypeFlag type, MessageState state)
     : base(ownerName, ownerType, type, state)
 {
 }