コード例 #1
0
 private void AddAdvertisementToDayPeriodCounts(AdvertisementInstance ad)
 {
     if (ad.StartTime.TimeOfDay <= nightsEnd && ad.EndTime.TimeOfDay <= nightsEnd || ad.StartTime.TimeOfDay >= nightsStart && ad.EndTime.TimeOfDay >= nightsStart)
     {
         if (!nightTypesCount.ContainsKey(ad.TypeID))
         {
             nightTypesCount[ad.TypeID] = 1;
         }
         else
         {
             nightTypesCount[ad.TypeID] += 1;
         }
     }
     else
     {
         if (!dayTypesCount.ContainsKey(ad.TypeID))
         {
             dayTypesCount[ad.TypeID] = 1;
         }
         else
         {
             dayTypesCount[ad.TypeID] += 1;
         }
     }
 }
コード例 #2
0
 public ViewershipSpan(AdvertisementInstance advertisement)
 {
     StartTime = advertisement.StartTime;
     EndTime   = advertisement.EndTime;
     Span      = advertisement.Span;
     SpanUnits = advertisement.SpanUnits;
     Viewers   = advertisement.Viewers;
 }
コード例 #3
0
 public void AddAdvertisement(AdvertisementInstance advertisement)
 {
     Ads.Add(advertisement);
     if (advertisement.Type != this)
     {
         advertisement.Type = this;
     }
 }
コード例 #4
0
 public void AddAdvertisement(AdvertisementInstance advertisement)
 {
     Ads.Add(advertisement);
     if (advertisement.Brand != this)
     {
         advertisement.Brand = this;
     }
 }
コード例 #5
0
 public void AddAdvertisement(AdvertisementInstance advertisement)
 {
     AdvertisementInstances.Add(advertisement);
     if (advertisement.AdvertisementOrder != this)
     {
         advertisement.AdvertisementOrder = this;
     }
 }
コード例 #6
0
        private void AnalyzeAd(string line)
        {
            string[] fields = line.Split(' ');
            AdvertisementInstance advertisement = new AdvertisementInstance()
            {
                Span               = new TimeSpan(0, 0, Convert.ToInt32(fields[1])),
                Type               = instance.GetOrAddTypeOfAds(Convert.ToInt32(fields[4])),
                Profit             = Convert.ToDouble(fields[5].Replace(",", "."), CultureInfo.InvariantCulture),
                AdvertisementOrder = instance.GetOrAddOrderOfAds(Convert.ToInt32(fields[7])),
                Brand              = instance.GetOrAddBrand(Convert.ToInt32(fields[8])),
                Viewers            = Convert.ToDouble(fields[9].Replace(",", "."), CultureInfo.InvariantCulture),
                Channel            = currentChannel,
                StartTime          = currentChannel.EndTime,
            };

            advertisement.EndTime = currentChannel.EndTime = currentChannel.EndTime.Add(advertisement.Span);
            currentChannel.Advertisements.Add(advertisement);
            currentChannel.Activities.Add(advertisement);
        }
コード例 #7
0
        private void AddBreakViewershipFunction(TvBreak tvBreak)
        {
            ViewershipFunction    function = new ViewershipFunction();
            AdvertisementInstance lastAd   = new AdvertisementInstance();

            foreach (BaseActivity activity in tvBreak.Activities)
            {
                ViewershipSpan currentSpan = null;
                if (activity is Autopromotion autopromotion)
                {
                    currentSpan = new ViewershipSpan(autopromotion);
                }
                if (activity is AdvertisementInstance advertisement)
                {
                    currentSpan = new ViewershipSpan(advertisement);
                }
                function.AddTimeInterval(currentSpan);
            }
            tvBreak.MainViewsFunction = function;
        }