public void LoadDatabase(string path) { _dbInfo.Path = path; using (var con = GetConnection(path)) { con.Open(); foreach (var item in _dbInfo.GetTables(con)) { var vm = new TableViewModel(item); foreach (var colums in item.GetColums(con)) { vm.Colums.Add(new ColumViewMoodel(colums)); } foreach (var trigger in item.GetTrigger(con)) { vm.Triggers.Add(new TriggerViewModel(trigger)); } foreach (var idx in item.GetIndex(con)) { vm.Indexs.Add(new IndexViewModel(idx)); } Tables.Add(vm); } Triggers.AddRange(Tables.SelectMany(x => x.Triggers)); RaisePropertyChanged(nameof(Tables)); RaisePropertyChanged(nameof(Triggers)); } }
public void ResetWithHome(HMHome home) { Accessories.Clear(); Accessories.AddRange(home.Accessories); Accessories.SortByLocalizedName(a => a.Name); Rooms.Clear(); Rooms.AddRange(home.GetAllRooms()); Rooms.SortByLocalizedName(r => r.Name); Zones.Clear(); Zones.AddRange(home.Zones); Zones.SortByLocalizedName(z => z.Name); ActionSets.Clear(); ActionSets.AddRange(home.ActionSets); ActionSets.SortByTypeAndLocalizedName(); Triggers.Clear(); Triggers.AddRange(home.Triggers); Triggers.SortByLocalizedName(t => t.Name); ServiceGroups.Clear(); ServiceGroups.AddRange(home.ServiceGroups); ServiceGroups.SortByLocalizedName(sg => sg.Name); }
public bool LoadDatabase(string path) { _dbInfo = new DatabaseInfo(new FirebirdInfo(path)); if (!_dbInfo.CanLoadDatabase) { return(false); } using (var con = new FbConnection(_dbInfo.ConnectionString)) { con.Open(); foreach (var item in _dbInfo.GetTables(con)) { var vm = new TableViewModel(item.TableName); foreach (var colums in item.GetColums(con)) { vm.Colums.Add(new ColumViewMoodel(colums)); } foreach (var trigger in item.GetTrigger(con)) { vm.Triggers.Add(new TriggerViewModel(trigger)); } foreach (var idx in item.GetIndex(con)) { vm.Indexs.Add(new IndexViewModel(idx)); } Tables.Add(vm); } Triggers.AddRange(Tables.SelectMany(x => ((TableViewModel)x).Triggers).ToArray()); Indexes.AddRange(Tables.SelectMany(x => ((TableViewModel)x).Indexs).ToArray()); foreach (var item in _dbInfo.GetViews(con)) { var vm = new TableViewViewModel(item.ViewName, item.Source); foreach (var colums in item.GetColums(con)) { vm.Colums.Add(new ColumViewMoodel(colums)); } Tables.Add(vm); } RaisePropertyChanged(nameof(Tables)); RaisePropertyChanged(nameof(Triggers)); RaisePropertyChanged(nameof(Indexes)); } return(true); }
/// <summary> /// Take all the pending triggers that have been added by AddPendingTrigger, /// and finally make them become active. To be called by the CPU when it /// decides that enough mainline code has had a chance to happen that it's /// okay to enable triggers again. /// </summary> public void ActivatePendingTriggers() { Triggers.AddRange(TriggersToInsert); TriggersToInsert.Clear(); }
/// <summary> /// Take only those pending triggers that AddPendingTrigger added who's /// Priority is higher than the given value, and make them become active. /// ("active" here means "called on the callstack like a subroutine.") /// </summary> /// <param name="aboveThis"></param> public void ActivatePendingTriggersAbovePriority(InterruptPriority aboveThis) { Triggers.AddRange(TriggersToInsert.FindAll(t => t.Priority > aboveThis)); TriggersToInsert.RemoveAll(t => t.Priority > aboveThis); }