Esempio n. 1
0
        public Scheduler(string fileName, ITwitterContextList contextList, ITwitterConfiguration twitterConfig)
        {
            FileName = fileName;
            JobProcessors.Add(SchedulerJobType.DeleteStatus, new DeleteStatusProcessor(contextList));
            JobProcessors.Add(SchedulerJobType.CreateStatus, new CreateStatusProcessor(contextList, twitterConfig));

            if (File.Exists(FileName))
            {
                var json = File.ReadAllText(FileName);
                try
                {
                    Jobs.AddRange(JsonConvert.DeserializeObject <List <SchedulerJob> >(json));
                }
                catch (Exception ex)
                {
                    LogTo.WarnException("Failed to load joblist from file", ex);
                }
            }

            JobIdCounter = Jobs.Any()
                                ? Jobs.Max(j => j.JobId) + 1
                                : 0;

            SleepTime = 1000;
        }
        public string SetStandartData()
        {
            if (!Jobs.Any())
            {
                try
                {
                    Jobs.AddRange(new List <Job>()
                    {
                        new Job()
                        {
                            Jobtype = "Менеджер"
                        },
                        new Job()
                        {
                            Jobtype = "Повар"
                        },
                        new Job()
                        {
                            Jobtype = "Доставка"
                        },
                        new Job()
                        {
                            Jobtype = "Официант"
                        }
                    });

                    if (!EatTypes.Any())
                    {
                        EatTypes.AddRange(new List <EatType>()
                        {
                            new EatType()
                            {
                                EatTypeName = "Завтрак"
                            },
                            new EatType()
                            {
                                EatTypeName = "Обед"
                            },
                            new EatType()
                            {
                                EatTypeName = "Ужин"
                            },
                        });
                    }
                    SaveChanges();
                    return(0.ToString());
                }
                catch (Exception e)
                {
                    return(e.ToString());
                }
            }
            return("1");
        }
Esempio n. 3
0
        private async Task ExecuteSearchCommand()
        {
            IsBusy = true;
            var jobsList = await SearchJob();

            if (Jobs.Any())
            {
                Jobs.Clear();
            }
            if (jobsList != null)
            {
                Jobs.AddRange(jobsList);
            }
            IsBusy = false;
        }
Esempio n. 4
0
 public VesselKit(PartModule host, ShipConstruct ship, bool assembled = true, bool simulate = false)
     : this()
 {
     Host = host;
     Name = Localizer.Format(ship.shipName);
     if (!simulate)
     {
         strip_resources(ship, assembled);
         Blueprint = ship.SaveShip();
     }
     count_kit_resources(ship);
     ShipMetric   = new Metric(ship, true, true);
     DockingNodes = FindDockingNodes(ship, ShipMetric);
     Jobs.AddRange(ship.Parts.ConvertAll(p => new PartKit(p, assembled)));
     SetStageComplete(DIYKit.ASSEMBLY, assembled);
     HasLaunchClamps = ship.HasLaunchClamp();
     CurrentIndex    = 0;
 }
Esempio n. 5
0
        public VesselKit(PartModule host, ShipConstruct ship, bool assembled = true, bool simulate = false)
            : this()
        {
            Host = host;
            Name = Localizer.Format(ship.shipName);
            if (!simulate)
            {
                strip_resources(ship, assembled);
                Blueprint = ship.SaveShip();
            }
            var create_resources = count_kit_resources(ship, assembled);

            ShipMetric   = new Metric(ship, true, true);
            DockingNodes = FindDockingNodes(ship, ShipMetric);
            Jobs.AddRange(ship.Parts.ConvertAll(p => new PartKit(p, assembled)));
            create_resources.ForEach(r =>
                                     Jobs.Add(new PartKit(r.Value.name, r.Value.mass, r.Value.cost,
                                                          r.Value.type == KitResourceInfo.ResourceType.CONSTRUCTED)));
            SetStageComplete(DIYKit.ASSEMBLY, assembled);
            HasLaunchClamps = ship.HasLaunchClamp();
            CurrentIndex    = 0;
        }
Esempio n. 6
0
 public override void Load(ConfigNode node)
 {
     base.Load(node);
     if (node.HasValue("Completeness"))
     {
         //Utils.Log("VesselKit.Load: {}\n{}", this, node);//debug
         //deprecated config conversion
         CurrentIndex = 0;
         var list = new PersistentList <PartKit>();
         var n    = node.GetNode("BuiltParts");
         if (n != null)
         {
             list.Load(n);
             Jobs.AddRange(list.Where(j => j.Valid));
             list.Clear();
             CurrentIndex = Jobs.Count;
         }
         n = node.GetNode("PartUnderConstruction");
         if (n != null)
         {
             var p = new PartKit();
             p.Load(n);
             if (p.Valid)
             {
                 Jobs.Add(p);
             }
         }
         n = node.GetNode("UnbuiltParts");
         if (n != null)
         {
             list.Load(n);
             Jobs.AddRange(list.Where(j => j.Valid));
             list.Clear();
         }
         //Utils.Log("VesselKit.Loaded: {}", this);//debug
     }
 }
Esempio n. 7
0
        /// <summary>开始</summary>
        public void Start()
        {
            // 如果没有指定工作者,则全局扫描
            var bs = Jobs.ToList();

            if (bs.Count == 0)
            {
                XTrace.WriteLine("没有可用工作者");
                return;
            }

            // 启动作业提供者,获取所有作业
            var prv = Provider;

            if (prv == null)
            {
                prv = Provider = new JobFileProvider();
            }
            if (prv.Schedule == null)
            {
                prv.Schedule = this;
            }
            prv.Start();

            var jobs = prv.GetJobs(bs.Select(e => e.Name).ToArray());

            if (jobs == null || jobs.Length == 0)
            {
                XTrace.WriteLine("没有可用作业");
                return;
            }

            // 输出日志
            var mode = $"定时{Period}秒";
            var msg  = $"启动任务调度引擎[{prv}],作业[{bs.Count}]项,模式:{mode}";

            XTrace.WriteLine(msg);

            // 设置日志
            foreach (var wrk in bs)
            {
                wrk.Schedule = this;
                wrk.Provider = prv;

                var job = wrk.Model = jobs.FirstOrDefault(e => e.Name == wrk.Name);
                if (job != null && job.Mode == 0)
                {
                    job.Mode = wrk.Mode;
                }

                wrk.Log = XTrace.Log;
                wrk.Start();
            }

            // 全部启动后再加入集合
            Jobs.Clear();
            Jobs.AddRange(bs);

            // 定时执行
            if (Period > 0)
            {
                _timer = new TimerX(Loop, null, 100, Period * 1000, "Job")
                {
                    Async = true
                }
            }
            ;
        }
Esempio n. 8
0
 /// <summary>Adds the specified new jobs.</summary>
 /// <param name="newJobs">The new jobs.</param>
 public void Add(params Job[] newJobs) =>
 // DONTTOUCH: please DO NOT remove .Freeze() call.
 Jobs.AddRange(newJobs.Select(j => j.Freeze()));
Esempio n. 9
0
 public void AddJobs(params Job[] jobs)
 {
     Jobs.AddRange(jobs);
 }