public Table(string name, List <Column> columns, List <Column> primaryKey) { Name = name; PrimaryKey = primaryKey; Columns = columns; TableDependency = new FunctionalDependency(columns.Count, ColumnSet(primaryKey)); }
public Table(string name, List <Column> columns) { Name = name; Columns = columns; PrimaryKey = new List <Column>(); TableDependency = new FunctionalDependency(columns.Count, new BitArray(columns.Count)); }
public Table(string name, int columnsCount) { Name = name; Columns = new List <Column>(columnsCount); Columns.AddRange(Enumerable.Repeat(new Column("NEW_COLUMN"), columnsCount)); PrimaryKey = new List <Column>(); TableDependency = new FunctionalDependency(columnsCount, new BitArray(columnsCount)); }
public DependencyElement ( AttributeCollection attributeCollection, FunctionalDependency functionalDependencies, bool isLeft ) { AttributeCollection = attributeCollection; AttributeCollectionId = attributeCollection.Id; FunctionalDependency = functionalDependencies; FunctionalDependencyId = functionalDependencies.Id; IsLeft = isLeft; }
private void InitializeCommands() { AddItemToCanvasCommand = new RelayCommand <Point>((Point p) => { switch (SelectedElement.DisplayTitle) { case "Event": Event addEvent = new Event { Title = "event_" + ++eventCounter, X = p.X, Y = p.Y, }; Project.FaultTree.Elements.Add(addEvent); SelectedCanvasElement = addEvent; break; case "Basic event": BasicEvent addLeafEvent = new BasicEvent { Title = "basic_event_" + ++basicEventCounter, X = p.X, Y = p.Y, }; Project.FaultTree.Elements.Add(addLeafEvent); SelectedCanvasElement = addLeafEvent; break; case "AND gate": AndGate addAndGate = new AndGate { Title = "and_gate_" + ++andGateCounter, X = p.X, Y = p.Y, }; Project.FaultTree.Elements.Add(addAndGate); SelectedCanvasElement = addAndGate; break; case "OR gate": OrGate addOrGate = new OrGate { Title = "or_gate_" + ++orGateCounter, X = p.X, Y = p.Y, }; Project.FaultTree.Elements.Add(addOrGate); SelectedCanvasElement = addOrGate; break; case "Vote gate": VoteGate addVoteGate = new VoteGate { Title = "vote_gate_" + ++voteGateCounter, X = p.X, Y = p.Y, }; Project.FaultTree.Elements.Add(addVoteGate); SelectedCanvasElement = addVoteGate; break; case "Priority AND gate": PriorityAndGate addPriorityAndGate = new PriorityAndGate { Title = "priority_and_gate_" + ++priorityAndGateCounter, X = p.X, Y = p.Y, }; Project.FaultTree.Elements.Add(addPriorityAndGate); SelectedCanvasElement = addPriorityAndGate; break; case "Priority OR gate": PriorityOrGate addPriorityOrGate = new PriorityOrGate { Title = "priority_or_gate_" + ++priorityOrGateCounter, X = p.X, Y = p.Y, }; Project.FaultTree.Elements.Add(addPriorityOrGate); SelectedCanvasElement = addPriorityOrGate; break; case "Warm spare gate": WarmSpareGate addWarmSpareGate = new WarmSpareGate { Title = "warm_spare_gate_" + ++warmSpareGateCounter, X = p.X, Y = p.Y, }; Project.FaultTree.Elements.Add(addWarmSpareGate); SelectedCanvasElement = addWarmSpareGate; break; case "Functional dependency": FunctionalDependency addFunctionalDependency = new FunctionalDependency { Title = "functional_dependency_" + ++functionalDependencyCounter, X = p.X, Y = p.Y, }; Project.FaultTree.Elements.Add(addFunctionalDependency); SelectedCanvasElement = addFunctionalDependency; break; case "Probabilistic dependency": ProbabilisticDependency addProbabilisticDependency = new ProbabilisticDependency { Title = "probabilistic_dependency_" + ++probabilisticDependencyCounter, X = p.X, Y = p.Y, }; Project.FaultTree.Elements.Add(addProbabilisticDependency); SelectedCanvasElement = addProbabilisticDependency; break; case "Sequence enforcer": SequenceEnforcer addSequenceEnforcer = new SequenceEnforcer { Title = "sequence_enforcer_" + ++sequenceEnforcerCounter, X = p.X, Y = p.Y, }; Project.FaultTree.Elements.Add(addSequenceEnforcer); SelectedCanvasElement = addSequenceEnforcer; break; default: break; } }); GenerateOutputCommand = new RelayCommand(() => { OutputText = Project.FaultTree.GetGalileoString(); }); ShowJSONCommand = new RelayCommand(() => { OutputText = GetJsonString(); }); ListConnectionsCommand = new RelayCommand(() => { OutputText = Project.FaultTree.ListConnections(); }); DeleteElementCommand = new RelayCommand(() => { var tempElement = SelectedCanvasElement; if (tempElement.DisplayTitle == "Top level event") { return; } Project.FaultTree.RemoveElement(tempElement); if (Project.FaultTree.Elements.Count > 0) { SelectedCanvasElement = Project.FaultTree.Elements[0]; } else { SelectedCanvasElement = null; } }); RemoveConnectionsCommand = new RelayCommand(() => { Project.FaultTree.RemoveConnections(SelectedCanvasElement); }); CopyCommand = new RelayCommand(() => { dataPackage.SetText(OutputText); Clipboard.SetContent(dataPackage); }); ClearCommand = new RelayCommand(() => { OutputText = string.Empty; }); ToGalileoCommand = new RelayCommand(async() => { await SaveToFileAsync(Project.FaultTree.GetGalileoString()); }); ToJsonCommand = new RelayCommand(async() => { await SaveToFileAsync(GetJsonString()); }); }