private static void Main(string[] args) { var employees = new List <Employee>() { new Employee() { Name = "Razali", Position = "Software Engineer", Salary = 8000 }, new Employee() { Name = "Damian", Position = "UX Engineer", Salary = 6500 }, new Employee() { Name = "Zana", Position = "Manager", Salary = 13000 }, }; IChainGroup <Employee> salaryChainGroup = new ChainGroup <Employee>() .AddChainGroupLink(new EngineerSalaryChanger()) .AddChainGroupLink(new ManagerSalaryChanger()); employees.ForEach(employee => salaryChainGroup.Process(employee)); employees.ForEach(employee => Console.WriteLine($"Position: {employee.Position}, Salary: {employee.Salary}")); }
public void Destroy() { Group = null; GraphicRaycasterVA.Instance.RemoveCanvas(GetComponent <Canvas>()); DestroyImmediate(gameObject); }
private void HandleGroupGroupRemoved(ChainGroup group, bool isTransfer) { if (isTransfer) { return; } RemoveChainGroupView(group, true); }
private void HandleGroupGroupAdded(ChainGroup group, bool isTransfer) { // If it's a transfer, we'll be getting the existing view sent over soon. if (isTransfer) { return; } AddChainGroupView(group); }
private void RemoveChainGroupView(ChainGroup group, bool destroy) { var view = GroupViews.FirstOrDefault(nv => nv.Group == group); if (view == null) { return; } RemoveChainGroupView(view, destroy); }
public GroupDelete(ChainGroup group) { var myGroup = ChainView.Instance.RootGroupView.RecursiveGroupViewsEnumerable.First( cgv => cgv.Group == group); var parentGroup = ChainView.Instance.RootGroupView.RecursiveGroupViewsEnumerable.First( cgv => cgv.Group.Groups.Contains(group)); groupDragId = myGroup.BackgroundPanel.Draggable.DragID; parentDragId = parentGroup.BackgroundPanel.Draggable.DragID; initialLocation = myGroup.ChildAttachmentPoint.position; groupComment = group.Comment; groupOrigin = myGroup.LoadedPackagePath; }
private void AddChainGroupView(ChainGroup group) { var viewGo = Instantiate(ChainView.GroupViewPrefab); var view = viewGo.GetComponent <ChainGroupView>(); view.RectTransform.position = Vector3.zero; view.Group = group; AddChainGroupView(view); if (!group.SuppressUndo) { UndoLord.Instance.Push(new GroupAdd(view, this, NewNodePosition)); } }
public override void DoRedo() { var group = new ChainGroup() { SuppressUndo = true }; var parentGroupView = ChainView.Instance.RootGroupView.RecursiveGroupViewsEnumerable.First( cgv => cgv.BackgroundPanel.Draggable.DragID == parentDragId); var parentGroup = parentGroupView.Group; parentGroup.AddGroup(group); var groupView = ChainView.Instance.RootGroupView.RecursiveGroupViewsEnumerable.First(cgv => cgv.Group == group); groupView.transform.localPosition = Vector2.zero; groupView.SetVisiblePosition(initialLocation, false); groupView.BackgroundPanel.Draggable.DragID = groupDragId; group.SuppressUndo = false; }