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));
        }
Exemple #2
0
        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()));
        }
Exemple #3
0
    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);
    }