private async Task <List <HandlerServiceResult> > ConfigureCategoryName(string answer, User user)
        {
            answer = answer.Trim();

            if (string.IsNullOrEmpty(answer))
            {
                return(new List <HandlerServiceResult>
                {
                    _resultService.BuildClearCategoryNameErrorResult()
                });
            }

            if (answer.Length > 30)
            {
                return(new List <HandlerServiceResult>
                {
                    _resultService.BuildLongCategoryNameErrorResult()
                });
            }

            var categoriesWithTheSameName = await _categoryDocumentService.GetByUserIdAsync(user.Id);

            categoriesWithTheSameName = categoriesWithTheSameName.Where(c => c.Configured && c.Name.Equals(answer)).ToList();

            if (categoriesWithTheSameName.Count > 0)
            {
                return(new List <HandlerServiceResult>
                {
                    _resultService.BuildNotUniqueCategoryNameErrorResult()
                });
            }

            var category = await _categoryDocumentService.GetByIdAsync(user.Context.CategoryId);

            category.Name = answer;

            await _categoryDocumentService.UpdateAsync(category);

            user.Context.CurrentNode = user.Context.CurrentNode.Children.FirstOrDefault();

            await _userDocumentService.UpdateAsync(user);

            return(new List <HandlerServiceResult>
            {
                await _questionService.BuildQuestion(user)
            });
        }