public ActionResult AllocateMarketJob(MarketJobAllocationModel model) { var marketJob = new MarketJob() { Id = model.MarketJobId }; var job = _marketServices.UpdateMarketJobAllocation(marketJob.Id, model.ResourceId, CurrentUserId, CurrentTenantId, model.LatestJobStatusId); return(Json(model, JsonRequestBehavior.AllowGet)); }
public MarketJobViewModel SaveMarketJob(MarketJob marketJob, int?resourceId, int?latestjobStatusId, int userId, int tenantId) { if (marketJob.Id == 0) { marketJob.LatestJobStatusId = latestjobStatusId; marketJob.Market = null; _currentDbContext.MarketJobs.Add(marketJob); marketJob.UpdateCreatedInfo(userId); _currentDbContext.SaveChanges(); } else { var job = _currentDbContext.MarketJobs.Find(marketJob.Id); if (job != null) { job.Name = marketJob.Name; job.Description = marketJob.Description; job.MarketRouteId = marketJob.MarketRouteId; job.UpdateUpdatedInfo(userId); _currentDbContext.Entry(job).State = EntityState.Modified; _currentDbContext.SaveChanges(); marketJob = job; } } if (resourceId.HasValue) { var allJobs = _currentDbContext.MarketJobAllocations.Where(m => m.ResourceId != resourceId.Value && m.MarketJobId != marketJob.Id && m.MarketJobStatusId != (int)MarketJobStatusEnum.Cancelled); if (allJobs.Any()) { foreach (var job in allJobs) { job.MarketJobStatusId = (int)MarketJobStatusEnum.Cancelled; _currentDbContext.Entry(job).State = EntityState.Modified; } _currentDbContext.SaveChanges(); } UpdateMarketJobAllocation(marketJob.Id, resourceId.Value, tenantId, (int)MarketJobStatusEnum.Allocated).ConfigureAwait(true); } return(Mapper.Map(marketJob, new MarketJobViewModel())); }
public void FindJobForWorker(Worker worker, NavMeshAgent agent, Camera camera) { if (_avalabeWorkstations.Count <= 0) { return; } var workStation = Helper.FindClosest(_avalabeWorkstations, worker.transform); _avalabeWorkstations.Remove(workStation); var marketPlace = new MarketJob() { WorkStation = workStation, camera = camera, transform = worker.transform, agent = agent, Market = workStation.marketInfo }; workStation.Workers++; worker.GiveJob(marketPlace); }