public async Task <Either <ActionResult, List <MyReleaseViewModel> > > GetMyReleasesForReleaseStatusesAsync( params ReleaseStatus[] releaseStatuses) { return(await _userService .CheckCanAccessSystem() .OnSuccess(_ => { return _userService .CheckCanViewAllReleases() .OnSuccess(() => _repository.GetAllReleasesForReleaseStatusesAsync(releaseStatuses)) .OrElse(() => _repository.GetReleasesForReleaseStatusRelatedToUserAsync(_userService.GetUserId(), releaseStatuses)); })); }