private bool ShowConfirmationMessageBox(AircadiaComponent component) { string type = String.Empty; switch (component) { case Data d: type = "Data"; break; case Model m: type = "Model"; break; case Workflow w: type = "Workflow"; break; case Study s: type = "Study"; break; default: break; } return(AskUserOverwriteConfirmation(component, type)); }
private HashSet <string> GetAffected(AircadiaComponent component) { HashSet <string> affected = dependencies.BreadthFirstSearch(GraphString(component)); affected.Remove(GraphString(component)); return(affected); }
private void RemoveDependencies(AircadiaComponent component, IEnumerable <AircadiaComponent> dependents = null) { if (dependents != null) { foreach (AircadiaComponent dependent in dependents) { dependencies.RemoveEdge(GraphString(dependent), GraphString(component)); } } dependencies.RemoveVertex(GraphString(component)); }
private void AddDependencies(AircadiaComponent component, IEnumerable <AircadiaComponent> dependents = null) { dependencies.AddVertex(GraphString(component)); if (dependents != null) { foreach (AircadiaComponent dependent in dependents) { dependencies.AddEdge(GraphString(dependent), GraphString(component)); } } }
public bool Remove(AircadiaComponent component, bool askUser = true) { if (component is Data data) { if (data.IsAuxiliary) { return(RemoveDataAux(data, askUser)); } else { return(RemoveData(data, askUser)); } } else if (component is Model model) { if (model.IsAuxiliary) { return(RemoveModelAux(model, askUser)); } else { return(RemoveModel(model, askUser)); } } else if (component is Workflow workflow) { if (workflow.IsAuxiliary) { return(RemoveWorkflowAux(workflow)); } else { return(RemoveWorkflow(workflow, askUser)); } } else if (component is Study study) { return(RemoveStudy(study, askUser)); } return(false); }
public void Add(AircadiaComponent component, DuplicateMode mode = UserDecides) { if (component is Data data) { if (data.IsAuxiliary) { AddDataAux(data, mode); } else { AddData(data, mode); } } else if (component is Model model) { if (model.IsAuxiliary) { AddModelAux(model, mode); } else { AddModel(model, mode); } } else if (component is Workflow workflow) { if (workflow.IsAuxiliary) { AddWorkflowAux(workflow, mode); } else { AddWorkflow(workflow, mode); } } else if (component is Study study) { AddStudy(study, mode); } }
private string GraphString(AircadiaComponent component) { string type = String.Empty; if (component is Data) { type = "Data"; } else if (component is Model) { type = "Model"; } else if (component is Workflow) { type = "Workflow"; } else if (component is Study) { type = "Study"; } return($"{component?.Id ?? String.Empty} {type}"); }
public bool Rename(AircadiaComponent component, string name) { if (!String.IsNullOrWhiteSpace(name)) { if (ValidateName(name)) { // Check if the name is already there if (component is Data data) { return(RenameData(data, name)); } else if (component is Model model) { return(RenameModel(model, name)); } else if (component is Workflow workflow) { return(RenameWorkflow(workflow, name)); } else if (component is Study study) { return(RenameStudy(study, name)); } return(false); } else { throw new ArgumentException($"Invalid new name. The name {name} contains an illegal keyword or symbol"); } } else { throw new ArgumentException($"Invalid new name. The name {name} cannot be blank"); } }
private bool DefaultConfirmation(AircadiaComponent component, string name) => true;
private void RemoveDependencies(AircadiaComponent component, AircadiaComponent dependent) => RemoveDependencies(component, new AircadiaComponent[] { dependent });
private void AddDependencies(AircadiaComponent component, AircadiaComponent dependent) => AddDependencies(component, new AircadiaComponent[] { dependent });
private void OnRenamedHandler(AircadiaComponent component, string oldName) => ComponentRenamed?.Invoke(null, new ComponentRenamedEventArgs <AircadiaComponent>(component, oldName));
public IEnumerable <AircadiaComponent> DependenciesOf(AircadiaComponent component) => dependencies.BreadthFirstSearch(GraphString(component)).Select(c => GraphComponent(c));
private bool ShowConfirmationDelMessageBox(AircadiaComponent component, IEnumerable <string> dependencies) { string depString = dependencies.Aggregate("", (total, last) => total += last + "\r\n"); return(AskUserDeleteDependencies(component, depString)); }