public IJobLoader Parse(JobParser parser, ParseState state) { var connection = state.Require <string>("Database", true); if (!connection.Contains("=")) { var builder = new SqlConnectionStringBuilder( ConfigurationManager.ConnectionStrings["ExperienceExtractor.Sql"].ConnectionString); builder.InitialCatalog = connection; connection = builder.ConnectionString; } using (var conn = new SqlConnection(connection)) { conn.Open(); if (DBNull.Value.Equals(new SqlCommand("SELECT OBJECT_ID('Sitecore.JobInfo', 'U')", conn).ExecuteScalar())) { throw new ParseException(state, "Database does not contain the job info table. Was it created with Experience Extractor?"); } var json = (string)new SqlCommand("SELECT TOP 1 [Prototype] FROM Sitecore.JobInfo", conn).ExecuteScalar(); if (string.IsNullOrEmpty(json)) { throw new ParseException(state, "Database does not contain a job prototype"); } var job = new JsonJobParser(JObject.Parse(json)); return(new StaticJobLoader(job)); } }
// POST api/jobs public async Task<IHttpActionResult> Post(HttpRequestMessage request) { var content = await request.Content.ReadAsStringAsync(); try { var specification = new JsonJobParser(JObject.Parse(content)); var jobInfo = _repository.CreateJob(specification); return RedirectToRoute(ExperienceExtractorWebApiConfig.JobRouteName, new { id = jobInfo.Id }); } catch (Exception ex) { return BadRequest(ex.ToString()); } }
// POST api/jobs public async Task <IHttpActionResult> Post(HttpRequestMessage request) { var content = await request.Content.ReadAsStringAsync(); try { var specification = new JsonJobParser(JObject.Parse(content)); var jobInfo = _repository.CreateJob(specification); var urlHelper = new UrlHelper(request); string url = urlHelper.Link(ExperienceExtractorWebApiConfig.JobRouteName, new { id = jobInfo.Id }); return(Redirect(ProtocolHelper.EnforceProtocol(url))); } catch (Exception ex) { return(BadRequest(ex.ToString())); } }
public IJobLoader Parse(JobParser parser, ParseState state) { var spec = new JsonJobParser((JObject)((JsonParseState)state).Token); return(new StaticJobLoader(spec)); }