Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }