/// <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);
            }
        }