public async Task <(List <IssueStage> list, int count)> GetIssueStagesByProjectAsync(Guid projectId, PaginationFilter paginationFilter = null) { var queryable = _issueStageRepository .FindByCondition(x => x.ProjectId == projectId); List <IssueStage> issueStages; var count = await queryable.CountAsync().ConfigureAwait(false); if (paginationFilter == null) { issueStages = await queryable .ToListAsync() .ConfigureAwait(false); } else { var skip = (paginationFilter.PageNumber - 1) * paginationFilter.PageSize; issueStages = await queryable .Skip(skip) .Take(paginationFilter.PageSize) .ToListAsync() .ConfigureAwait(false); } return(list : issueStages, count); }
private async Task AddIssueStages(Project project, List <IssueStage> stages) { foreach (var stage in stages) { var existingStage = await _issueStageRepository .FindByCondition(x => x.Name == stage.Name && x.ProjectId == stage.ProjectId) .SingleOrDefaultAsync().ConfigureAwait(false); if (existingStage != null) { continue; } await _issueStageRepository.CreateAsync(new IssueStage { Name = stage.Name, ProjectId = project.Id }).ConfigureAwait(false); } await _issueStageRepository.SaveAsync().ConfigureAwait(false); }