public string Create(string type, [FromBody] LearningModel lm) { if (lm == null) { /* The JSON sent was not in the correct format */ Response.StatusCode = 400; /* Bad Request */ var error = new LexicalAnalyzer.Models.Error(); error.Message = "Invalid structure for LearningModel object"; return(JsonConvert.SerializeObject(error)); } if (lm.Status != "init") { var error = new LexicalAnalyzer.Models.Error(); error.Message = "Initial LearningModel status must be 'init'"; return(JsonConvert.SerializeObject(error)); } ILearningModel learningModel = m_learningService.CreateLearningModel(type); if (learningModel == null) { var error = new LexicalAnalyzer.Models.Error(); error.Message = string.Format( "Unknown learning model type '{0}'", type); return(JsonConvert.SerializeObject(error)); } learningModel.Status = lm.Status; learningModel.Properties = lm.Properties; return(JsonConvert.SerializeObject(learningModel)); }
public void StartLearningModel(Guid guid) { ILearningModel learningModel = this.GetLearningModel(guid); if (learningModel == null) { return; } m_workerPool.StartTask(learningModel); }
public void PauseLearningModel(Guid guid) { ILearningModel learningModel = this.GetLearningModel(guid); if (learningModel == null) { return; } /* TODO: Make sure the given learning task is paused */ m_workerPool.PauseTask(learningModel); }
/* Public interface */ public ILearningModel CreateLearningModel(string type) { ILearningModel learningModel = m_factory.BuildLearningModel(type); if (learningModel == null) { return(null); } Debug.Assert( m_learningModels.Find( elem => { return(elem.Guid == learningModel.Guid); } ) == null); m_learningModels.Add(learningModel); return(learningModel); }
public bool RemoveLearningModel(Guid guid) { ILearningModel learningModel = m_learningModels.Find( elem => { return(elem.Guid == guid); }); if (learningModel == null) { return(false); } /* TODO: Stop the learning model thread, if it exists */ m_learningModels.Remove(learningModel); Debug.Assert(!m_learningModels.Contains(learningModel)); return(true); }
public string Result(string guid) { ILearningModel learningModel = m_learningService.GetLearningModel(guid); if (learningModel == null) { Response.StatusCode = 404; /* Not Found */ var error = new LexicalAnalyzer.Models.Error(); error.Message = "Could not find learning model with the given GUID"; return(JsonConvert.SerializeObject(error)); } return(JsonConvert.SerializeObject( learningModel.Result, new ResultConverter() )); }
public string Update(string guid, [FromBody] LearningModel lm) { ILearningModel learningModel = m_learningService.GetLearningModel(guid); if (learningModel == null) { Response.StatusCode = 404; /* Not Found */ var error = new LexicalAnalyzer.Models.Error(); error.Message = "Could not find learning model with the given GUID"; return(JsonConvert.SerializeObject(error)); } if (lm == null) { /* The JSON sent was not in the correct format */ Response.StatusCode = 400; /* Bad Request */ var error = new LexicalAnalyzer.Models.Error(); error.Message = "Invalid structure for learning model object"; return(JsonConvert.SerializeObject(error)); } learningModel.Properties = lm.Properties; if (lm.Status.ToLower() == "start") { m_learningService.StartLearningModel(guid); } else if (lm.Status.ToLower() == "pause") { m_learningService.PauseLearningModel(guid); } else { Response.StatusCode = 400; /* Bad Request */ var error = new LexicalAnalyzer.Models.Error(); error.Message = "The only valid learning model status values to set are 'start' or 'pause'"; return(JsonConvert.SerializeObject(error)); } return(JsonConvert.SerializeObject(learningModel)); }