Ejemplo n.º 1
0
        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)));
            }
        }
Ejemplo n.º 2
0
        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}"));
        }