Exemplo n.º 1
0
        public void Execute(PerformContext context)
        {
            /*
             *   1. 顯示訊息
             *   2. 檢查目標是否存在
             *   3. 執行動作
             */
            // Arrange
            context.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss} CalcSpaceJob 開始執行 ...");
            _action = context.GetJobData <CaleSpaceActoinType>("Type");
            context.WriteLine($"執行類別為:{_action}");
            _calc = GetCale(_action);
            // 取得目標位置
            var target = _calc.GetTarget(context);

            context.WriteLine($"目標位置:{target}");

            //Checking
            if (!_calc.TargetExists(target))
            {
                context.SetTextColor(ConsoleTextColor.Red);
                context.WriteLine($"目標位置不存在,位置為:{target}");
                context.ResetTextColor();
            }
            // Act
            context.WriteLine($"計算目標{target}");
            var searchPattern = context.GetJobData <string>("searchPattern");

            context.WriteLine($"搜尋模式字串:{searchPattern}");
            var result = _calc.Calculate(target, searchPattern);

            context.WriteLine("目標大小為:{0}", result);
            //  WriteTo("41DCF8A5ACB74AA38DD3DB8CB1EE5462", DateTime.Now, result);
        }
        public void Execute(PerformContext context)
        {
            context.WriteLine($"{DateTime.Now:yyycontext.WriteLine(y/MM/dd HH:mm:ss} ExecExternalJob 開始執行 ...");
            var wft     = context.GetJobData <WaitForType>("WaitFor");
            var program = context.GetJobData <string>("Program");
            var cmd     = context.GetJobData <string>("command");
            var timeOut = context.GetJobData <int>("TimeOut");

            switch (wft)
            {
            case WaitForType.DonotCare:
                context.WriteLine(CmdHelper.RunProgram(program, cmd));
                break;

            case WaitForType.WaitForTimeOut:
                context.WriteLine(CmdHelper.RunProgram(program, cmd, timeOut));
                break;

            case WaitForType.WaitFor:
                context.WriteLine(CmdHelper.RunProgramWaitFor(program, cmd));
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            context.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss} ExecExternalJob 完成 ...");
        }
Exemplo n.º 3
0
        public void Execute(PerformContext context)
        {
            context.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss} SampleJobA Running ...");

            var intVal       = context.GetJobData <int>("IntVal");
            var stringVal    = context.GetJobData <string>("StringVal");
            var booleanVal   = context.GetJobData <bool>("BooleanVal");
            var simpleObject = context.GetJobData <PamanObject>("SimpleObject");

            context.WriteLine("完成");
        }
Exemplo n.º 4
0
        public void Execute(PerformContext context)
        {
            context.WriteLine(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + " MyJob2 Running ...");
            var intVal       = context.GetJobData <int>("IntVal");
            var stringVal    = context.GetJobData <string>("StringVal");
            var booleanVal   = context.GetJobData <bool>("BooleanVal");
            var simpleObject = context.GetJobData <SimpleObject>("SimpleObject");

            context.SetJobData("IntVal", ++intVal);
            context.WriteLine("IntVal changed to " + intVal);
            context.SetJobData("NewIntVal", 99);
            var newIntVal = context.GetJobData <int>("NewIntVal");
        }
Exemplo n.º 5
0
        public void Execute(PerformContext context)
        {
            context.WriteLine($"{DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")} MyJob2 Running ...");

            var intVal = context.GetJobData <int>("IntVal");

            var stringVal = context.GetJobData <string>("StringVal");

            var booleanVal = context.GetJobData <bool>("BooleanVal");

            var simpleObject = context.GetJobData <SimpleObject>("SimpleObject");

            context.WriteLine($"IntVal:{intVal},StringVal:{stringVal},BooleanVal:{booleanVal},simpleObject:{JobHelper.ToJson(simpleObject)}");
        }
Exemplo n.º 6
0
 public void Execute(PerformContext context)
 {
     if (IsRunning == false)
     {
         lock (_obj)
         {
             if (IsRunning == false)
             {
                 IsRunning = true;
                 context.WriteLine("开始执行缓存更新任务");
                 try
                 {
                     context.GetJobData();
                     using (var scope = Static.serviceProvider.CreateScope())
                     {
                         // doing ....
                     }
                     context.WriteLine("结束执行缓存更新任务");
                 }
                 catch (Exception ex)
                 {
                     context.WriteLine($"执行缓存更新任务出现异常:{ex}");
                 }
                 IsRunning = false;
             }
         }
     }
 }
Exemplo n.º 7
0
        public void Execute(PerformContext context)
        {
            if (IsRunning == false)
            {
                lock (_obj)
                {
                    if (IsRunning == false)
                    {
                        IsRunning = true;
                        context.WriteLine("开始执行缓存更新任务");
                        try
                        {
                            context.GetJobData();

                            context.WriteLine("结束执行缓存更新任务");
                        }
                        catch (Exception ex)
                        {
                            context.WriteLine($"执行缓存更新任务出现异常:{ex}");
                        }
                        IsRunning = false;
                    }
                }
            }
        }
