private void ImportFolder(vRDConfigurationFileConnectionsFolder Folder, List <string> FolderNames, Dictionary <string, vRDConfigurationFileCredentialsFolderCredentials> Credentials) { foreach (Connection conn in Folder.Connection) { this.ImportConnection(conn, FolderNames, Credentials); } FolderNames.AddRange(Folder.Folder.Select(folder => folder.Name)); }
private void ImportFolder(vRDConfigurationFileConnectionsFolder Folder, List<string> FolderNames, Dictionary<string, vRDConfigurationFileCredentialsFolderCredentials> Credentials) { foreach (Connection conn in Folder.Connection) { this.ImportConnection(conn, FolderNames, Credentials); } FolderNames.AddRange(Folder.Folder.Select(folder => folder.Name)); }
public List <FavoriteConfigurationElement> ImportFavorites(string Filename) { List <FavoriteConfigurationElement> fav = new List <FavoriteConfigurationElement>(); string input = "Please enter the description vRD password."; if (InputBox.Show(ref input, "vRD Password", '*') == DialogResult.OK) { byte[] file = File.ReadAllBytes(Filename); string xml = a(file, input).Replace(" encoding=\"utf-16\"", ""); byte[] data = Encoding.Default.GetBytes(xml); using (MemoryStream sw = new MemoryStream(data)) { if (sw.Position > 0 & sw.CanSeek) { sw.Seek(0, SeekOrigin.Begin); } XmlSerializer x = new XmlSerializer(typeof(vRDConfigurationFile)); object results = x.Deserialize(sw); List <Connection> connections = new List <Connection>(); List <vRDConfigurationFileConnectionsFolder> folders = new List <vRDConfigurationFileConnectionsFolder>(); Dictionary <string, vRDConfigurationFileCredentialsFolderCredentials> credentials = new Dictionary <string, vRDConfigurationFileCredentialsFolderCredentials>(); if (results == null) { return(fav); } vRDConfigurationFile config = (results as vRDConfigurationFile); if (config == null) { return(fav); } //scan in config item foreach (object item in config.Items) { if (item == null) { continue; } if (item is vRDConfigurationFileCredentialsFolder) { //scan in all credentials into a dictionary vRDConfigurationFileCredentialsFolder credentialFolder = (item as vRDConfigurationFileCredentialsFolder); if (credentialFolder != null && credentialFolder.Credentials != null) { foreach ( vRDConfigurationFileCredentialsFolderCredentials cred in credentialFolder.Credentials) { credentials.Add(cred.Guid, cred); } } } else if (item is vRDConfigurationFileCredentialsFolderCredentials) { vRDConfigurationFileCredentialsFolderCredentials cred = (item as vRDConfigurationFileCredentialsFolderCredentials); credentials.Add(cred.Guid, cred); } else if (item is Connection) { //scan in the connections Connection connection = (item as Connection); if (connection != null) { connections.Add(connection); } } else if (item is vRDConfigurationFileConnectionsFolder) { //scan in recurse folders vRDConfigurationFileConnectionsFolder folder = (item as vRDConfigurationFileConnectionsFolder); if (folder != null) { folders.Add(folder); } } } //save credential item to local this.SaveCredentials(credentials); //save VRD connection to local fav = this.ConvertVRDConnectionCollectionToLocal(connections.ToArray(), folders.ToArray(), null, String.Empty, credentials); } } return(fav); }
private List<FavoriteConfigurationElement> ConvertVRDConnectionCollectionToLocal(Connection[] connections, vRDConfigurationFileConnectionsFolder [] folders, vRDConfigurationFileConnectionsFolderFolder [] subFolders, String connectionTag, Dictionary <string, vRDConfigurationFileCredentialsFolderCredentials > credentials) { List<FavoriteConfigurationElement> coll = new List<FavoriteConfigurationElement>(); //covert vrd connection if (connections != null && connections.Length > 0) { foreach (Connection con in connections) { FavoriteConfigurationElement fav = ConvertVRDConnectionToLocal(credentials, con); if (!string.IsNullOrEmpty(connectionTag) && !fav.TagList.Contains(connectionTag)) { fav.TagList.Add(connectionTag); fav.Tags = connectionTag; } coll.Add(fav); } } //get connection object from root folder if (folders != null && folders.Length > 0) { foreach (vRDConfigurationFileConnectionsFolder folder in folders) { coll.AddRange(this.ConvertVRDConnectionCollectionToLocal(folder.Connection, null, folder.Folder, folder.Name, credentials)); } } //get connection object from sub folder if (subFolders != null && subFolders.Length > 0) { foreach (vRDConfigurationFileConnectionsFolderFolder folder in subFolders) { string tag = connectionTag + folder.Name; coll.AddRange(this.ConvertVRDConnectionCollectionToLocal(folder.Connection, null, null, tag, credentials)); } } return coll; }