예제 #1
0
 private void CheckSanctions(int userId, SanctionType sanctionType)
 {
     Ensure.Bool.IsFalse(_sanctionRepository.GetAllOfUser(userId).ToList()
                         .Exists(s => s.Type.Equals(sanctionType) && s.IsActive), nameof(CheckSanctions),
                         opt => opt.WithException(
                             new ActionIsNotAllowWithSanctionsException(SanctionType.NotAllowToEditProfile)));
 }
예제 #2
0
        public IEnumerable <SanctionView> GetAllActiveOfUser(int userId)
        {
            Ensure.Any.IsNotNull(_userRepository.GetUserById(userId), nameof(GetAllOfUser),
                                 opt => opt.WithException(new UserNotFoundException(userId)));

            var username  = _userRepository.GetUserById(userId).UserProfile.Name;
            var sanctions = new List <SanctionView>();

            _sanctionRepository.GetAllOfUser(userId).Where(s => s.IsActive).ToList().ForEach(s =>
            {
                sanctions.Add(new SanctionView(s.Id, s.BrokenRule, s.UserId, username, s.ModeratorId, s.IsTemporary,
                                               s.ExpirationDate, s.Type, s.IsActive));
            });

            return(sanctions);
        }
예제 #3
0
        private void CheckSanctions(int userId, int groupId)
        {
            var doesSanctionAllowAction = _sanctionRepository.GetAllOfUser(userId).ToList()
                                          .Exists(s => s.IsActive && s.Type.Equals(SanctionType.NotAllowToJoinGroup));

            var hasUserInvitation = _userRepository.GetUserById(userId).Invitations.ToList()
                                    .Exists(i => i.GroupId == groupId);

            Ensure.Bool.IsFalse(doesSanctionAllowAction && !hasUserInvitation, nameof(CheckSanctions),
                                opt => opt.WithException(new ActionIsNotAllowWithSanctionsException(SanctionType.NotAllowToJoinGroup)));
        }