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); }