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

            List <HandlerServiceResult> result;

            if (string.IsNullOrEmpty(answer) || !answer.Contains("Income") && !answer.Contains("Expense"))
            {
                return(new List <HandlerServiceResult>
                {
                    _resultService.BuildCategoryInvalidTypeErrorResult()
                });
            }

            var categoryType = answer.Equals("Income") ? CategoryTypeEnum.Income : CategoryTypeEnum.Expense;

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

            category.Type = categoryType;

            if (categoryType == CategoryTypeEnum.Income)
            {
                category.Configured      = true;
                user.Context.CategoryId  = null;
                user.Context.CurrentNode = null;

                result = new List <HandlerServiceResult>
                {
                    _resultService.BuildFinishedConfiguringCategoryResult()
                };
            }
            else
            {
                user.Context.CurrentNode =
                    user.Context.CurrentNode.FindChildByQuestion(QuestionsEnum.CategorySupposedToSpentThisMonth);

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

            await _categoryDocumentService.UpdateAsync(category);

            await _userDocumentService.UpdateAsync(user);

            return(result);
        }