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())); }
/// <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)); }