public override void Execute(INotification notification)
        {
            var fileNameClusterProxy = Facade.RetrieveProxy<FileNameClusterProxy>(Globals.FileNameClusterProxy);
            var clusters = fileNameClusterProxy.FileNameClusters;
            var groups = (from c in clusters
                          where c.Count > 1
                          select c).ToList();

            SendNotification(Globals.LogInfoNotification, "Analyzing clusters based on file-names. There are " + groups.Count + " clusters to analyze");

            var reportProxy = Facade.RetrieveProxy(Globals.ReportProxy) as ReportProxy;
            if (reportProxy == null) Globals.Fail("Could not get ReportProxy");

            foreach (var g in groups)
            {
                var report = new Report { Id = Report.GetNextId(), ReportType = ReportType.FileNameAnalysisReport, Cluster = g };
                reportProxy.AddReport(report);
            }
        }
 public bool GetReport(out Report report)
 {
     return _reports.TryDequeue(out report);
 }
 public void AddReport(Report report)
 {
     _reports.Enqueue(report);
 }