public ActiveCreative GetCompanionCreative(VastAdPod AdPod, VASTADInLine InlineAd, Companion_type Companion) { ICreativeSource PayloadSource = new CompanionSource(InlineAd, Companion); IAdTarget target = VastAdHandler.FindTarget(AdPod.AdUnit.Source, PayloadSource); if (target == null) { return null; } else { return GetCompanionCreative(PayloadSource, target); } }
internal CompanionVastCreative(Companion_type Companion, VASTADInLineCreative Creative, VastCreativeSet Parent) : base(Creative, Parent) { this.Companion = Companion; }
private static Companion_type FindMatchingCompanion(VASTADInLineCreativeCompanionAds companions, Companion_type companion, VASTADWrapperCreativeCompanionAds wrapperCompanions) { int index = companions.Companion.ToList().IndexOf(companion); if (wrapperCompanions.Companion.Length > index) return wrapperCompanions.Companion[index]; else return null; }
private static Companion_type FindMatchingCompanion(VASTADInLineCreativeCompanionAds companions, Companion_type companion, VASTADWrapperCreativeCompanionAds wrapperCompanions) { int index = companions.Companion.ToList().IndexOf(companion); if (wrapperCompanions.Companion.Length > index) { return(wrapperCompanions.Companion[index]); } else { return(null); } }
/// <summary> /// Merges the tracking info for the two ads /// </summary> private static void MergeWrappedAd(VASTADWrapper wrapperAd, VASTADInLine inlineAd) { // carry over impressions { var newItems = inlineAd.Impression.ToList(); newItems.AddRange(wrapperAd.Impression.Select(i => new Impression_type() { Value = i })); inlineAd.Impression = newItems.ToArray(); } // carry over tracking events foreach (var creative in inlineAd.Creatives) { var creativeItem = creative.Item; VASTADWrapperCreative creativeWrapper = FindMatchingCreative(inlineAd, creative, wrapperAd); if (creativeWrapper != null) { if (creativeItem is VASTADInLineCreativeLinear) { var linearWrapper = (VASTADWrapperCreativeLinear)creativeWrapper.Item; if (linearWrapper != null && linearWrapper.TrackingEvents != null) { var linear = (VASTADInLineCreativeLinear)creativeItem; List <TrackingEvents_typeTracking> newItems; if (linear.TrackingEvents == null) { newItems = new List <TrackingEvents_typeTracking>(); } else { newItems = linear.TrackingEvents.ToList(); } newItems.AddRange(linearWrapper.TrackingEvents); linear.TrackingEvents = newItems.ToArray(); } } else if (creativeItem is VASTADInLineCreativeNonLinearAds) { var nonlinearWrapper = (VASTADWrapperCreativeNonLinearAds)creativeWrapper.Item; if (nonlinearWrapper != null && nonlinearWrapper.TrackingEvents != null) { var nonLinear = (VASTADInLineCreativeNonLinearAds)creativeItem; List <TrackingEvents_typeTracking> newItems; if (nonLinear.TrackingEvents == null) { newItems = new List <TrackingEvents_typeTracking>(); } else { newItems = nonLinear.TrackingEvents.ToList(); } newItems.AddRange(nonlinearWrapper.TrackingEvents); nonLinear.TrackingEvents = newItems.ToArray(); } } else if (creativeItem is VASTADInLineCreativeCompanionAds) { var companions = (VASTADInLineCreativeCompanionAds)creativeItem; foreach (var companion in companions.Companion) { Companion_type companionWrapper = FindMatchingCompanion(companions, companion, (VASTADWrapperCreativeCompanionAds)creativeWrapper.Item); if (companionWrapper != null && companionWrapper.TrackingEvents != null) { List <TrackingEvents_typeTracking> newItems; if (companion.TrackingEvents == null) { newItems = new List <TrackingEvents_typeTracking>(); } else { newItems = companion.TrackingEvents.ToList(); } newItems.AddRange(companionWrapper.TrackingEvents); companion.TrackingEvents = newItems.ToArray(); } } } } } }
public ActiveCreative GetCompanionCreative(VastAdPod AdPod, VASTADInLine InlineAd, Companion_type Companion) { ICreativeSource PayloadSource = new CompanionSource(InlineAd, Companion); IAdTarget target = VastAdHandler.FindTarget(AdPod.AdUnit.Source, PayloadSource); if (target == null) { return(null); } else { return(GetCompanionCreative(PayloadSource, target)); } }