public async Task <DonateServerResult> DonateServer(DonationType donationType, string code) { var token = await VerifyAndGetPaymentToken(code); using (var transaction = database.BeginTransaction().Transaction) { var _ = await userManager.AddCredits(DonationDictionary.CalculateCredits(donationType), httpContextReader.CurrentUserId) ?? throw new DatabaseException(); await ExecuteOrderTransaction(donationType, code, token); transaction.Complete(); return(new DonateServerResult(true, DonationDictionary.CalculateCredits(donationType))); } }
public async Task <AddCreditsResponse> Handle(AddCreditsRequest request, CancellationToken cancellationToken) { var result = await userManager.AddCredits(request.Credits, request.UserId); var notification = await notifier.Push( $"Account credits amount {(request.Credits > 0 ? "increased by" : "decreased by")} {Math.Abs(request.Credits)}, current balance: {result.CurrentCreditsCount}", request.UserId); await hubManager.Invoke(SignalrActions.NOTIFICATION_RECEIVED, request.UserId, mapper.Map <NotificationDto>(notification)); return((AddCreditsResponse) new AddCreditsResponse { CreditsCount = result.CurrentCreditsCount } .LogInformation( $"Admin #{httpContextReader.CurrentUserId} added {request.Credits} to user #{request.UserId}")); }