Exemplo n.º 8
0
        public void Execute(PerformContext context)
        {
            context.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss} RunPowerShell Job Running ...");

            var script = context.GetJobData <string>("script");

            // var script = @"Get-Service";

            using (var ps = PowerShell.Create())
            {
                ps.AddScript(script);

                foreach (var result in ps.Invoke())
                // foreach (var msg in ps.Invoke<string>())
                {
                    context.WriteLine(result.Members["Name"].Value);
                }
                // 判斷是否有錯誤
                if (ps.Streams.Error.Count != 0)
                {
                    var errors = ps.Streams.Error;
                    if (errors != null && errors.Count > 0)
                    {
                        foreach (var err in errors)
                        {
                            context.WriteLine($"錯誤: {err}");
                        }
                    }
                }
            }
            context.WriteLine("執行Power Shell 完成");
        }
Exemplo n.º 9
0
        public void Execute(PerformContext context)
        {
            context.WriteLine($"{DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")} MyJob2 Running ...");

            ModelTwo model = context.GetJobData <ModelTwo>("SimpleObject");

            context.WriteLine(model.Name + ";" + model.Age);
        }
Exemplo n.º 10
0
        public void Execute(PerformContext context)
        {
            context.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss} RunCmdJob 開始執行 ...");

            var cmd = context.GetJobData <string>("command");

            CmdHelper.Run(cmd, context.WriteLine);

            context.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss} RunCmdJob 完成 ...");
        }
Exemplo n.º 11
0
        public void Execute(PerformContext context)
        {
            context.SetJobData("NewIntVal", 99);

            var newIntVal = context.GetJobData <int>("NewIntVal");

            context.WriteLine("NewIntVal:" + newIntVal);

            context.WriteLine(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + " MyJob1 Running ...");
        }
        public void Execute(PerformContext context)
        {
            context.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss} Check Warehouse Running ...");
            // Arrange
            // todo 這里要處理密碼加密的問題
            var connString = context.GetJobData <DBConnectionstring>("ConnectionString");

            context.WriteLine($"ConnectionInfo- IP:{connString.ServerIP} DB:{connString.DBNM} User:{connString.User}");
            var useToDay  = context.GetJobData <bool>("UseToDay");
            var startDate = useToDay ? DateTime.Today : context.GetJobData <DateTime>("StartDate");
            var service   = new WaterNumberService(connString.connectionstring);

            // 執行
            var result = service.Execute(startDate);

            // 回報
            context.WriteLine($"發現欠缺單號情況共有{result.Incompletes.Count()}組");
            context.WriteLine($"發現欠缺單號共有{result.Incompletes.Count()}筆");
            result.MForms.ToList().ForEach(r => context.WriteLine($"發現欠缺單號{r.VCH_TY}-{r.expected},日期為{r.VCH_DT:yyyy/MM/dd}"));
            context.WriteLine("完成單別流水號是否有欠缺任務");
        }
Exemplo n.º 13
0
        public void Execute(PerformContext context)
        {
            context.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss} Maintain Rule Running ...");
            // Arrange
            // todo 這里要處理密碼加密的問題
            var    connString = context.GetJobData <DBConnectionstring>("ConnectionString");
            string TRGID      = context.GetJobData <string>("GID");

            context.WriteLine($"ConnectionInfo - IP:{connString.ServerIP} DB:{connString.DBNM} User:{connString.User}");
            context.WriteLine($"TriggerID - {TRGID}");
            var service = new DBMaintainService(connString.connectionstring)
            {
                triggerMapDataValueGID = TRGID
            };
            // 執行
            var result = service.Execute(context.WriteLine);

            // 回報
            context.WriteLine($"共執行了{result}項目");
            context.WriteLine("完成規則維護任務");
        }
Exemplo n.º 14
0
        public void Execute(PerformContext context)
        {
            context.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss} Synchronize data running...");
            // Arrange
            // todo 這里要處理密碼加密的問題
            var connString = context.GetJobData <DBConnectionstring>("ConnectionString");

            context.WriteLine($"ConnectionInfo- IP:{connString.ServerIP} DB:{connString.DBNM} User:{connString.User}");
            var useToDay     = context.GetJobData <bool>("UseToDay");
            var startDate    = useToDay ? DateTime.Today : context.GetJobData <DateTime>("StartDate");
            var toKSCservice = new CCMToKSCService(connString.connectionstring)
            {
                InsertToTemp       = context.GetJobData <string>("InsertToTemp"),
                InsertTempToFormal = context.GetJobData <string>("InsertTempToFormal")
            };

            context.WriteLine($"從CCM-->KSC筆數為:{toKSCservice.Execute()}");

            var toSubCservice = new KSCToSubService(connString.connectionstring)
            {
                ScriptFile = context.GetJobData <string>("ToSubSQL")
            };

            context.WriteLine($"從KSC-->Sub筆數為:{toSubCservice.Execute()}");
            context.WriteLine("完成同步料號到各地區任務");
        }
