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);
     }
 }
Exemplo n.º 2
0
 internal CompanionVastCreative(Companion_type Companion, VASTADInLineCreative Creative, VastCreativeSet Parent)
     : base(Creative, Parent)
 {
     this.Companion = Companion;
 }
 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));
            }
        }