public static MsSqlServerDataRepositoryItem GetMsSqlServerDataRepositoryItem(MsSql2008FeatureLayerInfo configureInfo) { MsSqlServerDataRepositoryItem serverItem = new MsSqlServerDataRepositoryItem(); SyncToServerItem(configureInfo, serverItem); return(serverItem); }
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 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); } }
private Collection <MsSqlFeatureLayer> GetMsSql2008FeatureLayers() { if (LayerInfo != null) { MsSqlServerDataRepositoryItem serverItem = Parent.Parent.Parent.Parent.Parent as MsSqlServerDataRepositoryItem; if (serverItem != null) { LayerInfo.TableName = TableName; LayerInfo.DatabaseName = DatabaseName; LayerInfo.SchemaName = SchemaName; Collection <string> newColumnNames = LayerInfo.CollectColumnsFromTable(); FeatureIdColumnWindow featureIdColumnWindow = new FeatureIdColumnWindow(newColumnNames); featureIdColumnWindow.Owner = Application.Current.MainWindow; featureIdColumnWindow.WindowStartupLocation = WindowStartupLocation.CenterOwner; if (featureIdColumnWindow.ShowDialog().GetValueOrDefault()) { GetLayersParameters layerParameters = new GetLayersParameters(); layerParameters.CustomData["TableName"] = TableName; layerParameters.CustomData["SchemaName"] = SchemaName; layerParameters.CustomData["DatabaseName"] = DatabaseName; layerParameters.CustomData["IdColumn"] = featureIdColumnWindow.FeatureIdColumn; layerParameters.CustomData["ServerName"] = serverItem.Name; layerParameters.CustomData["UserName"] = serverItem.UserName; layerParameters.CustomData["Password"] = serverItem.Password; Collection <MsSqlFeatureLayer> newLayers = new Collection <MsSqlFeatureLayer>(); try { newLayers = GisEditor.LayerManager.GetLayers <MsSqlFeatureLayer>(layerParameters); } catch (Exception ex) { MessageBox.Show(ex.Message, "Unable to Load Layer(s)", MessageBoxButton.OK, MessageBoxImage.Error); } if (newLayers != null && newLayers.Count > 0) { return(newLayers); } } } } return(new Collection <MsSqlFeatureLayer>()); }
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 string GetToServerConnectionString(MsSqlTableDataRepositoryItem msSqlTableDataRepositoryItem) { DataRepositoryItem item = msSqlTableDataRepositoryItem.Parent; while (!(item is MsSqlServerDataRepositoryItem)) { item = item.Parent; } MsSqlServerDataRepositoryItem serverItem = (MsSqlServerDataRepositoryItem)item; StringBuilder connectionBuilder = new StringBuilder(); connectionBuilder.AppendFormat(CultureInfo.InvariantCulture, "Data Source={0};Persist Security Info=True;", serverItem.Server); if (string.IsNullOrEmpty(serverItem.UserName) && string.IsNullOrEmpty(serverItem.Password)) { connectionBuilder.Append("Trusted_Connection=Yes;"); } else { connectionBuilder.AppendFormat(CultureInfo.InvariantCulture, "User ID={0};Password={1};", serverItem.UserName, serverItem.Password); } return(connectionBuilder.ToString()); }
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); } } } }); }); }