public void ProcessFileMeasure(DailyCodeChurn dailyCodeChurn, SonarMeasuresJson sonarMeasuresJson)
        {
            if (!ValidDailyCodeChurn(dailyCodeChurn))
            {
                return;
            }

            ProcessMetric(sonarMeasuresJson);

            var fileName = ProcessFileName(dailyCodeChurn.FileName, filePrefixToRemove);

            var existingMeasureRaw = sonarMeasuresJson.FindRawMeasure(metric.MetricKey, fileName) as Measure <T>;

            if (existingMeasureRaw == null)
            {
                sonarMeasuresJson.AddRawMeasure(new Measure <T>()
                {
                    MetricKey = this.metric.MetricKey,
                    Value     = measureAggregator.GetValueForNewMeasure(dailyCodeChurn),
                    File      = fileName
                });
            }
            else
            {
                existingMeasureRaw.Value = measureAggregator.GetValueForExistingMeasure(dailyCodeChurn, existingMeasureRaw);
            }
        }