public JobViewModel Get(JobCriteria criteria, int?offset, int limit = 15) { var userId = User.FindFirst("UserId")?.Value; //var userId = FakeData.user.UserId; return(jobRepository.Get(criteria, userId, offset, limit)); }
private List <Job> Search(JobCriteria criteria, string userId) { var listJob = jobs; listJob = listJob.Where(x => ((x.Id ?? "").Contains(criteria.SearchText ?? "") || (x.CustomerName ?? "").Contains(criteria.SearchText ?? "") || (x.PO_NO ?? "").Contains(criteria.SearchText ?? "") || (x.MBL ?? "").Contains(criteria.SearchText ?? "")) && (x.UserId == userId || string.IsNullOrEmpty(userId)) && (x.AssignTime >= criteria.FromDate || criteria.FromDate == null) && (x.AssignTime <= criteria.ToDate || criteria.ToDate == null) ).ToList(); var results = listJob; switch (criteria.SearchStatus) { case StatusEnum.JobStatusSearch.Finish: results = results.Where(x => x.CurrentStageStatus == StatusEnum.JobStatus.Finish).OrderByDescending(x => x.ServiceDate).ToList(); break; case StatusEnum.JobStatusSearch.InProgess: results = results.Where(x => x.CurrentStageStatus != StatusEnum.JobStatus.Finish).OrderBy(x => x.CurrentStageStatus).ToList(); break; default: results = results.OrderByDescending(x => x.ServiceDate).ToList(); break; } return(results); }
public JobViewModel Get(JobCriteria criteria, string userId, int?offset, int limit = 15) { var data = Search(criteria, userId); var totalItems = data.Count; var numberJobFinishs = data.Count(x => x.CurrentStageStatus == StatusEnum.JobStatus.Finish); if (offset != null) { int skip = (int)offset; int take = (int)limit; data = data.Skip(skip).Take(take).ToList(); } data.ForEach(x => { x.CurrentStageStatusName = GetStatusName(x.CurrentStageStatus); x.NumberStage = stages.Count(y => y.JobId == x.Id); x.NumberStageFinish = stages.Count(y => y.JobId == x.Id && y.Status == StatusEnum.StageStatus.Done); x.PercentFinish = Math.Round(decimal.Divide(x.NumberStageFinish, x.NumberStage) * 100); }); var result = new JobViewModel { Jobs = data, TotalItems = totalItems, NumberJobFinishs = numberJobFinishs, Offset = offset, Limit = limit }; return(result); }
protected string SerializeJobCriteria(JobCriteria jobCriteria) { return(JsonConvert.SerializeObject(jobCriteria, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore })); }
public override LexResponse Process(LexEvent lexEvent, ILambdaContext context) { var slots = lexEvent.CurrentIntent.Slots; var sessionAttributes = lexEvent.SessionAttributes ?? new Dictionary <string, string>(); JobCriteria jobCriteria = new JobCriteria { LocationInput = slots.ContainsKey(LOCATION_SLOT) ? slots[LOCATION_SLOT] : null, Profession = slots.ContainsKey(PROFESSION_SLOT) ? slots[PROFESSION_SLOT] : null, Skills = slots.ContainsKey(SKILLS_SLOT) ? slots[SKILLS_SLOT].Split(',').ToList() : null, PerfectJob = slots.ContainsKey(PERFECT_JOB_SLOT) ? slots[PERFECT_JOB_SLOT] : null, KeyPhrases = slots.ContainsKey(PERFECT_JOB_SLOT) ? GetKeyPhrases(slots[PERFECT_JOB_SLOT]) : null }; if (slots.ContainsKey(LOCATION_SLOT)) { var geoLocation = FuzzyGeoCode(slots[LOCATION_SLOT]).Result; if (geoLocation != null && geoLocation.Longitude != 0 && geoLocation.Latitude != 0) { jobCriteria.Longitude = geoLocation.Longitude; jobCriteria.Latituede = geoLocation.Latitude; jobCriteria.LocationInput = geoLocation.FormattedLocation; } } else { var geoLocation = FuzzyGeoCode("aurora, co").Result; if (geoLocation != null && geoLocation.Longitude != 0 && geoLocation.Latitude != 0) { jobCriteria.Longitude = geoLocation.Longitude; jobCriteria.Latituede = geoLocation.Latitude; jobCriteria.LocationInput = geoLocation.FormattedLocation; } } sessionAttributes[CURRENT_JOB_CRITERIA_SESSION_ATTRIBUTE] = SerializeJobCriteria(jobCriteria); var jobs = SearchJobs(jobCriteria); var content = "DERP! I didn't find any jobs that are a fit for you right now."; if (jobs.ResultItems.Any()) { var job = jobs.ResultItems.FirstOrDefault(); var desciption = job.description.Substring(0, 500); var cutOffIndex = desciption.LastIndexOf(' '); content = string.Format("I found your next job. {0} located in {1}. {2}... To apply visit {3}", job.jobTitle, job.locationText, desciption.Remove(cutOffIndex).Replace(" ", string.Empty), job.jobUrl); } return(Close( sessionAttributes, "Fulfilled", new LexResponse.LexMessage { ContentType = MESSAGE_CONTENT_TYPE, Content = content } )); }
public void SubmitSingleProcess(int processKey, JobCriteria criteria, bool isManual = true, string triggeredBy = "System") { SubmitProcess(new List <int>() { processKey }, new List <JobCriteria>() { criteria }, isManual, triggeredBy); }
public ProcessSubmittedContext(long id, int processKey, bool isResubmission, string submittedBy, JobCriteria criteria, ILogger logger) { Criteria = criteria; Id = id; ProcessKey = processKey; IsResubmission = isResubmission; SubmittedBy = submittedBy; Logger = logger; }
public HttpResponseMessage RunJobNow([FromBody] JobCriteria jobCriteria) { try { return(Request.CreateResponse(HttpStatusCode.OK, QuartzProgram <AdminController> .RunJobNow(jobCriteria.JobName, jobCriteria.JobGroup))); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, $"Failed to RunJobNow due to {ex.ToString()}")); } }
private new Job Single(Action <JobCriteria> with) { JobCriteria criteria = new JobCriteria(); with(criteria); return(items .Where(x => criteria.Identifier.Is(x.Key.Identifier)) .OrderByDescending(x => x.Key.Version) .Select(x => new Job { Header = x.Key, Extract = callback => callback(x.Value) }) .SingleOrDefault()); }
private JobSearchResults SearchJobs(JobCriteria searchParms) { var credential = new SearchCredentials(AZURE_SEARCH_KEY); SearchServiceClient serviceClient = new SearchServiceClient(ACURE_SEARCH_SERVICE_NAME, credential); var indexClient = serviceClient.Indexes.GetClient("denvertechjobs"); var sp = new SearchParameters { ScoringProfile = (searchParms.Latituede != 0 && searchParms.Latituede != 0) ? "geo" : "newAndHighlyRated", IncludeTotalResultCount = true, SearchMode = SearchMode.All, //Filter = "trioType eq 'Food'" }; if (searchParms.Latituede != 0 && searchParms.Latituede != 0) { var scoreParam = new ScoringParameter("currentLocation", Microsoft.Spatial.GeographyPoint.Create((double)searchParms.Latituede, (double)searchParms.Longitude)); sp.ScoringParameters = new List <ScoringParameter> { scoreParam }; } var searchText = string.Join('|', searchParms.KeyPhrases) + "+" + string.Join('|', searchParms.Skills) + "+" + searchParms.Profession; DocumentSearchResult <JobDocument> response = indexClient.Documents.Search <JobDocument>(searchText, sp); var results = new JobSearchResults { TotalResults = response.Count }; if (response.Results.Any()) { var docs = (from d in response.Results select d.Document).ToList(); results.ResultItems.AddRange(docs); } return(results); }
public void SubmitSingleProcess <T>(JobCriteria criteria, bool isManual = true, string triggeredBy = "System") where T : IBaseProcess { var processKey = Activator.CreateInstance <T>().ProcessKey; SubmitSingleProcess(processKey, criteria, isManual); }
public List <Job> GetBy(JobCriteria criteria) { return(Search(criteria, null)); }