private static string GetActionName(IMacroAction macroAction) { Group group = null; Application application = null; switch (macroAction.Type) { case MacroActionType.Start: case MacroActionType.Stop: case MacroActionType.Restart: MacroProcessAction macroProcessAction = (MacroProcessAction)macroAction; Machine machine = Settings.Client.Machines.FirstOrDefault(x => x.ID == macroProcessAction.MachineID); if (machine != null && ConnectionStore.ConnectionCreated(machine)) { group = ConnectionStore.Connections[machine].Configuration.Groups.FirstOrDefault(x => x.ID == macroProcessAction.GroupID); application = ConnectionStore.Connections[machine].Configuration.Applications.FirstOrDefault(x => x.ID == macroProcessAction.ApplicationID); } return(machine == null || group == null || application == null ? null : $"{group.Name} / {application.Name}"); case MacroActionType.Distribute: MacroDistributionAction macroDistributionAction = (MacroDistributionAction)macroAction; Machine destinationMachine = Settings.Client.Machines.FirstOrDefault(x => x.ID == macroDistributionAction.DestinationMachineID); if (destinationMachine == null || !ConnectionStore.ConnectionCreated(destinationMachine)) { return(null); } Machine sourceMachine = Settings.Client.Machines.FirstOrDefault(x => x.ID == macroDistributionAction.SourceMachineID); if (sourceMachine != null && ConnectionStore.ConnectionCreated(sourceMachine)) { group = ConnectionStore.Connections[sourceMachine].Configuration.Groups.FirstOrDefault(x => x.ID == macroDistributionAction.GroupID); application = ConnectionStore.Connections[sourceMachine].Configuration.Applications.FirstOrDefault(x => x.ID == macroDistributionAction.ApplicationID); } return(sourceMachine == null || group == null || application == null ? null : $"{sourceMachine.HostName} / {group.Name} / {application.Name}"); case MacroActionType.Wait: MacroWaitAction macroWaitAction = (MacroWaitAction)macroAction; if (!macroWaitAction.IsValid) { throw new InvalidOperationException(); } switch (macroWaitAction.WaitForEvent) { case MacroActionWaitForEvent.Timeout: return($"{macroWaitAction.Type} for timeout, {macroWaitAction.TimeoutMilliseconds} ms"); case MacroActionWaitForEvent.PreviousActionsCompleted: return($"{macroWaitAction.Type} for previous actions completed"); default: throw new InvalidOperationException(); } default: throw new InvalidOperationException(); } }
public ProcessApplicationNode(Application application, Guid groupID, Guid machineID) { InitializeComponent(); Application = application; GroupID = groupID; MachineID = machineID; _id = MakeID(MachineID, GroupID, Application.ID); _status = ProcessStatusValue.Unknown; _message = null; //BackColor = Color.FromArgb(255, 192, 128); }
public DistributionSourcesForm(Machine machine, Application application, Func <IEnumerable <Group> > getAllGroups) { InitializeComponent(); Machine = machine; Application = application; DistributionSources = new List <DistributionSource>(application.Sources.Select(source => source.Clone())); DistributionSourcesChanged = false; _getAllGroups = getAllGroups; _machineAvailable = ConnectionStore.ConnectionCreated(Machine); _selectedSource = null; _disableStateChangedEvents = false; }
private void UpdateMacroActionBundle() { ActionBundle.Actions.Clear(); if (HasValidSelections) { ActionBundle.Actions.AddRange(SelectedMachines.SelectMany(machine => SelectedApplications .Select(application => { Configuration configuration = ConnectionStore.Connections[machine].Configuration; Group actualGroup = configuration.Groups.FirstOrDefault(x => Comparer.GroupsEqual(x, SelectedGroup)); Application actualApplication = configuration.Applications.FirstOrDefault(x => Comparer.ApplicationsEqual(x, application)); return(actualGroup != null && actualApplication != null ? new MacroProcessAction(ActionBundle.Type, machine.ID, actualGroup.ID, actualApplication.ID) : null); }) .Where(action => action != null))); } RaiseMacroActionItemChangedEvent(); }