public CourseSecGAOperators(GaTask task) { _dbContext = new DatabaseContext(); _task = task; //relationDict = new Dictionary<KeyValuePair<ObjectId, ObjectId>, Relation.RelationType>(); _relationsCache = new Cache<KeyValuePair<ObjectId, ObjectId>, Relation.RelationType?>(); //currentLOsSetKnowledges = new HashSet<Knowledge>(); //foreach (var sourceLearningObject in _task.SourceLearningObjects) //{ // foreach (var prerequisite in sourceLearningObject.Prerequisites) // { // var knowledge = dbContext.Ontology.Find(x => x.Id == prerequisite.KnowledgeId).SingleOrDefaultAsync().Result; // currentLOsSetKnowledges.Add(knowledge); // } // foreach (var outcome in sourceLearningObject.Outcomes) // { // var knowledge = dbContext.Ontology.Find(x => x.Id == outcome.KnowledgeId).SingleOrDefaultAsync().Result; // currentLOsSetKnowledges.Add(knowledge); // } //} }
public async Task<ObjectId> TaskRunAsync(GaTask gaTask) { BackgroundWorker bw = new BackgroundWorker { WorkerSupportsCancellation = true, WorkerReportsProgress = true }; bw.DoWork += bw_DoWork; bw.ProgressChanged += bw_ProgressChanged; bw.RunWorkerCompleted += bw_RunWorkerCompleted; DatabaseContext dbContext = new DatabaseContext(); gaTask.LaunchTime = DateTime.Now; gaTask.State = TaskState.Launched; await dbContext.gaTasks.InsertOneAsync(gaTask); bw.RunWorkerAsync(gaTask); //Console.WriteLine("Task " + gaTask.Id + " launched"); Workers.Add(gaTask.Id, bw); return gaTask.Id; }