private static string GetTimeWindowString(OpnetTimeSpan timeInterval)
        {
            var start = timeInterval.OpnetStartDateTimeString;
            var end   = timeInterval.OpnetEndDateTimeString;

            return(string.Concat("[", start, "-", end, "]"));
        }
Example #2
0
        public static string CalculateValuePerSecond(OpnetTimeSpan timeInterval, string value)
        {
            var duration = timeInterval.GetTimeInterval();

            try
            {
                return((int.Parse(value) / duration).ToString());
            }
            catch (ArithmeticException)
            {
                Console.WriteLine($"{Environment.NewLine}Blad w wyliczaniu statystyk: " +
                                  $"{nameof(timeInterval)}: {timeInterval}, {nameof(value)}: {value}");
                throw;
            }
        }
        public override void Parse()
        {
            var fileToParseString = InputFileReader.ReadToEnd();
            var maxDateTime       = new OpnetTimeSpan
                                        (startTimeString: "9999-12-30 00:00:00", endTimeString: "1000-12-30 00:00:00");
            var minDateTime = new OpnetTimeSpan
                                  (startTimeString: "1000-12-30 00:00:00", endTimeString: "1000-12-30 00:00:00");

            var timeOrigin = base.GetBorderTime(fileToParseString, Tools.CheckIfSmaller, maxDateTime)
                             .OpnetStartDateTimeString;
            var timeEnd = base.GetBorderTime(fileToParseString, Tools.CheckIfGreater, minDateTime)
                          .OpnetEndDateTimeString;

            AppendHeaders(timeOrigin, timeEnd);

            base.ParsingLoop(fileToParseString);

            this.OutputFileWriter.WriteLine(this.StringBuilder.ToString());
        }
        protected override string ParseLine(ICollection <string> fields)
        {
            var timeInterval = new OpnetTimeSpan
                               (
                fields.ElementAt(StartTimeIndex),
                fields.ElementAt(EndTimeIndex)
                               );

            var sourceAddress      = fields.ElementAt(SourceAddressIndex);
            var destinationAddress = fields.ElementAt(DestinationAddressIndex);
            var timeWindow         = GetTimeWindowString(timeInterval);
            var packets            = fields.ElementAt(PacketsCountIndex);
            var bytes = fields.ElementAt(BytesCountIndex);

            var packetsPerSecond = Tools.CalculateValuePerSecond(timeInterval, packets);
            var bitsPerSecond    = Tools.CalculateValuePerSecond(timeInterval, Tools.ConvertBytesToBits(bytes));

            return(string.Join(",", sourceAddress, destinationAddress, timeWindow, packetsPerSecond, bitsPerSecond));
        }
        protected override string ParseLine(ICollection <string> fields)
        {
            var timeInterval = new OpnetTimeSpan
                                   (startTimeString: fields.ElementAt(StartTimeIndex), endTimeString: fields.ElementAt(EndTimeIndex));

            var startTime          = timeInterval.OpnetStartDateTimeString;
            var endTime            = timeInterval.OpnetEndDateTimeString;
            var sourceAddres       = fields.ElementAt(SourceAddressIndex);
            var destinationAddress = fields.ElementAt(DestinationAddressIndex);
            var sourcePort         = fields.ElementAt(SourcePortIndex);
            var destinationPort    = fields.ElementAt(DestinationPortIndex);
            var protocol           = fields.ElementAt(ProtocolIndex);
            var packets            = fields.ElementAt(PacketsCountIndex);
            var bytes = fields.ElementAt(BytesCountIndex);

            var packetsPerSecond = Tools.CalculateValuePerSecond(timeInterval, packets);
            var bitsPerSecond    = Tools.CalculateValuePerSecond(timeInterval, Tools.ConvertBytesToBits(bytes));

            return(string.Join(",", sourceAddres, destinationAddress, protocol, sourcePort,
                               destinationPort, startTime, endTime, bitsPerSecond, packetsPerSecond));
        }
        protected OpnetTimeSpan GetBorderTime
        (
            string fileText,
            Func <OpnetTimeSpan, OpnetTimeSpan, OpnetTimeSpan> condition,
            OpnetTimeSpan dateSearchinitializer
        )
        {
            var resultDateTime = dateSearchinitializer;

            using (var reader = new StringReader(fileText))
            {
                string line;
                var    counter = 0;

                while ((line = reader.ReadLine()) != null)
                {
                    if (line.Contains("Summary"))
                    {
                        break;
                    }

                    if (counter > 1)
                    {
                        var fields          = line.Split(',');
                        var currentDateTime = new OpnetTimeSpan
                                              (
                            startTimeString: fields.ElementAt(StartTimeIndex),
                            endTimeString: fields.ElementAt(EndTimeIndex)
                                              );

                        resultDateTime = condition.Invoke(currentDateTime, resultDateTime);
                    }

                    ++counter;
                }
            }

            return(resultDateTime);
        }
Example #7
0
 public static OpnetTimeSpan CheckIfGreater(OpnetTimeSpan current, OpnetTimeSpan currentMax)
 => current.GetHigherEndDateTime(currentMax);
Example #8
0
 public static OpnetTimeSpan CheckIfSmaller(OpnetTimeSpan current, OpnetTimeSpan currentMin)
 => current.GetSmallerStartDateTime(currentMin);