Changeset 2292


Ignore:
Timestamp:
Jan 6, 2011, 3:47:35 PM (11 years ago)
Author:
nolte
Message:

Prepared the data for the "Maschine -> Sum of Patterns"-View for the Keysearcher.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/KeySearcher/KeySearcher.cs

    r2285 r2292  
    5252        /// </summary>
    5353        private Dictionary<string, Dictionary<long, Information>> statistic;
     54        private Dictionary<long, Maschinfo> maschinehierarchie;
    5455        private bool initialized;
    5556        /// <summary>
     
    740741
    741742            statistic = new Dictionary<string, Dictionary<long, Information>>();
     743            maschinehierarchie = new Dictionary<long, Maschinfo>();
    742744            initialized = false;
    743745
     
    12251227            this.initialized = ini;
    12261228        }
     1229
    12271230        public Dictionary<string, Dictionary<long, Information>> GetStatistics()
    12281231        {
    12291232            return statistic;
    12301233        }
     1234
    12311235        public void ResetStatistics()
    12321236        {
    12331237            statistic = null;
    12341238            statistic = new Dictionary<string, Dictionary<long, Information>>();
     1239            maschinehierarchie = null;
     1240            maschinehierarchie = new Dictionary<long, Maschinfo>();
    12351241        }
    12361242
     
    12811287                    statistic[avname] = MaschCount;
    12821288                }
    1283 
    12841289                statistic[avname] = statistic[avname].OrderByDescending((x) => x.Value.Count).ToDictionary(x => x.Key, y => y.Value);
    1285             }         
     1290            }
     1291            GenerateMaschineStats();
    12861292            WriteStatistics(dataIdentifier);
    12871293
    12881294            ((QuickWatch) QuickWatchPresentation).StatisticsPresentation.Statistics = statistic;
     1295//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     1296//TODO "maschinehierarchie" in Quickwatch einfügen. Bereits sortiert ;-) Sum = Anzahl Chunks total ; Hostname = Computername ; Users = String mit Avatarnamen der User dieses Rechners
     1297//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     1298
    12891299            updateToplist();
    12901300        }
     
    13231333                }
    13241334            }
     1335
     1336            /*
     1337            //For testing purpose. This writes the Maschinestatistics to the main folder if no different path was chosen--------
     1338            if (settings.CsvPath == "")
     1339            {
     1340                //using the default save folder %APPDATA%\Local\Cryptool2
     1341                using (StreamWriter sw = new StreamWriter(string.Format("{0}\\Maschine{1}.csv", DirectoryHelper.DirectoryLocal, dataIdentifier)))
     1342                {
     1343                    sw.WriteLine("Maschineid" + ";" + "Name" + ";" + "Sum" + ";" + "Users");
     1344
     1345                        foreach (long mID in maschinehierarchie.Keys)
     1346                        {
     1347                            sw.WriteLine(mID + ";" + maschinehierarchie[mID].Hostname + ";" + maschinehierarchie[mID].Sum + ";" + maschinehierarchie[mID].Users);
     1348                        }
     1349                   
     1350                }
     1351            }
     1352            //-------------
     1353            */
     1354             
     1355        }
     1356
     1357        internal void GenerateMaschineStats()
     1358        {
     1359            maschinehierarchie = null;
     1360            maschinehierarchie = new Dictionary<long, Maschinfo>();
     1361
     1362            foreach (string avatar in statistic.Keys)
     1363            {
     1364                Dictionary<long, Information> Maschines = statistic[avatar];
     1365
     1366                //add the maschine count to the maschinestatistics
     1367                foreach (long mid in Maschines.Keys)
     1368                {
     1369                    //if the maschine exists in maschinestatistic add it to the sum
     1370                    if (maschinehierarchie.ContainsKey(mid))
     1371                    {
     1372
     1373                        maschinehierarchie[mid].Sum = maschinehierarchie[mid].Sum + Maschines[mid].Count;
     1374                        maschinehierarchie[mid].Hostname = Maschines[mid].Hostname;
     1375                        maschinehierarchie[mid].Users = maschinehierarchie[mid].Users + avatar + ", ";
     1376                    }
     1377                    else
     1378                    {
     1379                        //else make a new entry
     1380                        maschinehierarchie.Add(mid, new Maschinfo() { Sum = Maschines[mid].Count , Hostname = Maschines[mid].Hostname , Users = "" + avatar + ", "});
     1381                    }
     1382                }
     1383            }
     1384
     1385            maschinehierarchie = maschinehierarchie.OrderByDescending((x) => x.Value.Sum).ToDictionary(x => x.Key, y => y.Value);
    13251386        }
    13261387
     
    15401601        public string Hostname { get; set; }
    15411602        public DateTime Date { get; set; }
     1603    }
     1604    /// <summary>
     1605    /// Represents one entry in our maschine statistic list
     1606    /// </summary>
     1607    public class Maschinfo
     1608    {
     1609        public int Sum { get; set; }
     1610        public string Hostname { get; set; }
     1611        public string Users { get; set; }
    15421612    }
    15431613}
Note: See TracChangeset for help on using the changeset viewer.