private async Task AddKanbanColumnsForSprint(SprintInputDto inputDto, Sprint sprint)
        {
            var boardOptionIdsForProject = await this.boardOptionsRepo.AllAsNoTracking()
                                           .Where(x => x.ProjectId == inputDto.ProjectId)
                                           .Select(x => x.Id)
                                           .ToListAsync();

            foreach (var optionsId in boardOptionIdsForProject)
            {
                sprint.KanbanBoard.Add(new KanbanBoardColumn()
                {
                    KanbanBoardColumnOptionId = optionsId,
                    AddedOn = DateTime.UtcNow,
                });
            }
        }
        public async Task CreateSprintAsync(SprintInputDto inputDto)
        {
            var sprint = new Sprint()
            {
                AddedOn   = DateTime.UtcNow,
                Name      = inputDto.Name,
                ProjectId = inputDto.ProjectId,
                StartDate = inputDto.StartDate,
                DueDate   = inputDto.DueDate,
                StatusId  = GetSprintStatus(inputDto.StartDate, inputDto.DueDate)
            };

            await AddKanbanColumnsForSprint(inputDto, sprint);

            InitialSeedBurndownData(sprint);

            await this.sprintRepo.AddAsync(sprint);

            await this.sprintRepo.SaveChangesAsync();
        }