private async Task <List <DataGuidanceSubjectViewModel> > ListSubjects(
            Release release,
            IEnumerable <Guid>?subjectIds = null)
        {
            var subjects = await _dataGuidanceSubjectService.GetSubjects(release.Id, subjectIds);

            if (subjects.IsLeft)
            {
                throw new ArgumentException($"Could not find subjects for release: {release.Id}");
            }

            return(subjects.Right);
        }
        private async Task <Either <ActionResult, DataGuidanceViewModel> > BuildViewModel(Release release)
        {
            var subjectIds = (await _fileRepository.ListDataFiles(release.Id))
                             .Where(f => f.SubjectId.HasValue)
                             .Select(f => f.SubjectId.Value)
                             .ToList();

            return(await _dataGuidanceSubjectService.GetSubjects(release.Id, subjectIds)
                   .OnSuccess(subjects => new DataGuidanceViewModel
            {
                Id = release.Id,
                Content = release.DataGuidance ?? "",
                Subjects = subjects
            }));
        }