public List <TrafficInformation> CurrentTrafficSituation()
        {
            List <string> contentList = GetConentList();

            contentList.RemoveAll(string.IsNullOrWhiteSpace);

            var result = new List <TrafficInformation>(NewsToShow);

            for (int i = 0; i < NewsToShow; ++i)
            {
                var token = new TrafficInformation();
                result.Add(token);
                var counter = 0;

                foreach (var item in contentList)
                {
                    bool isNameNull     = result[i].Name == null;
                    bool isPostedOnNull = result[i].PostedOn == null;
                    bool isContentNull  = result[i].Content == null;

                    bool isTokenDone = !isNameNull && !isPostedOnNull && !isContentNull && item.Length < NameWordsCountLimit;

                    if (isTokenDone)
                    {
                        break;
                    }
                    counter++;


                    if (item.Length > NameWordsCountLimit && !isNameNull && !isPostedOnNull && !isContentNull)
                    {
                        token.Content = String.Concat(token.Content, item);
                    }


                    if (isNameNull && isPostedOnNull && isContentNull)
                    {
                        token.Name = item;
                        continue;
                    }

                    if (isPostedOnNull)
                    {
                        Regex rgx = new Regex(DateRegex);
                        if (rgx.IsMatch(item))
                        {
                            token.PostedOn = item;
                            continue;
                        }
                    }

                    if (isContentNull)
                    {
                        token.Content = item;
                    }
                }
                contentList.RemoveRange(0, count: counter);
            }
            return(result);
        }
Beispiel #2
0
        /// <summary>
        /// Return a summary of data suitable for display.
        /// </summary>
        /// <returns></returns>
        public Dictionary <IPAddress, TrafficInformation> GetDataSummary()
        {
            long time10sOld = (long)(DateTime.Now - DateTime.MinValue).TotalSeconds - (10);
            Dictionary <IPAddress, TrafficInformation> summary = new Dictionary <IPAddress, TrafficInformation>();

            foreach (AdapterSniffer sniffer in sniffers)
            {
                lock (sniffer.data)
                {
                    foreach (IPAddress ip in sniffer.data.Keys)
                    {
                        TrafficInformation ti = new TrafficInformation();
                        SortedList <long, AdapterSniffer.BucketContents> ipData = sniffer.data[ip];
                        foreach (long dataTime in ipData.Keys)
                        {
                            AdapterSniffer.BucketContents bc = ipData[dataTime];
                            ti.rxBytes10min += bc.rxBytes;
                            ti.txBytes10min += bc.txBytes;
                            if (dataTime >= time10sOld)
                            {
                                ti.rxBytes10sec += bc.rxBytes;
                                ti.txBytes10sec += bc.txBytes;
                            }
                        }
                        summary[ip] = ti;
                    }
                }
            }

            return(summary);
        }
Beispiel #3
0
        public void Run()
        {
            GetInformation();
            _weatherInformation = GetofflineWeatherDatat();
            _trafficInformation = GetOfflinetraccicData();

            GenerateOutput();
            Console.ReadLine();
        }
Beispiel #4
0
        public void Run()
        {
            _userInformation    = GetInformation();
            _weatherInformation = GetOfflineWeatherData();
            _trafficInformation = GetOfflineTrafficData();


            GenerateOutput();
            Console.ReadKey();
        }