Ejemplo n.º 1
0
 public async Task ValidateMarkAsModeratedAsync(IModeratable moderatable)
 {
     if (!await CanMarkAsModeratedAsync(moderatable))
     {
         throw buildException();
     }
 }
Ejemplo n.º 2
0
        async Task deleteFromAnyModeratorPanelAsyn(IModeratable moderatable)
        {
            var checkable = await S.Db.PostsToCheck
                            .Where(e => e.Entity.Id == moderatable.Id && e.ResolvingTime == null)
                            .ToListAsync();

            foreach (var item in checkable)
            {
                item.ResolvingTime = DateTime.UtcNow; // Delete from every moderators panel
            }
        }
Ejemplo n.º 3
0
        public async Task <bool> CanMarkAsModeratedAsync(IModeratable entity)
        {
            var currentUser = await getCurrentUserOrNullAsync();

            if (currentUser == null || currentUser.Status.State != ProfileState.ACTIVE)
            {
                return(false);
            }
            else
            {
                return(await isNotDeletedAsync(entity) &&
                       (currentUser.Role == Role.MODERATOR ||
                        currentUser.Role > Role.MODERATOR && currentUser.Id == entity.Author.Id) &&
                       entity.ModerationInfo.State.IsOneOf(ModerationState.UNDER_MODERATION));
            }
        }