public async Task RemoveAndRefundAllRequests() { var currentRequests = _getCurrentRequestsRepository.GetCurrentRequests(); if (currentRequests == null) { return; } var refundVips = currentRequests?.VipRequests?.Where(sr => sr.IsSuperVip || sr.IsVip).Select(sr => new VipRefund { Username = sr.Username, VipsToRefund = sr.IsSuperVip ? _configService.Get <int>("SuperVipCost") : sr.IsVip ? 1 : 0 }).ToList() ?? new List <VipRefund>(); _refundVipCommand.Refund(refundVips); foreach (var refund in refundVips) { await _vipService.UpdateClientVips(refund.Username).ConfigureAwait(false); } _clearRequestsRepository.ClearRequests(currentRequests.RegularRequests); _clearRequestsRepository.ClearRequests(currentRequests.VipRequests); }
public async Task <bool> RefundVip(string username, bool deferSave = false) { try { _refundVipCommand.Refund(new VipRefund { Username = username, VipsToRefund = 1 }); await UpdateClientVips(username).ConfigureAwait(false); return(true); } catch (Exception e) { _logger.LogError(e, $"Error when refunding Vip token. username: {username}, defersave: {deferSave}"); return(false); } }
public async Task ArchiveRequest(int requestId, bool refundVip) { var username = _archiveRequestRepository.ArchiveRequest(requestId); if (refundVip) { var request = _getSongRequestByIdQuery.GetSongRequestById(requestId); if (request.isVip || request.isSuperVip) { _refundVipCommand.Refund(new VipRefund { Username = request.songRequester, VipsToRefund = request.isVip ? 1 : _configService.Get <int>("SuperVipCost") }); } } await _vipService.UpdateClientVips(username).ConfigureAwait(false); }