public async Task <ActionResult <GetMaturityLevelsByCategoryIdResponseModel> > GetByCategoryId(
            [FromRoute] Guid maturityCategoryId
            )
        {
            var queryRequest = new GetMaturityLevelsByCategoryIdQueryRequestModel {
                CategoryId = maturityCategoryId
            };
            var queryResponse = await this.getMaturityLevelsByCategoryIdQuery.ExecuteAsync(queryRequest);

            return(GetMaturityLevelsByCategoryIdResponseModel.FromBusinessModel(queryResponse));
        }
        public async Task <IEnumerable <MaturityLevel> > ExecuteAsync(GetMaturityLevelsByCategoryIdQueryRequestModel queryRequest)
        {
            var maturityCategory = await this.maturityCategoriesRepository.GetAsync(queryRequest.CategoryId);

            if (maturityCategory is null)
            {
                throw new HttpException(HttpStatusCode.NotFound, $"MaturityCategory (ID: {queryRequest.CategoryId}) cannot be found.");
            }

            var maturityLevelRecords = await this.maturityLevelsRepository.GetByCategoryIdAsync(queryRequest.CategoryId);

            var maturityLevels = new List <MaturityLevel>();

            foreach (var maturityLevelRecord in maturityLevelRecords)
            {
                maturityLevels.Add(MaturityLevel.FromTableRecord(maturityLevelRecord));
            }

            return(maturityLevels);
        }