Esempio n. 1
0
        private void NavigatedJobDetail(CollectJob job)
        {
            if (job == null)
            {
                return;
            }
            DetailJob detailJob = new DetailJob()
            {
                AddressDetail = job.AddressDetail,
                CompanyName   = job.CompanyName,
                IsCollected   = true,
                JobId         = job.JobId,
                StartTime     = job.StartTime,
                University    = job.University,
                Latitude      = job.Latitude,
                Longitude     = job.Longitude,
                Url           = job.Url,
                Status        = job.Status,
                NoteText      = job.NoteText,
                OfficalWeibo  = job.OfficalWeibo
            };

            if (!double.IsNaN(job.Latitude))
            {
                detailJob.IsPathAvailable = true;
            }
            else
            {
                detailJob.IsPathAvailable = false;
            }
            (App.Current as App).CurrentJob = detailJob;
            Messenger.Default.Send <string>(@"/View/JobDetailPage.xaml?jobId=" + job.JobId, "Navigate");
        }
Esempio n. 2
0
        public List <CollectJob> GetCollectJobList()
        {
            //IQueryable<FavouriteTable> query =
            // from c in db.favouriteTable
            //where true
            //  select c;

            List <CollectJob> collectJobList = new List <CollectJob>();

            foreach (FavouriteTable j in db.favouriteTable)
            {
                CollectJob job = new CollectJob()
                {
                    AddressDetail = j.Job_AddressDetail,
                    CompanyName   = j.Job_CompanyName,
                    StartTime     = j.Job_StartTime,
                    Status        = j.Fav_Status,
                    University    = j.Job_University,
                    JobId         = j.Job_ID,
                    Url           = j.Job_Url,
                    Latitude      = j.Job_AddressLatitude,
                    Longitude     = j.Job_AddressLongitude,
                    NoteText      = j.Fav_Remarks,
                    OfficalWeibo  = j.Job_OfficalWeibo
                };
                collectJobList.Add(job);
            }
            return(collectJobList);
        }
Esempio n. 3
0
        public void CreateCollectJobWithLimit(ResourceSource source, int limit)
        {
            var job = new CollectJob(source, limit);

            Assert.AreEqual(source, job.Resource);
            Assert.AreEqual(limit, job.Limit);
            Assert.AreEqual(limit <= 0, job.LimitReached);
        }
Esempio n. 4
0
        public void CreateCollectJob(ResourceSource source)
        {
            var job = new CollectJob(source);

            Assert.AreEqual(source, job.Resource);
            Assert.AreEqual(source.Amount, job.Limit);
            Assert.AreEqual(source.Amount <= 0, job.LimitReached);
        }
 public void Initialize()
 {
     shimsContext = ShimsContext.Create();
     SetupShims();
     collectJob        = new CollectJob();
     privateObject     = new PrivateObject(collectJob);
     collectJob.JobUid = DummyGuid;
 }
Esempio n. 6
0
        public void ExecuteJobOnce()
        {
            var settlement = new Settlement();
            var villager   = new Villager();
            var definition = new ResourceDefinition("Stone", 1);
            var job        = new CollectJob(new ResourceSource(definition, 15));

            job.AssignedVillagers.Add(villager);
            job.Execute(settlement);
            Assert.IsFalse(job.LimitReached);
            Assert.AreEqual(1, job.AssignedVillagers.Count());
            Assert.AreEqual(1, settlement.StockPile[definition]);
        }
Esempio n. 7
0
        public int ExecuteJobToLimit(ResourceDefinition definition, int resourceAmount, int limit)
        {
            var settlement = new Settlement();
            var villager   = new Villager();
            var job        = new CollectJob(new ResourceSource(definition, resourceAmount), limit);

            job.AssignedVillagers.Add(villager);
            Assert.IsFalse(job.LimitReached);
            for (var i = 0; i < resourceAmount; i++)
            {
                job.Execute(settlement);
            }

            Assert.AreEqual(1, job.AssignedVillagers.Count());
            return(settlement.StockPile[definition]);
        }
Esempio n. 8
0
        public CollectJob GetNewInsertCollectJobItem(string Id)
        {
            FavouriteTable j   = db.favouriteTable.SingleOrDefault(c => c.Job_ID.Equals(Id));
            CollectJob     job = new CollectJob()
            {
                AddressDetail = j.Job_AddressDetail,
                CompanyName   = j.Job_CompanyName,
                StartTime     = j.Job_StartTime,
                Status        = j.Fav_Status,
                University    = j.Job_University,
                JobId         = j.Job_ID,
                Latitude      = j.Job_AddressLatitude,
                Longitude     = j.Job_AddressLongitude,
                NoteText      = j.Fav_Remarks,
                Url           = j.Job_Url,
                OfficalWeibo  = j.Job_OfficalWeibo
            };

            return(job);
        }
        protected override JobHandle OnUpdate(JobHandle inputDeps)
        {
            //---------check if we need to run---------//
            var entSchedule = GetSingletonEntity <CpSysSchedule>();
            var cpSchedule  = GetSingleton <CpSysSchedule>();

            if (!cpSchedule.CanRunSysUpdateAtt())
            {
                return(inputDeps);
            }

            _lastRunFrame = Time.frameCount;
            var em = World.Active.EntityManager;

            //---------preapre---------//
            is_converge_arr[0] = true;
            int cnt_relation = _group_rel.CalculateLength();

            var access_att_ro   = GetComponentDataFromEntity <CpAttitude>(isReadOnly: true);
            var access_att_rw   = GetComponentDataFromEntity <CpAttitude>();
            var access_schedule = GetComponentDataFromEntity <CpSysSchedule>();
            var access_dirty    = GetComponentDataFromEntity <CpIsDirty>(isReadOnly: false);
            var accbuf_relation = GetBufferFromEntity <CpRelationBuf>(isReadOnly: true);

            //---------run---------//

            //---------collect modifications---------//
            var jobCollect = new CollectJob {
                acc_att         = access_att_ro,
                is_converge_arr = is_converge_arr,
                orig_attitudes  = orig_attitudes.ToConcurrent(),
                target_mods     = target_mods.ToConcurrent(),
                unique_nodes    = unique_nodes.ToConcurrent(),
            }.Schedule(this, inputDeps);

            var jobCheckConverge = new CheckConvergeJob {
                is_converge_arr = is_converge_arr,
                entSchedule     = entSchedule,
                acc_schedule    = access_schedule,
            }.Schedule(jobCollect);

            //---------assign back to attitudes---------//
            var jobWriteBack = new WriteBackJob {
                acc_att = access_att_rw,
            }.Schedule(target_mods, 1, jobCollect);

            var jobClearTargetMods = target_mods.ClearWithJob(jobWriteBack);

            var jobSetDirtyNode = new SetDirtyByTargetNodes {
                orig_attitude   = orig_attitudes,
                accbuf_relation = accbuf_relation,
                acc_att         = access_att_ro,
                acc_dirty       = access_dirty,
                NODE_THRES      = NODE_MOD_THRES,
            }.Schedule(unique_nodes, 8, jobWriteBack);

            var jobClearUniqueNodes  = unique_nodes.ClearWithJob(jobSetDirtyNode);
            var jobClearOrigAttitude = orig_attitudes.ClearWithJob(jobSetDirtyNode);

            var handle_clear = JobHandle.CombineDependencies(jobClearTargetMods, jobClearUniqueNodes, jobClearOrigAttitude);

            return(JobHandle.CombineDependencies(handle_clear, jobCheckConverge));
        }