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()));
            }
        }
Exemple #4
0
        public IJobLoader Parse(JobParser parser, ParseState state)
        {
            var spec = new JsonJobParser((JObject)((JsonParseState)state).Token);

            return(new StaticJobLoader(spec));
        }