public ActionProcessingResults Combine(ActionProcessingResults subProcessingResults)
 {
     return(new ActionProcessingResults(
                SuccessBids.Concat(subProcessingResults.SuccessBids).DistinctBy(x => x.PickupBid.BidID),
                FailedBids.Concat(subProcessingResults.FailedBids).DistinctBy(x => x.PickupBid.BidID),
                SuccessDrops.Concat(subProcessingResults.SuccessDrops).DistinctBy(x => x.DropRequestID),
                FailedDrops.Concat(subProcessingResults.FailedDrops).DistinctBy(x => x.DropRequestID),
                LeagueActions.Concat(subProcessingResults.LeagueActions).DistinctBy(x => x.ActionInternalID),
                subProcessingResults.PublisherStateSet,
                AddedPublisherGames.Concat(subProcessingResults.AddedPublisherGames).DistinctBy(x => x.PublisherGameID),
                RemovedPublisherGames.Concat(subProcessingResults.RemovedPublisherGames).DistinctBy(x => x.PublisherGame.PublisherGameID)));
 }
    public IReadOnlyList <LeagueYearPublisherPair> GetAllAffectedPublisherPairs()
    {
        var publisherPairsToInclude = SuccessBids.Select(x => x.PickupBid.GetLeagueYearPublisherPair())
                                      .Concat(FailedBids.Select(x => x.PickupBid.GetLeagueYearPublisherPair()))
                                      .Concat(SuccessDrops.Select(x => x.GetLeagueYearPublisherPair()))
                                      .Concat(FailedDrops.Select(x => x.GetLeagueYearPublisherPair()));

        List <LeagueYearPublisherPair> updatedPublisherPairs = new List <LeagueYearPublisherPair>();

        foreach (var publisherPair in publisherPairsToInclude)
        {
            var updatedPublisher = PublisherStateSet.GetPublisher(publisherPair.Publisher.PublisherID);
            updatedPublisherPairs.Add(new LeagueYearPublisherPair(publisherPair.LeagueYear, updatedPublisher));
        }

        return(updatedPublisherPairs);
    }