private Connector(FlowObj flow, TaskObj taskFrom, Pin pinFrom, TaskObj taskTo, Pin pinTo) { Flow = flow; TaskFrom = taskFrom; PinFrom = pinFrom; TaskTo = taskTo; PinTo = pinTo; if (flow.Route != null) { points = new List <Point>(); var iterator = flow.Route.GetEnumerator(); while (iterator.MoveNext()) { var x = (int)iterator.Current; if (!iterator.MoveNext()) { Debug.WriteLine("Odd number of route coordinates, ignoring - {0}:{1}", taskFrom.TaskId, flow.Name); Points = null; break; } var y = (int)iterator.Current; points.Add(new Point(x, y)); } } Bounds = GetBounds(); connectors.Add(this); }
/// <summary> /// Create a Shape for an existing task /// </summary> /// <param name="task"></param> private static void CreateShape(TaskObj task) { if (task.Symbol.Shape == null) { var datum = GridSnap(new Point(task.Symbol.LocationX, task.Symbol.LocationY)); task.Symbol.Shape = Shape.Create(task.Symbol.Style, task, datum); } }
public ActionResult ShowTask(TasksManager od, string check) { TaskObj task = new TaskObj(); if (check == "on") { od.Status = true; NotificationObj.Add(new Notification { AspNetUserId = Guid.Parse("3950eec4-39b4-4b16-a4e7-c7e7e3f978c8"), Url = Url.Content("~/Task/Index"), Status = false, Message = "Данный пользователь" + obj.ViewUserName(od.UserId).UserName + " выполнил задания." }); } obj.Edit(od); return(RedirectToAction("Calendar")); }
public static Shape Create(string style, TaskObj task, Point datumLocation) { switch (style.ToLower()) { case "circle": return(new CircleShape(task, datumLocation)); case "box": return(new BoxShape(task, datumLocation)); default: throw new ApplicationException("Unknown shape style: " + style); } }
internal CircleShape(TaskObj task, Point datumLocation) : base(task) { InitShape(80, 80, datumLocation); }
static bool Prefix(CaiQuanGame __instance, CaiQuanType playerType, CaiQuanType npcType, ICaiQuanAction ___caiQuanAction, TaskObj ___taskObj) { if (true || !enabled) { return(true); } PropertyInfo property = typeof(CaiQuanGame).GetProperty("isGaming"); property.DeclaringType.GetProperty("isGaming"); property.SetValue(__instance, true, BindingFlags.NonPublic | BindingFlags.Instance, null, null, null); ___caiQuanAction.DoPlayerCaiQuanAnim(playerType); ___caiQuanAction.DoNpcCaiQuanAnim(npcType); MethodInfo m_EndAnim = __instance.GetType().GetMethod("EndAnim", BindingFlags.NonPublic | BindingFlags.Instance); void m_EndAnimInvoke() { m_EndAnim.Invoke(__instance, new object[] { }); } ___taskObj = Singleton <TaskRunner> .Instance.RunDelayTask(2f / settings.RPCSpeed, false, new Action(m_EndAnimInvoke)); return(false); }
protected Shape(TaskObj task) { Task = task; }
private void Button_Click(object sender, EventArgs e) { TaskObj task = new TaskObj(fdeadline.Text, date.Text, autor.Text, priority.Text); MessageBox.Show(task.autor); }
// Offset to shape Top Left from Bounds internal BoxShape(TaskObj task, Point datumLocation) : base(task) { InitShape(120, 80, datumLocation); }
// Get the connectors connected to a task public static IEnumerable <Connector> GetConnections(TaskObj task) { return(Connectors.Where(c => c.TaskFrom == task || c.TaskTo == task)); }
/// <summary> /// Create a task, its symbol data and shape when a Palette symbol is dropped on the diagram /// </summary> /// <param name="symbolType"></param> /// <param name="datum"></param> public TaskObj CreateTask(PaletteObj symbolType, Point datum) { var symbolTask = symbolType.Task; if (symbolTask.ActivityName == "cleanup" && Model.Workflow.Tasks.Any(t => t.ActivityName == "cleanup")) { MessageBox.Show("No more than one Cleanup Start symbol permitted"); return(null); } ActivityObj activity = null; if (symbolTask.HasActivity()) { var json = RestClient.Get($"/activities/{symbolTask.ActivityName}/versions/{symbolTask.ActivityVersion}"); activity = JsonConvert.DeserializeObject <ActivityObj>(json); if (activity == null) { MessageBox.Show($"Missing activity - {symbolTask.ActivityName} {symbolTask.ActivityVersion}", "Database error"); return(null); } } var task = new TaskObj { TaskId = Guid.NewGuid().ToString().Substring(0, 8), ActivityName = symbolTask.ActivityName, ActivityVersion = symbolTask.ActivityVersion, Outflows = (from f in symbolTask.Outflows select new FlowObj { Name = f.Name }).ToArray(), Symbol = CloneSymbol(symbolTask.Symbol), FailOutflow = new FlowObj { Name = "Err" }, HiddenProperties = symbolTask.HiddenProperties }; if (activity != null) { task.Inputs = new InputCollection(activity.Inputs); if (task.Outflows.Length != 0) { task.Outputs = new OutputCollection(activity.Outputs); } } // Override or add inputs with data from palette symbol if (symbolTask.Inputs != null) { foreach (var input in symbolTask.Inputs) { task.Inputs[input.Key] = input.Value; } } // Override or add outputs with data from palette symbol if (symbolTask.Outputs != null) { foreach (var output in symbolTask.Outputs) { task.Outputs[output.Key] = output.Value; } } task.Symbol.Shape = Shape.Create(task.Symbol.Style, task, datum); if (symbolTask.HasFailOutflow()) { task.FailOutflow = new FlowObj { Name = "Err" }; } Model.Workflow.Tasks.Add(task); task.TaskChanged += UpdateGraphics; return(task); }
/// <summary> /// Generate JSON for activity inputs and outflows /// </summary> /// <param name="execution"></param> /// <param name="task"></param> /// <returns></returns> private static JObject GetTaskInput(Execution execution, TaskObj task) { // Add outflows from task definition var inputs = new JObject(new JProperty("$outflows", new JArray(from o in task.Outflows select o.Name))); if (task.Inputs == null) { return(inputs); } // Lookup input values and add them foreach (var input in task.Inputs) { JToken value = null; // Is the input from a variable? if (!string.IsNullOrWhiteSpace(input.Value.Var)) { var variable = execution.Variables.Single(v => v.Name == input.Value.Var); // Does the variable have some content? if (!string.IsNullOrWhiteSpace(variable?.Json)) { value = JToken.Parse(variable.Json); if (!string.IsNullOrWhiteSpace(input.Value.Path)) { value = value.SelectToken(input.Value.Path); // If required and the path target does not exist // There is no error if the path target exists and is explicitly null - JValue.CreateNull() if (value == null) { if (input.Value.Required) { throw new ApplicationException($"Uninitialised required input - {input.Value.Var}[{input.Value.Path}] for task: {task.TaskId}"); } value = input.Value.Default; } } } else if (!string.IsNullOrWhiteSpace(input.Value.Path)) { if (input.Value.Required) { throw new ApplicationException($"Uninitialised required input - {input.Value.Var}[{input.Value.Path}] for task: {task.TaskId}"); } value = input.Value.Default; } else { value = JValue.CreateNull(); } } else if (input.Value.Lit != null) { value = input.Value.Lit; } // TODO: Check datatypes for validity inputs.Add(input.Key, value); } return(inputs); }
/// <summary> /// Create a task scheduled event and add it to the decision list /// </summary> /// <param name="db"></param> /// <param name="execution"></param> /// <param name="task"></param> /// <param name="decisions"></param> private static void CreateTaskScheduledEvent(Database db, Execution execution, TaskObj task, ICollection <History> decisions) { var act = db.GetActivity(task.ActivityName, task.ActivityVersion); var input = GetTaskInput(execution, task); var activity = JsonConvert.DeserializeObject <ActivityObj>(act.Json); var atse = new ActivityTaskScheduledEvent { ActivityId = Guid.NewGuid().ToString(), ActivityName = task.ActivityName, ActivityVersion = task.ActivityVersion, TaskList = task.TaskList ?? activity.DefaultTaskList, // TODO: Should this be overridable in the task definition? Probably! TaskId = task.TaskId, AsyncSignal = task.AsyncSignal, TaskPriority = task.TaskPriority ?? activity.DefaultPriority ?? 0, HeartbeatTimeout = (int?)(task.HeartbeatTimeout ?? activity.DefaultTaskHeartbeatTimeout), ScheduleToCloseTimeout = (int?)(task.ScheduleToCloseTimeout ?? activity.DefaultTaskScheduleToCloseTimeout), ScheduleToStartTimeout = (int?)(task.ScheduleToStartTimeout ?? activity.DefaultTaskScheduleToStartTimeout), StartToCloseTimeout = (int?)task.StartToCloseTimeout, Input = input }; decisions.Add(atse); }