diff --git a/Installizer/Tasker.cs b/Installizer/Tasker.cs
index a552997..d413451 100644
--- a/Installizer/Tasker.cs
+++ b/Installizer/Tasker.cs
@@ -1,24 +1,20 @@
using Microsoft.Win32.TaskScheduler;
using Newtonsoft.Json.Linq;
-namespace Installizer
-{
- public class Tasker
- {
+namespace Installizer {
+ public class Tasker {
#region Constructors
private string TaskName;
- string TaskPath;
- TaskService serv;
- TaskDefinition taskDefinition;
- public Tasker(string TaskName, string TaskPath)
- {
+ private string TaskPath;
+ private TaskService serv;
+ private TaskDefinition taskDefinition;
+ public Tasker(string TaskName, string TaskPath) {
this.TaskName = TaskName;
this.TaskPath = TaskPath;
this.serv = new();
this.taskDefinition = this.serv.NewTask();
}
- public Tasker(string TaskName, string TaskPath, string description)
- {
+ public Tasker(string TaskName, string TaskPath, string description) {
this.TaskName = TaskName;
this.TaskPath = TaskPath;
this.serv = new();
@@ -31,8 +27,7 @@ namespace Installizer
/// This function adds description to the scheduled task.
///
/// the description text to add
- public void TaskDescribe(string description)
- {
+ public void TaskDescribe(string description) {
this.taskDefinition.RegistrationInfo.Description = description;
this.taskDefinition.RegistrationInfo.Author = $"{System.Environment.MachineName}\\{System.Environment.UserName}";
}
@@ -43,8 +38,7 @@ namespace Installizer
/// enables the task. the default is true
/// starts the task if it missed, when the computer is availible. the defult is true
/// hides the running. the default is false
- public void TaskSettingsDefine(bool batteries = true, bool enable = true, bool startwhenavailibale = true, bool hidden = false)
- {
+ public void TaskSettingsDefine(bool batteries = true, bool enable = true, bool startwhenavailibale = true, bool hidden = false) {
this.taskDefinition.Settings.DisallowStartIfOnBatteries = !batteries;
this.taskDefinition.Settings.StopIfGoingOnBatteries = !batteries;
this.taskDefinition.Settings.Enabled = enable;
@@ -52,104 +46,78 @@ namespace Installizer
this.taskDefinition.Settings.Hidden = hidden;
}
- public void TaskPrincipal(bool highest = false, bool service = false, string user = "")
- {
- if (highest)
- {
+ public void TaskPrincipal(bool highest = false, bool service = false, string user = "") {
+ if (highest) {
this.taskDefinition.Principal.RunLevel = TaskRunLevel.Highest;
- }
- else
- {
+ } else {
this.taskDefinition.Principal.RunLevel = TaskRunLevel.LUA;
}
- if (service)
- {
+ if (service) {
this.taskDefinition.Principal.LogonType = TaskLogonType.S4U;
- }
- else
- {
+ } else {
this.taskDefinition.Principal.LogonType = TaskLogonType.Password;
}
- if (user != "")
- {
+ if (user != "") {
this.taskDefinition.Principal.Id = user;
- }
- else
- {
+ } else {
this.taskDefinition.Principal.Id = $"{System.Environment.MachineName}\\{System.Environment.UserName}";
}
}
- public void TaskEventTriggerDefine(string logName, string logSource, int eventID)
- {
- EventTrigger trigger = new EventTrigger();
+ public void TaskEventTriggerDefine(string logName, string logSource, int eventID) {
+ EventTrigger trigger = new();
trigger.Enabled = true;
trigger.SetBasic(logName, logSource, eventID);
this.taskDefinition.Triggers.Add(trigger);
}
-
- public void TaskDailyTriggerrDefine(string hour)
- {
+ public void TaskDailyTriggerrDefine(string hour) {
DailyTrigger trigger = new();
trigger.Enabled = true;
- int h = System.Int32.Parse(hour.Split(":")[0]);
- int m = System.Int32.Parse(hour.Split(":")[1]);
+ int h = int.Parse(hour.Split(":")[0]);
+ int m = int.Parse(hour.Split(":")[1]);
trigger.StartBoundary = System.DateTime.Today + System.TimeSpan.FromHours(h) + System.TimeSpan.FromMinutes(m);
//trigger.Repetition.Duration = System.TimeSpan.FromDays(1);
//trigger.Repetition.Interval = System.TimeSpan.FromMinutes(1);
this.taskDefinition.Triggers.Add(trigger);
}
- public void TaskDailyTriggersDefine(string[] hours)
- {
- foreach (string hour in hours)
- {
+ public void TaskDailyTriggersDefine(string[] hours) {
+ foreach (string hour in hours) {
TaskDailyTriggerrDefine(hour);
}
}
- public void TaskWeeklyTriggerDefine(string hour, int day)
- {
- WeeklyTrigger trigger = WeeklyTriggerCreate(hour, day);
- this.taskDefinition.Triggers.Add(trigger);
+ public void TaskWeeklyTriggerDefine(WeeklyTrigger trig) {
+ this.taskDefinition.Triggers.Add(trig);
}
- public void TaskActionsDefine(string app, string? argus, string? location)
- {
+ public void TaskWeeklyTriggerDefine(string hour, int day) {
+ this.taskDefinition.Triggers.Add(WeeklyTriggerCreate(hour, day));
+ }
+ public void TaskActionsDefine(string app, string? argus, string? location) {
ExecAction action = new();
action.Path = app;
- if (argus != null)
- {
+ if (argus != null) {
action.Arguments = argus;
}
- if (location != null)
- {
+ if (location != null) {
action.WorkingDirectory = location;
}
this.taskDefinition.Actions.Add(action);
}
- public void TaskActionsDefine(string[] apps, string?[] argus, string?[] locations)
- {
- for (int i = 0; i < apps.Length; i++)
- {
+ public void TaskActionsDefine(string[] apps, string?[] argus, string?[] locations) {
+ for (int i = 0; i < apps.Length; i++) {
TaskActionsDefine(apps[i], argus[i], locations[i]);
}
}
- public void TaskWeeklyTriggerDefine(string hour, int[] days)
- {
+ public void TaskWeeklyTriggerDefine(string hour, int[] days) {
this.taskDefinition.Triggers.Add(WeeklyTriggerCreate(hour, days));
}
- public void TaskWeeklyTriggerDefine(string[] hours, int[] days)
- {
- foreach (string hour in hours)
- {
+ public void TaskWeeklyTriggerDefine(string[] hours, int[] days) {
+ foreach (string hour in hours) {
TaskWeeklyTriggerDefine(hour, days);
}
}
- public void RegisterTask()
- {
- try
- {
+ public void RegisterTask() {
+ try {
this.serv.RootFolder.RegisterTaskDefinition($"{this.TaskPath}\\{this.TaskName}", this.taskDefinition);
- }
- catch
- {
+ } catch {
this.serv.RootFolder.RegisterTaskDefinition(this.TaskPath, this.taskDefinition);
}
@@ -160,59 +128,47 @@ namespace Installizer
#endregion
#region Helpers
- private System.DateTime Day(int day)
- {
- if (day > 0 && day < 8)
- {
+ private System.DateTime Day(int day) {
+ if (day > 0 && day < 8) {
return new System.DateTime(1977, 12, 31).AddDays(day);
}
return new System.DateTime(1978, 1, 1);
}
- private System.DateTime HourTime(string time)
- {
+ private System.DateTime HourTime(string time) {
return System.DateTime.Parse(time);
}
- private WeeklyTrigger WeeklyTriggerCreate(string hour, int day)
- {
+ private WeeklyTrigger WeeklyTriggerCreate(string hour, int day) {
WeeklyTrigger trigger = new();
DaysOfTheWeek dayS;
- switch (day)
- {
- case 1:
- {
+ switch (day) {
+ case 1: {
dayS = DaysOfTheWeek.Sunday;
break;
}
- case 2:
- {
+ case 2: {
dayS = DaysOfTheWeek.Monday;
break;
}
- case 3:
- {
+ case 3: {
dayS = DaysOfTheWeek.Tuesday;
break;
}
- case 4:
- {
+ case 4: {
dayS = DaysOfTheWeek.Wednesday;
break;
}
- case 5:
- {
+ case 5: {
dayS = DaysOfTheWeek.Thursday;
break;
}
- case 6:
- {
+ case 6: {
dayS = DaysOfTheWeek.Friday;
break;
}
- default:
- {
+ default: {
dayS = DaysOfTheWeek.Saturday;
break;
}
@@ -221,57 +177,46 @@ namespace Installizer
trigger.StartBoundary = System.DateTime.Parse(hour, System.Globalization.CultureInfo.InvariantCulture);
return trigger;
}
- private WeeklyTrigger WeeklyTriggerCreate(string hour, int[] day)
- {
+ private WeeklyTrigger WeeklyTriggerCreate(string hour, int[] day) {
WeeklyTrigger trigger = new();
DaysOfTheWeek[] dayS = new DaysOfTheWeek[day.Length];
- for (int i = 0; i < day.Length; i++)
- {
+ for (int i = 0; i < day.Length; i++) {
- switch (day[i])
- {
- case 1:
- {
+ switch (day[i]) {
+ case 1: {
dayS[i] = DaysOfTheWeek.Sunday;
break;
}
- case 2:
- {
+ case 2: {
dayS[i] = DaysOfTheWeek.Monday;
break;
}
- case 3:
- {
+ case 3: {
dayS[i] = DaysOfTheWeek.Tuesday;
break;
}
- case 4:
- {
+ case 4: {
dayS[i] = DaysOfTheWeek.Wednesday;
break;
}
- case 5:
- {
+ case 5: {
dayS[i] = DaysOfTheWeek.Thursday;
break;
}
- case 6:
- {
+ case 6: {
dayS[i] = DaysOfTheWeek.Friday;
break;
}
- default:
- {
+ default: {
dayS[i] = DaysOfTheWeek.Saturday;
break;
}
}
}
- foreach (var d in dayS)
- {
+ foreach (var d in dayS) {
trigger.DaysOfWeek |= d;
}
trigger.StartBoundary = System.DateTime.Parse(hour, System.Globalization.CultureInfo.InvariantCulture);
@@ -311,19 +256,16 @@ namespace Installizer
// trigger.StartBoundary = new DateTime[dates.Length];
//}
#region Jsoner
- public static void ExportJson(string path, Tasker task)
- {
+ public static void ExportJson(string path, Tasker task) {
var tas = Newtonsoft.Json.JsonConvert.SerializeObject(task, Newtonsoft.Json.Formatting.Indented);
System.IO.File.WriteAllText(path, tas);
}
- public void ExportJson()
- {
+ public void ExportJson() {
JObject Task = new();
Task.Add(new JProperty("TaskName", this.TaskName));
Task.Add(new JProperty("TaskPath", this.TaskPath));
JArray actions = new();
- foreach (var act in this.taskDefinition.Actions)
- {
+ foreach (var act in this.taskDefinition.Actions) {
JArray array = new();
array.Add(((ExecAction)act).Path);
@@ -331,24 +273,21 @@ namespace Installizer
array.Add(((ExecAction)act).WorkingDirectory);
actions.Add(array);
}
- foreach (var trig in this.taskDefinition.Triggers)
- {
- JArray triggers = new JArray();
+ foreach (var trig in this.taskDefinition.Triggers) {
+ JArray triggers = new();
// TODO: continue
}
//Task.Add(new JProperty())
}
- public static TriggerCollection GetDailyTrigger(JObject triggers)
- {
+ public static TriggerCollection GetDailyTrigger(JObject triggers) {
TaskService task = new();
TriggerCollection result = task.NewTask().Triggers;
- foreach (var trig in triggers["dayly"])
- {
- DailyTrigger trigger = new DailyTrigger();
- int h = System.Int32.Parse(trig.ToString().Split(":")[0]);
- int m = System.Int32.Parse(trig.ToString().Split(":")[1]);
+ foreach (var trig in triggers["dayly"]) {
+ DailyTrigger trigger = new();
+ int h = int.Parse(trig.ToString().Split(":")[0]);
+ int m = int.Parse(trig.ToString().Split(":")[1]);
trigger.StartBoundary = System.DateTime.Today + System.TimeSpan.FromHours(h) + System.TimeSpan.FromMinutes(m);
trigger.Repetition.Duration = System.TimeSpan.FromDays(1);
trigger.Repetition.Interval = System.TimeSpan.FromMinutes(1);
@@ -366,8 +305,7 @@ namespace Installizer
// }
//}
- public static void ImportTasks(string jsonFile)
- {
+ public static void ImportTasks(string jsonFile) {
JObject SchedTask = (JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(System.IO.File.ReadAllText(jsonFile));
Tasker tasker = new(SchedTask["TaskName"].ToString(), SchedTask["TaskPath"].ToString(), SchedTask["Description"].ToString());