Exemplo n.º 15
0
        public void Execute(PerformContext context)
        {
            context.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss}設定單據性質設定任務開始執行 ...");
            // Arrange
            var connString = context.GetJobData <DBConnectionstring>("ConnectionString");

            context.WriteLine($"ConnectionInfo- IP:{connString.ServerIP} DB:{connString.DBNM} User:{connString.User}");
            var jobdata = context.GetJobData <IList <VchCfgItem> >("ITEM");
            var service = new SetVchCfgService(connString.connectionstring);
            // 在這個任務中強制要給昨天日期
            var yesterday = DateTime.Today.AddDays(-1).ToString("yyyy/MM/dd");

            // act
            foreach (var pair in jobdata)
            {
                context.WriteLine($"設定單別為{pair.VCHTY},將欄位({pair.Field})設定為{pair.Value}");
                service.SetItem(pair.Field, yesterday, pair.VCHTY);
            }
            var count = service.Execute();

            // Feedback
            context.WriteLine($"共更新{count}筆資料");
            context.WriteLine("完成設定單據性質設定任務");
        }
Exemplo n.º 16
0
        public void Execute(PerformContext context)
        {
            context.WriteLine($"{DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")} LongRunningJob Running ...");

            var runningTimes = context.GetJobData <int>("RunningTimes");

            context.WriteLine($"get job data parameter-> RunningTimes: {runningTimes}");

            var progressBar = context.WriteProgressBar();

            foreach (var i in Enumerable.Range(1, runningTimes).ToList().WithProgress(progressBar))
            {
                Thread.Sleep(1000);
            }
        }
Exemplo n.º 17
0
        public void Execute(PerformContext context)
        {
            var cityId = context.GetJobData <string>("CityId");

            var client = _httpClientFactory.CreateClient();

            client.BaseAddress = new Uri("http://aider.meizu.com");
            Task <string> task = client.GetStringAsync($"/app/weather/listWeather?cityIds={cityId}");

            task.Wait();
            string  result = task.Result;
            JObject jObj   = JObject.Parse(result);

            if (jObj.Value <string>("code") != "200")
            {
                throw new Exception("返回的状态不是200!");
            }

            var      timeZone   = context.GetJobData <string>("TimeZone");
            DateTime nowTime_CN = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, TimeZoneInfo.FindSystemTimeZoneById(timeZone));

            string dayInfo = "今天";

            if (nowTime_CN.Hour > 12)
            {
                dayInfo    = "明天";
                nowTime_CN = nowTime_CN.AddDays(1d);
            }

            JArray jarrCityWeather = jObj.Value <JArray>("value");

            foreach (JToken jtCityWeather in jarrCityWeather)
            {
                var cityName = jtCityWeather.Value <string>("city");

                //最近几日天气情况
                JArray jarrWeathers = jtCityWeather.Value <JArray>("weathers");
                foreach (var jtDayWeather in jarrWeathers)
                {
                    DateTime tempDate = jtDayWeather.Value <DateTime>("date");
                    if (tempDate.Date == nowTime_CN.Date)
                    {
                        //白天温度,最高温度,摄氏度
                        string dayTemp = jtDayWeather.Value <string>("temp_day_c");
                        //夜晚温度,最低温度,摄氏度
                        string nightTemp = jtDayWeather.Value <string>("temp_night_c");
                        //wd:风向
                        string wd = jtDayWeather.Value <string>("wd");
                        wd = string.IsNullOrWhiteSpace(wd) ? "" : $",风向:{wd}";
                        //ws:风力大小
                        string ws = jtDayWeather.Value <string>("ws");
                        ws = string.IsNullOrWhiteSpace(ws) ? "" : $",风力:{ws}";
                        //weather:天气情况
                        string weather = jtDayWeather.Value <string>("weather");

                        string msg           = $"{cityName},{dayInfo}天气:{weather} ,温度:{nightTemp}~{dayTemp}℃{wd}{ws}。";
                        var    toPhoneNumber = context.GetJobData <string>("ToPhoneNumber");
                        TwilioHelper.SendSms(toPhoneNumber, msg).Wait();
                        break;
                    }
                }
            }
        }
Exemplo n.º 18
0
 public string GetTarget(PerformContext context)
 {
     return(context.GetJobData <string>("Path"));
 }
Exemplo n.º 19
0
        public void Execute(PerformContext context)
        {
            var paras = context.GetJobData();

            Console.WriteLine($"{DateTime.Now}-execute MyRecurringJob-param1:{paras["param1"]}");
        }