private void AfterMap(ProcessInfoLabeledItemDto arg1, ProcessInfoLabeledItem arg2) { arg2.GenerateId(new Murmur3Hash()); }
private static void CreateTrainingData() { var mongoClient = new MongoClient("mongodb://localhost:27017"); var database = mongoClient.GetDatabase("active_app_record"); var collection = database.GetCollection <AppUsageRecord>("daily_records"); var records = collection.Find(Builders <AppUsageRecord> .Filter.Empty).ToList(); var trainingDataCollection = database.GetCollection <ProcessInfoLabeledItem>("training_data"); string userInput; var hashAlgorithm = new Murmur3Hash(); foreach (var appUsageRecord in records) { foreach (var processInfo in appUsageRecord.ActiveApps) { var trainingItem = new ProcessInfoLabeledItem { Title = processInfo.Value.MainWindowTitle, Process = processInfo.Value.ProcessName }; trainingItem.GenerateId(hashAlgorithm); var persistentItem = trainingDataCollection.Find(Builders <ProcessInfoLabeledItem> .Filter.Eq(f => f.Id, trainingItem.Id)).FirstOrDefault(); if (persistentItem != null) { continue; } Console.WriteLine($"Is Title [{processInfo.Value.MainWindowTitle}] in process [{processInfo.Value.ProcessName}] good or bad? n-(Neural), g-(Good), b-(Bad):"); userInput = Console.ReadLine().Trim().ToLower(); if (userInput != "b" && userInput != "n") { trainingItem.Category = Karma.Good; } else if (userInput == "n") { trainingItem.Category = Karma.Neutral; } else { trainingItem.Category = Karma.Bad; } if (persistentItem == null) { Console.WriteLine($"Inserted item with category {trainingItem.Category.ToString()}"); trainingDataCollection.InsertOne(trainingItem); } else { Console.WriteLine($"Updated item with category {trainingItem.Category.ToString()}"); trainingDataCollection.ReplaceOne(Builders <ProcessInfoLabeledItem> .Filter.Eq(f => f.Id, trainingItem.Id), trainingItem); }; } } }