/// <summary> /// Processes the PTS file. /// </summary> public async Task Process() { // Get the list of MasterCard redemptions marked ReadyForSettlement. Collection <OutstandingRedeemedDealInfo> redeemedDealRecords = WorkerActions.RetrieveOutstandingPartnerRedeemedDealRecords(Partner.MasterCard, RedeemedDealOperations, Context); // Build contents of the rebate file from the list of ReadyForSettlement redemptions. string rebateFileContents = RebateBuilder.Build(MasterCard.MarshalOutstandingRedeemedDeals(redeemedDealRecords), DateTime.UtcNow); // Upload the file to the blob store and to MasterCard, and then mark the redemptions as SettledAsRedeemed. // NOTE: Status is immediately marked SettledAsRedeemed, because, unlike other partners, MasterCard only tells us which rebates it rejects. if (UploadRebateFile != null) { await UploadRebateFile(rebateFileContents).ConfigureAwait(false); WorkerActions.MarkSettledAsRedeemed(redeemedDealRecords, RedeemedDealOperations, Context); } }