Ignore:
Timestamp:
Dec 17, 2010, 7:38:52 PM (11 years ago)
Author:
nolte
Message:

User Statistics Added. The CSV Data will be saved under C\Users\ct2\Local\CrypTool2...

File:
1 edited

Legend:

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

    r2214 r2217  
    4949    {
    5050        /// <summary>
     51        /// used for creating the UserStatistics
     52        /// </summary>
     53        private Dictionary<string, Dictionary<long, int>> statistic;
     54        private bool initialized;
     55        /// <summary>
    5156        /// used for creating the TopList
    5257        /// </summary>
     
    733738            valuequeue = Queue.Synchronized(new Queue());
    734739
     740            statistic = new Dictionary<string, Dictionary<long, int>>();
     741            initialized = false;
     742
    735743            stop = false;
    736744            if (!pattern.testWildcardKey(settings.Key))
     
    12021210        }
    12031211
    1204         internal void IntegrateNewResults(LinkedList<ValueKey> updatedCostList)
     1212        public void SetInitialized(bool ini)
     1213        {
     1214            this.initialized = ini;
     1215        }
     1216
     1217        internal void IntegrateNewResults(LinkedList<ValueKey> updatedCostList, Dictionary<string, Dictionary<long, int>> updatedStatistics, string dataIdentifier)
    12051218        {
    12061219            foreach (var valueKey in updatedCostList)
     
    12121225            }
    12131226
     1227            foreach (string avname in updatedStatistics.Keys)
     1228            {
     1229                //taking the dictionary in this avatarname
     1230                Dictionary<long, int> MaschCount = updatedStatistics[avname];
     1231
     1232                //if the avatarname already exists in the statistics
     1233                if (statistic.ContainsKey(avname))
     1234                {
     1235                    foreach (long id in MaschCount.Keys)
     1236                    {
     1237                        //get the statistic maschcount for this avatarname
     1238                        Dictionary<long, int> statMaschCount = statistic[avname];
     1239                       
     1240                        //if the id of the Maschine already exists for this avatarname
     1241                        if (statMaschCount.ContainsKey(id))
     1242                        {
     1243                            if (!initialized || ((MaschCount[id] == 1) && (MaschCount.Keys.Count == 1)))
     1244                            {
     1245                                statMaschCount[id] = statMaschCount[id] + MaschCount[id];
     1246                                statistic[avname] = statMaschCount;
     1247                            }
     1248                        }
     1249                        else
     1250                        {
     1251                            //add a new id,count value for this avatarname
     1252                            statistic[avname].Add(id, MaschCount[id]);
     1253                        }
     1254                    }
     1255                }
     1256                else
     1257                {
     1258                    //add the maschinecount dictionary to this avatarname
     1259                    statistic[avname] = MaschCount;
     1260                }
     1261            }
     1262            WriteStatistics(dataIdentifier);
    12141263            updateToplist();
     1264        }
     1265
     1266        //Write the User Statistics to an external csv-document
     1267        internal void WriteStatistics(String dataIdentifier)
     1268        {
     1269            using (StreamWriter sw = new StreamWriter(string.Format("{0}\\UserRanking{1}.csv", DirectoryHelper.DirectoryLocal, dataIdentifier)))
     1270            {
     1271                sw.WriteLine("Avatarname" + ";" + "MaschinenID" + ";" + "Anzahl Pattern");
     1272                foreach (string avatar in statistic.Keys)
     1273                {
     1274                    foreach(long mID in statistic[avatar].Keys)
     1275                    {
     1276                        sw.WriteLine(avatar + ";" + mID.ToString() + ";" + statistic[avatar][mID].ToString());
     1277                    }
     1278                }
     1279            }
    12151280        }
    12161281
Note: See TracChangeset for help on using the changeset viewer.