public PermissionType GetFilePermission(Guid fileId, Guid userId) { FilePermissionModel fpm = _unitOfWork.FilePermissionRepository .Find(p => p.User.Id == userId && p.File.Id == fileId) .FirstOrDefault(); return(fpm == null ? PermissionType.None : fpm.Value); }
public void SetFilePermission(Guid fileId, Guid ownerId, Guid userId, PermissionType permission) { FileModel fileModel = _unitOfWork.FileRepository.Get(fileId); if (fileModel == null) { throw new Exception(); } if (fileModel.OwnerId != ownerId) { throw new Exception(); } UserModel userModel = _unitOfWork.UserRepository.Get(userId); if (userModel == null) { throw new Exception(); } if (fileModel.OwnerId == userId) { throw new Exception(); } FilePermissionModel fpm = _unitOfWork.FilePermissionRepository .Find(p => p.UserId == userId && p.FileId == fileId) .FirstOrDefault(); //Create if (permission != PermissionType.None && fpm == null) { fpm = new FilePermissionModel() { User = userModel, File = fileModel, Value = permission }; _unitOfWork.FilePermissionRepository.Create(fpm); } //Update else if (permission != PermissionType.None && fpm != null) { fpm.Value = permission; _unitOfWork.FilePermissionRepository.Update(fpm); } //Delete else if (permission == PermissionType.None && fpm != null) { _unitOfWork.FilePermissionRepository.Delete(fpm.Id); } _unitOfWork.Save(); }