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

            if (string.IsNullOrEmpty(answer) || !decimal.TryParse(answer, out decimal sum))
            {
                return(new List <HandlerServiceResult> {
                    _resultService.BuildOperationInvalidSumErrorResult()
                });
            }

            var result = new List <HandlerServiceResult>();

            var operation = await GetOrCreateOperationAsync(user);

            var category = await _categoryDocumentService.GetByIdAsync(operation.CategoryId);

            var sumInCents = (long)(sum * 100);

            if (category.Type == CategoryTypeEnum.Expense)
            {
                category.ExpenseInCents             += sumInCents;
                category.ExpenseForThisMonthInCents += sumInCents;

                if (category.ExpenseForThisMonthInCents > category.SupposedToSpentThisMonthInCents)
                {
                    result.Add(_resultService.BuildOperationExceededAmountForThisMonth(
                                   (float)(category.ExpenseForThisMonthInCents - category.SupposedToSpentThisMonthInCents) / 100));
                }
            }
            else
            {
                category.IncomeForThisMonthInCents += sumInCents;
                category.IncomeInCents             += sumInCents;
            }

            operation.CreditAmountInCents = sumInCents;

            await _operationDocumentService.UpdateAsync(operation);

            await _categoryDocumentService.UpdateAsync(category);

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

            var nextQuestion = await _questionService.BuildQuestion(user);

            await _userDocumentService.UpdateAsync(user);

            result.Add(nextQuestion);

            return(result);
        }