Exemple #1
0
        public IDataResult <List <User> > GetAll()
        {
            var result = _userDal.Count();

            if (result <= 0)
            {
                return(new ErrorDataResult <List <User> >(Messages.NotFound()));
            }
            return(new SuccessDataResult <List <User> >(_userDal.GetAll()));
        }
Exemple #2
0
        /// <summary>
        /// Deletes the user by uuid
        /// </summary>
        /// <param name="requestingUser">The user that made the request</param>
        /// <param name="userUuidToDeleteUuid">The uuid of the user to remove</param>
        public async Task Delete(UserDto requestingUser, Guid userUuidToDeleteUuid)
        {
            UserDto dbUserToDelete = await _userDal.Find(userUuidToDeleteUuid);

            if (dbUserToDelete == null)
            {
                throw new KeyNotFoundException();
            }

            switch (requestingUser.AccountRole)
            {
            case AccountRole.SiteAdmin:
                int totalSiteAdmins = await _userDal.Count(AccountRole.SiteAdmin);

                if (totalSiteAdmins <= 1)
                {
                    throw new SiteAdminRequiredException();
                }
                _publisher.Publish(userUuidToDeleteUuid, RabbitMqRouting.DeleteUser, RabbitMqExchange.UserExchange);
                await _userDal.Delete(userUuidToDeleteUuid);

                break;

            case AccountRole.Admin when dbUserToDelete.AccountRole == AccountRole.User:
                _publisher.Publish(userUuidToDeleteUuid, RabbitMqRouting.DeleteUser, RabbitMqExchange.UserExchange);
                await _userDal.Delete(userUuidToDeleteUuid);

                break;

            case AccountRole.User when requestingUser.Uuid == userUuidToDeleteUuid:
                _publisher.Publish(userUuidToDeleteUuid, RabbitMqRouting.DeleteUser, RabbitMqExchange.UserExchange);
                await _userDal.Delete(userUuidToDeleteUuid);

                break;

            case AccountRole.Undefined:
                break;

            default:
                throw new UnauthorizedAccessException();
            }
        }
 public int UserCount(Expression <Func <User, bool> > filter = null)
 {
     return(_userdal.Count(filter));
 }