private void RecurseLoadDashboard(List<InfDashboard> items, ObservableCollection<DashboardItemViewModel> parentList, long parentId) { List<InfDashboard> childs = (from i in items where i.IdParent == parentId orderby i.Ordre select i).ToList(); foreach (InfDashboard child in childs) { if (child.InfCodeDashboard.Code.Equals("FOLDER")) { DashboardFolderViewModel folder = new DashboardFolderViewModel(); folder.Model = child; folder.DisplayName = child.Libelle; parentList.Add(folder); this.RecurseLoadDashboard(items, folder.Items, child.Id); } if (child.InfCodeDashboard.Code.Equals("TABLE")) { DashboardTableViewModel table = new DashboardTableViewModel(); table.Model = child; table.DisplayName = child.Libelle; parentList.Add(table); } } }
public void AddTable(Object parentVm, Object entityTableInfoObj) { if (entityTableInfoObj != null && entityTableInfoObj is EntityTableInfo) { EntityTableInfo entityTableInfo = (entityTableInfoObj as EntityTableInfo); DbSet<InfCodeDashboard> datasCodeDashboard = _dataService.GetDbSet<InfCodeDashboard>(); DbSet<InfDashboard> datasDashboard = _dataService.GetDbSet<InfDashboard>(); InfDashboard dashboardTable = new InfDashboard(); dashboardTable.Code = entityTableInfo.SchemaName+"."+entityTableInfo.TableName; dashboardTable.Libelle = entityTableInfo.DisplayName; if (parentVm != null && parentVm is DashboardFolderViewModel) { DashboardFolderViewModel folder = parentVm as DashboardFolderViewModel; dashboardTable.IdParent = folder.Model.Id; } else { dashboardTable.IdParent = -1; } dashboardTable.InfCodeDashboard = (from c in datasCodeDashboard where c.Code.Equals("TABLE") select c).FirstOrDefault(); dashboardTable.Ordre = this.Items.Count + 1; datasDashboard.Add(dashboardTable); IEnumerable<DbEntityValidationResult> results = _dataService.DataContext.GetValidationErrors(); _dataService.DataContext.SaveChanges(); DashboardTableViewModel tableVm = new DashboardTableViewModel(); tableVm.DisplayName = entityTableInfo.DisplayName; tableVm.Model = dashboardTable; if (parentVm != null && parentVm is DashboardFolderViewModel) { DashboardFolderViewModel folder = parentVm as DashboardFolderViewModel; folder.Items.Add(tableVm); folder.IsExpanded = true; tableVm.IsSelected = true; } else { this.Items.Add(tableVm); tableVm.IsSelected = true; } this.FillOrder(); } }