private void SaasExportRDCManConnectionsToolStripMenuItem_Click()

in 2LCS/Forms/MainForm.cs [1846:1930]


        private void SaasExportRDCManConnectionsToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (_saasInstancesList == null) return;
            Cursor = Cursors.WaitCursor;
            var sb = new StringBuilder();
            sb.Append(
                @"<?xml version=""1.0"" encoding=""utf-8""?>
<RDCMan schemaVersion=""1"">
    <version>2.2</version>
    <file>
        <properties>
            <name>SAAS instances exported with LCS!</name>
            <expanded>True</expanded>
            <comment />
            <logonCredentials inherit=""FromParent"" />
            <connectionSettings inherit=""FromParent"" />
            <gatewaySettings inherit=""FromParent"" />
            <remoteDesktop inherit=""FromParent"" />
            <localResources inherit=""FromParent"" />
            <securitySettings inherit=""FromParent"" />
            <displaySettings inherit=""FromParent"" />
        </properties>");

            foreach (var saasInstance in _saasInstancesList)
            {
                sb.Append(
                    $@"
        <group>
            <properties>
                <name>{saasInstance.InstanceId}</name>
                <expanded>True</expanded>
                <comment />
                <logonCredentials inherit=""FromParent"" />
                <connectionSettings inherit=""FromParent"" />
                <gatewaySettings inherit=""FromParent"" />
                <remoteDesktop inherit=""FromParent"" />
                <localResources inherit=""FromParent"" />
                <securitySettings inherit=""FromParent"" />
                <displaySettings inherit=""FromParent"" />
            </properties>");

                var rdpList = _httpClientHelper.GetRdpConnectionDetails(saasInstance);
                foreach (var rdpEntry in rdpList)
                {
                    sb.Append(
                        $@"
            <server>
                <name>{rdpEntry.Address}:{rdpEntry.Port}</name>
                <displayName>{rdpEntry.Machine}</displayName>
                <comment />
                <logonCredentials inherit=""None"">
                    <userName>{rdpEntry.Username}</userName>
                    <domain>{rdpEntry.Domain}</domain>
                    <password storeAsClearText=""True"">{rdpEntry.Password}</password>
                </logonCredentials>
                <connectionSettings inherit=""FromParent"" />
                <gatewaySettings inherit=""FromParent"" />
                <remoteDesktop inherit=""FromParent"" />
                <localResources inherit=""FromParent"" />
                <securitySettings inherit=""FromParent"" />
                <displaySettings inherit=""FromParent"" />
            </server>");
                }
                sb.Append(
                    @"
        </group>");
            }
            sb.Append(
                @"
    </file>
</RDCMan>");
            var savefile = new SaveFileDialog
            {
                FileName = "SAAS-Exported.rdg",
                Filter = "RDCMan file (*.rdg)|*.rdg|All files (*.*)|*.*",
                DefaultExt = "rdg",
                AddExtension = true
            };
            if (savefile.ShowDialog() == DialogResult.OK)
            {
                using StreamWriter sw = new StreamWriter(savefile.FileName);
                sw.Write(sb);
            }
            Cursor = Cursors.Default;
        }