예제 #1
0
        public void Process(IFileInfo file, decimal differencePercentage)
        {
            var records = fileLoader.Load(file);

            if (records.Count > 0)
            {
                var sortedRecords = records.OrderBy(r => r.Value).ToList();

                var median = medianCalculator.Calculate(
                    sortedRecords.Select(r => r.Value).ToList());

                var trigger = median * (differencePercentage / 100);

                foreach (var record in sortedRecords)
                {
                    var diff = Math.Abs(record.Value - median);
                    if (diff > trigger)
                    {
                        fluctuationReporter.ReportRecord(file.Name, median, record);
                    }
                }
            }
        }