public static MsSqlServerDataRepositoryItem GetMsSqlServerDataRepositoryItem(MsSql2008FeatureLayerInfo configureInfo) { MsSqlServerDataRepositoryItem serverItem = new MsSqlServerDataRepositoryItem(); SyncToServerItem(configureInfo, serverItem); return(serverItem); }
protected override Collection <Layer> GetLayersCore(GetLayersParameters getLayersParameters) { Collection <Layer> resultLayers = base.GetLayersCore(getLayersParameters); Collection <MsSqlFeatureLayer> newFeatureLayers = new Collection <MsSqlFeatureLayer>(); if (getLayersParameters.CustomData.ContainsKey("TableName") && getLayersParameters.CustomData.ContainsKey("DatabaseName") && getLayersParameters.CustomData.ContainsKey("IdColumn") && getLayersParameters.CustomData.ContainsKey("ServerName")) { MsSql2008FeatureLayerInfo layerInfo = new MsSql2008FeatureLayerInfo(); layerInfo.TableName = getLayersParameters.CustomData["TableName"].ToString(); layerInfo.SchemaName = getLayersParameters.CustomData["SchemaName"].ToString(); layerInfo.DatabaseName = getLayersParameters.CustomData["DatabaseName"].ToString(); layerInfo.FeatureIDColumnName = getLayersParameters.CustomData["IdColumn"].ToString(); layerInfo.ServerName = getLayersParameters.CustomData["ServerName"].ToString(); layerInfo.UserName = getLayersParameters.CustomData["UserName"].ToString(); layerInfo.Password = getLayersParameters.CustomData["Password"].ToString(); if (!string.IsNullOrEmpty(layerInfo.UserName) && !string.IsNullOrEmpty(layerInfo.Password)) { layerInfo.UseTrustAuthority = false; } newFeatureLayers = GetLayers(layerInfo); } else { newFeatureLayers = GetFeatureLayersCore(); } foreach (var layer in newFeatureLayers) { resultLayers.Add(layer); } return(resultLayers); }
protected virtual Collection <MsSqlFeatureLayer> GetLayersCore(IEnumerable <MsSql2008FeatureLayerInfo> configurations) { Collection <MsSqlFeatureLayer> resultLayers = new Collection <MsSqlFeatureLayer>(); if (configurations == null) { var window = new DatabaseLayerInfoWindow(); var model = new MsSql2008FeatureLayerInfo(); window.SetSource(model); if (window.ShowDialog().GetValueOrDefault()) { resultLayers.Add(model.CreateLayer()); } } else { foreach (var layer in configurations.Select(c => c.CreateLayer())) { layer.CommandTimeout = Singleton <ServerFeatureLayerSettingsUserControl> .Instance.SQLTimeoutInSecond; resultLayers.Add(layer); } } return(resultLayers); }
public void SetSource(MsSql2008FeatureLayerInfo featureLayerInfo) { model = featureLayerInfo; MsSqlServerConfigureViewModel viewModel = new MsSqlServerConfigureViewModel(featureLayerInfo); DataContext = viewModel; UpdateLayout(); }
public DatabaseTreeViewModel(MsSql2008FeatureLayerInfo model) { children = new ObservableCollection <DataRepositoryItem>(); MsSqlServerDataRepositoryItem serverItem = MsSqlServerDataRepositoryPlugin.GetMsSqlServerDataRepositoryItem(model); Children.Add(serverItem); if (Children.Count > 0) { Children[0].IsSelected = true; } }
private void Button_Click(object sender, RoutedEventArgs e) { DatabaseLayerInfoViewModel <MsSqlFeatureLayer> viewModel = DataContext as DatabaseLayerInfoViewModel <MsSqlFeatureLayer>; MsSql2008FeatureLayerInfo info = new MsSql2008FeatureLayerInfo(); info.Password = viewModel.Password; info.ServerName = viewModel.ServerName; info.UserName = viewModel.UserName; info.UseTrustAuthority = viewModel.UseTrustAuthentication; viewModel.IsServerConnected = true; DataRepositoryTree.DataContext = new DatabaseTreeViewModel(info); }
private static Collection <DatabaseModel> GetDatabaseItems(object obj) { MsSql2008FeatureLayerInfo tempParam = (MsSql2008FeatureLayerInfo)obj; Collection <DatabaseModel> result = new Collection <DatabaseModel>(); foreach (var dbName in tempParam.CollectDatabaseFromServer()) { DatabaseModel dbItem = new DatabaseModel(dbName); try { Collection <string> tableNames = tempParam.CollectTablesFromDatabase(dbName); Collection <string> viewNames = tempParam.CollectViewsFromDatabase(dbName); foreach (var item in tableNames) { TableModel model = new TableModel(item); string schema = string.Empty; int index = item.IndexOf(".", StringComparison.Ordinal); if (index != -1) { schema = item.Substring(0, index); } model.SchemaName = schema; dbItem.TableModels.Add(model); } foreach (var item in viewNames) { TableModel model = new TableModel(item); model.IsView = true; string schema = string.Empty; int index = item.IndexOf(".", StringComparison.Ordinal); if (index != -1) { schema = item.Substring(0, index); } model.SchemaName = schema; dbItem.TableModels.Add(model); } } catch { } result.Add(dbItem); } return(result); }
private static void SyncToServerItem(MsSql2008FeatureLayerInfo configureInfo, MsSqlServerDataRepositoryItem serverItem) { serverItem.Name = configureInfo.ServerName; serverItem.Server = configureInfo.ServerName; serverItem.UserName = configureInfo.UserName; serverItem.Password = configureInfo.Password; Task <Collection <DatabaseModel> > task = new Task <Collection <DatabaseModel> >(GetDatabaseItems, configureInfo); task.Start(); task.ContinueWith(t => { Application.Current.Dispatcher.BeginInvoke(() => { if (t.Result.Count > 0) { serverItem.Children.Clear(); foreach (var databaseItem in t.Result) { if (databaseItem.TableModels.Count > 0) { DatabaseDataRepositoryItem dbItem = new DatabaseDataRepositoryItem(); dbItem.Name = databaseItem.Name; var groupItems = databaseItem.TableModels.GroupBy(g => g.SchemaName); DataRepositoryItem schemaItem = new DataRepositoryItem(); schemaItem.Name = String.Format(CultureInfo.InvariantCulture, "{0} ({1})", "Schemas", groupItems.Count()); schemaItem.Icon = new BitmapImage(new Uri("/GisEditorPluginCore;component/Images/schemas.png", UriKind.RelativeOrAbsolute)); dbItem.Children.Add(schemaItem); foreach (var group in groupItems) { IEnumerable <string> tableGroup = group.Where(v => !v.IsView).Select(g => g.Name); IEnumerable <string> viewGroup = group.Where(v => v.IsView).Select(g => g.Name); AddSchemaChildrens(schemaItem, tableGroup, viewGroup, "/GisEditorPluginCore;component/Images/tablefolder.png", group.Key, configureInfo, databaseItem.Name); } serverItem.Children.Add(dbItem); DataRepositoryContentViewModel.RestoreChildrenExpandStatus(new ObservableCollection <DataRepositoryItem> { serverItem }, GisEditor.DataRepositoryManager.ExpandedFolders); } } } }); }); }
private void AddServer() { MsSqlServerConfigureWindow configureWindow = new MsSqlServerConfigureWindow(); configureWindow.Owner = Application.Current.MainWindow; configureWindow.WindowStartupLocation = WindowStartupLocation.CenterOwner; MsSql2008FeatureLayerInfo model = new MsSql2008FeatureLayerInfo(); configureWindow.SetSource(model); if (configureWindow.ShowDialog().GetValueOrDefault()) { MsSqlServerDataRepositoryItem serverItem = GetMsSqlServerDataRepositoryItem(model); serverItem.Parent = rootItem; rootItem.Children.Add(serverItem); GisEditor.InfrastructureManager.SaveSettings(this); } }
protected override void ApplySettingsCore(StorableSettings settings) { base.ApplySettingsCore(settings); if (settings.GlobalSettings.ContainsKey("MsSqlServers")) { try { if (rootItem != null) { rootItem.Children.Clear(); XElement serversElement = XElement.Parse(settings.GlobalSettings["MsSqlServers"]); serversElement.Elements("Server").ForEach(item => { string serverString = item.Value; serverString = StringProtector.Instance.Decrypt(serverString); string[] server = serverString.Split('|'); MsSqlServerDataRepositoryItem serverItem = new MsSqlServerDataRepositoryItem(); serverItem.Name = server[0]; serverItem.Server = server[0]; serverItem.UserName = server[1]; serverItem.Password = server[2]; rootItem.Children.Add(serverItem); MsSql2008FeatureLayerInfo configureInfo = new MsSql2008FeatureLayerInfo(); configureInfo.ServerName = serverItem.Server; configureInfo.UserName = serverItem.UserName; configureInfo.Password = serverItem.Password; if (!string.IsNullOrEmpty(configureInfo.UserName) && !string.IsNullOrEmpty(configureInfo.Password)) { configureInfo.UseTrustAuthority = false; } SyncToServerItem(configureInfo, serverItem); }); } } catch (Exception) { } } }
private static void AddChildrens(DataRepositoryItem dbItem, List <string> itemNames, string iconUri, string name, MsSql2008FeatureLayerInfo layerInfo, string databaseName) { if (itemNames.Count == 0) { return; } DataRepositoryItem tablesItem = new DataRepositoryItem(); tablesItem.Name = String.Format(CultureInfo.InvariantCulture, "{0} ({1})", name, itemNames.Count); tablesItem.Icon = new BitmapImage(new Uri(iconUri, UriKind.RelativeOrAbsolute)); dbItem.Children.Add(tablesItem); foreach (var itemName in itemNames) { MsSqlTableDataRepositoryItem tableItem = new MsSqlTableDataRepositoryItem(); tableItem.LayerInfo = layerInfo; tableItem.TableName = itemName; tableItem.SchemaName = dbItem.Name; tableItem.DatabaseName = databaseName; tableItem.Name = itemName; int index = itemName.IndexOf(".", StringComparison.Ordinal); if (index != -1) { tableItem.Name = itemName.Substring(index + 1); tableItem.TableName = tableItem.Name; } tablesItem.Children.Add(tableItem); } }
private static void AddSchemaChildrens(DataRepositoryItem dbItem, IEnumerable <string> tableNames, IEnumerable <string> viewNames, string iconUri, string name, MsSql2008FeatureLayerInfo layerInfo, string databaseName) { if (!tableNames.Any() && !viewNames.Any()) { return; } PostgreSchemaDataRepositoryItem schemaItem = new PostgreSchemaDataRepositoryItem(); schemaItem.Name = String.Format(CultureInfo.InvariantCulture, "{0}", name); schemaItem.SchemaName = schemaItem.Name; schemaItem.Icon = new BitmapImage(new Uri(iconUri, UriKind.RelativeOrAbsolute)); dbItem.Children.Add(schemaItem); AddChildrens(schemaItem, tableNames.ToList(), "/GisEditorPluginCore;component/Images/tables.png", "Tables", layerInfo, databaseName); AddChildrens(schemaItem, viewNames.ToList(), "/GisEditorPluginCore;component/Images/dataviews.png", "Views", layerInfo, databaseName); }
public MsSqlServerConfigureViewModel(MsSql2008FeatureLayerInfo model) { this.model = model; this.dataTables = new ObservableCollection <string>(); this.databases = new ObservableCollection <string>(); }