- update multiple LIAM projects and solution/config files - add LiamWorkflowDiagnostics app sources and generated outputs - include current workspace state (dependencies and build outputs)
153 lines
6.4 KiB
C#
153 lines
6.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
using C4IT.Logging;
|
|
using C4IT.Security;
|
|
using C4IT.LIAM;
|
|
|
|
namespace LiamTestTeams
|
|
{
|
|
public partial class frmMain : Form
|
|
{
|
|
private const string PPH = "uKl0P.&Wz8;?rpTL";
|
|
private const string PPK = "f1JtsKzdeOB/rxG7geEwBumb7M0SoH8yMhv0Wi5G29LPpUwGmS6PzcynMnbc8ov5vOId5KJa4gHCDFgwCmXJZbApAG1QCUMwfIJSMaaowPAVcdSWbBHFEL50IpY+/YUKwl/B2pofNi2po0A7ZW00KVa6XFa5CpjFf6EGukwvL0jkEyK+RBoMYrUZWySQB1QS/AEohWCYo8ekcqV5PnBdXHZHyZB2bvK74ePhvJYnTnDUXbOpvEU19iHFzrJ0FxbZt1/2aPcyjHER8GhR7CXkxP2nJbn81bMzqLWQs3Wl1AWH+NbKvEY9+5NgkTqqvkW43Xkm5w8FwoEWIeX4yU50we9H060Dm6g8scyacL1MU0DKjOuxpxCE92fu6kp9DNQpSc6yCcwyzIS7atlwuqJ/N8nhuDcdH6X6hY/wrLgQjIrLi0I4n5vO6fT9hkusPaUHFpZVb2wPkHTJNzw+HF7fvhIROg50s273D5DmGioE0DyxkbJtg63R6LSPy8ok3W91qlD4+6DlPMPJ9ABLttK2ckcnMn/46YVDQ2ABpR7H79XgOf1NYp2WasLbC6KFE1ghpP0GEQughsxeVrNZhsZP351oEuCXVQx6w+iyp3Qv762vZ2vnh2G96drAHuOuLEqF+NZ7SVh3LGpuVE1bQbwd/9S3pdQI3iQcjza3Feoxew3RNaGnnJ63qLPVxc9dSvrRtVNwKOyW8iFdSpf1lHtX8XKPjOXSdhqOwts+Gl/Nn5bQee4uXdkrvxyN7wps1sWQRzkcyLIzplOwH80ZxEoVfgXz6lixMYOKrSly0kSektq6aRemfOBX7TvaQ+f1mgGripjks1UKUdrZG90Lj+WchTzDgxidHYW6z0vjxnO5mtnisryn8KnivpflC4y79/qZJ0ypPXCwKdH5QdvDEOhC2Qj8LX45YoCwanDIVgLbbz5lh9nbIMdH0uBkcbNAzNIjJwUTDWMcgzeeFJiEMKitISA4TpMTuxqKDjuqNa+S8qnYCy6A32O/TFihRIJG25w7khf0gnAdtkrCKOKsHwLKV1bdZxNW/WvA3WYSTIOvQIQsCre0YdqejUAiHLBPfh2ni4JVr2mU0AjulY7tnwsInxl2zR8FrgbziX0TxtXdrzTDMdIfCt1oFkiKUK9mwjlzBQ6Sl5G+wMmf4t8sQw1HTUvy/Ww1uu471+OUZui8npaRuKLG1m4+fvXRxF24YNxWNMCfGTsTOHCcxECwJhxMBDOQ8e6hYcXWDC5qMLnYKm1Gf2EVO5i7/vYtkRmK2SfP9b/Dg4BmW5/LUGEvUL4PT+xQVSHsJ+DZCB16fUfBgxMRoQZfR7U/Q/TCl5m6VCRT0AkcZDy3CiTemXbMylPpUKHURcPEYk6ALJgiuN8CQO+cxYZi16jx7/YJaINMx/855Gj4+fx/gWAdBLVwW2PT4jadx6lk7rwvO/wgPigwtLt6wxeqGbgWy3c2Ikdic7osZCThKD7Z+RPTVdpYudhkhs7Hd1sx+DBbX9fW/sKKONdquvvvKkHYbKV348IVKaMwSS/iSZ0YLwuNPMD3jtBhYoMeub9/SdkegUU0B5P8fA+uDdFppXazTpqgjApSJzkS";
|
|
|
|
private readonly cLiamTestTeamsConfig Config = new cLiamTestTeamsConfig();
|
|
|
|
public frmMain()
|
|
{
|
|
InitializeComponent();
|
|
|
|
var SP = new cSecurePassword(PPH);
|
|
SP.SetRsaKey(PPK, "C4IT_LIAM");
|
|
cSecurePassword.Instance = SP;
|
|
}
|
|
|
|
private async void buttonLogin_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
Cursor = Cursors.WaitCursor;
|
|
|
|
if (tabControlLiam.TabPages.Contains(tabPageTeams))
|
|
tabControlLiam.TabPages.Remove(tabPageTeams);
|
|
if (tabControlLiam.TabPages.Contains(tabPageLiam))
|
|
tabControlLiam.TabPages.Remove(tabPageLiam);
|
|
|
|
textBoxDisplayName.Text = "";
|
|
textBoxDomain.Text = "";
|
|
|
|
var Provider = new cLiamProviderData()
|
|
{
|
|
ProviderType = eLiamProviderTypes.MsTeams,
|
|
Domain = textBoxTenant.Text,
|
|
Credential = new cLiamCredential()
|
|
{
|
|
Domain = textBoxTenant.Text,
|
|
Identification = textBoxClientApp.Text,
|
|
Secret = textBoxClientSecret.Text
|
|
}
|
|
};
|
|
|
|
var RootNodeTeams = new TreeNodeMsTeamsRoot(Provider);
|
|
|
|
if (!await RootNodeTeams.LogonAsync())
|
|
{
|
|
groupBoxAccount.Text = "- Authentication error -";
|
|
labelError.Visible = true;
|
|
textBoxErrorMessage.Visible = true;
|
|
textBoxErrorMessage.Text = RootNodeTeams.getLastError();
|
|
|
|
textBoxDisplayName.Text = "";
|
|
textBoxDomain.Text = "";
|
|
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
labelError.Visible = false;
|
|
textBoxErrorMessage.Visible = false;
|
|
groupBoxAccount.Text = "Authenticated";
|
|
|
|
textBoxDisplayName.Text = RootNodeTeams.ToString();
|
|
textBoxDomain.Text = RootNodeTeams.GetInfoText();
|
|
|
|
}
|
|
|
|
if (!tabControlLiam.TabPages.Contains(tabPageTeams))
|
|
tabControlLiam.TabPages.Add(tabPageTeams);
|
|
|
|
var RootNodeLiam = new TreeNodeLiamRoot(Provider);
|
|
if (await RootNodeLiam.LogonAsync())
|
|
{
|
|
if (!tabControlLiam.TabPages.Contains(tabPageLiam))
|
|
tabControlLiam.TabPages.Add(tabPageLiam);
|
|
await ctrlTabLiam1.Refresh(RootNodeLiam);
|
|
}
|
|
|
|
await ctrlTabTeams1.Refresh(RootNodeTeams);
|
|
|
|
tabPageTeams.Select();
|
|
|
|
return;
|
|
}
|
|
catch (Exception E)
|
|
{
|
|
ShowError(E.Message);
|
|
cLogManager.LogException(E);
|
|
}
|
|
|
|
finally
|
|
{
|
|
Cursor = Cursors.Default;
|
|
}
|
|
|
|
}
|
|
|
|
private void ShowError(string Message)
|
|
{
|
|
textBoxErrorMessage.Text = Message;
|
|
labelError.Visible = true;
|
|
textBoxErrorMessage.Visible = true;
|
|
}
|
|
|
|
private void frmMain_Load(object sender, EventArgs e)
|
|
{
|
|
Config.Load();
|
|
textBoxTenant.Text = Config.Tenant;
|
|
textBoxClientApp.Text = Config.ClientAppID;
|
|
if (!string.IsNullOrWhiteSpace(Config.ClientSecret))
|
|
textBoxClientSecret.Text = cSecurePassword.Instance.Decode(Config.ClientSecret);
|
|
|
|
ctrlTabLiam1.SetTitle("LIAM nodes:");
|
|
ctrlTabTeams1.SetTitle("MS Teams");
|
|
tabControlLiam.TabPages.Remove(tabPageTeams);
|
|
tabControlLiam.TabPages.Remove(tabPageLiam);
|
|
|
|
CheckLogin();
|
|
}
|
|
|
|
private void CheckLogin()
|
|
{
|
|
var enabled = false;
|
|
if (!string.IsNullOrEmpty(textBoxTenant.Text))
|
|
if (!string.IsNullOrEmpty(textBoxClientApp.Text))
|
|
if (!string.IsNullOrEmpty(textBoxClientSecret.Text))
|
|
enabled = true;
|
|
buttonLogin.Enabled = enabled;
|
|
}
|
|
|
|
private void textBoxInput_TextChanged(object sender, EventArgs e)
|
|
{
|
|
CheckLogin();
|
|
}
|
|
}
|
|
}
|