private async Task <List <HandlerServiceResult> > ConfigureCategoryCreating(string answer, User user) { answer = answer.Trim(); if (string.IsNullOrEmpty(answer) || !answer.Contains("Yes") && !answer.Contains("No")) { return(new List <HandlerServiceResult> { _resultService.BuildYouShouldTypeOnlyYesOrNoErrorResult() }); } if (answer.Equals("Yes")) { var category = new Category { Id = _categoryDocumentService.GenerateNewId(), UserId = user.Id, Configured = false }; await _categoryDocumentService.InsertAsync(category); user.Context.CurrentNode = user.Context.CurrentNode.Children[0].Children[2]; user.Context.CategoryId = category.Id; await _userDocumentService.UpdateAsync(user); return(new List <HandlerServiceResult> { await _questionService.BuildQuestion(user) }); } return(new List <HandlerServiceResult> { _resultService.BuildCategoryActionsResult() }); }
public async Task <List <HandlerServiceResult> > Handle(Message message) { var user = await _userDocumentService.GetByChatId(message.UserInfo.ChatId); if (user == null) { user = new User { Id = _userDocumentService.GenerateNewId(), ChatId = message.UserInfo.ChatId, FirstName = message.UserInfo.FirstName, LastName = message.UserInfo.LastName }; var chat = new Chat { Id = _chatDocumentService.GenerateNewId(), TelegramCharId = message.ChatInfo.Id, Type = message.ChatInfo.Type, UserName = message.ChatInfo.UserName }; var defaultIncomeCategory = new Category { Id = _categoryDocumentService.GenerateNewId(), UserId = user.Id, Name = "Default Income Category", ExpenseInCents = 0, ExpenseForThisMonthInCents = 0, SupposedToSpentThisMonthInCents = 0, Type = CategoryTypeEnum.Income, Configured = true, Currency = "BYN" }; var defaultExpenseCategory = new Category { Id = _categoryDocumentService.GenerateNewId(), UserId = user.Id, Name = "Default Expense Category", ExpenseInCents = 0, ExpenseForThisMonthInCents = 0, SupposedToSpentThisMonthInCents = 0, Type = CategoryTypeEnum.Expense, Configured = true, Currency = "BYN" }; var userStatus = new UserStatus { Id = _userStatusDocumentService.GenerateNewId(), IsActiveLastThirtyDays = true, UpdatedAt = DateTime.UtcNow, UserId = user.Id }; await _userStatusDocumentService.InsertAsync(userStatus); await _chatDocumentService.InsertAsync(chat); await _userDocumentService.InsertAsync(user); await _categoryDocumentService.InsertAsync(defaultExpenseCategory); await _categoryDocumentService.InsertAsync(defaultIncomeCategory); } return(new List <HandlerServiceResult> { new HandlerServiceResult { Message = HelpText, StatusCode = StatusCodeEnum.Ok } }); }