chore: sync LIAM solution snapshot incl. diagnostics tooling
- update multiple LIAM projects and solution/config files - add LiamWorkflowDiagnostics app sources and generated outputs - include current workspace state (dependencies and build outputs)
This commit is contained in:
@@ -1,38 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
|
||||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="7.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.1" newVersion="5.0.0.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Graph.Core" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.24.0.0" newVersion="1.24.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Identity.Client" publicKeyToken="0a613f4dd989e8ae" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.27.0.0" newVersion="4.27.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
|
||||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="7.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.1" newVersion="5.0.0.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Graph.Core" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.24.0.0" newVersion="1.24.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Identity.Client" publicKeyToken="0a613f4dd989e8ae" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.27.0.0" newVersion="4.27.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
@@ -1,155 +1,155 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{6197C490-07C6-4313-8E0F-AADC27776473}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>LiamTestTeams</RootNamespace>
|
||||
<AssemblyName>LiamTestTeams</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>False</Deterministic>
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>C4IT.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\_shared\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.IdentityModel" />
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\Common Code\Configuration\C4IT.Configuration.ConfigHelper.cs">
|
||||
<Link>Common\C4IT.Configuration.ConfigHelper.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\Common Code\Security\C4IT.Security.SecurePassword.cs">
|
||||
<Link>Common\C4IT.Security.SecurePassword.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\SharedAssemblyInfo.cs">
|
||||
<Link>Properties\SharedAssemblyInfo.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="cLiamTestTeamsConfig.cs" />
|
||||
<Compile Include="ctrlTabLiam.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ctrlTabLiam.Designer.cs">
|
||||
<DependentUpon>ctrlTabLiam.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="frmMain.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="frmMain.Designer.cs">
|
||||
<DependentUpon>frmMain.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="frmPermissionInput.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="frmPermissionInput.Designer.cs">
|
||||
<DependentUpon>frmPermissionInput.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="NodesBase.cs" />
|
||||
<Compile Include="NodesLiam.cs" />
|
||||
<Compile Include="NodesMsTeams.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="ctrlTabLiam.resx">
|
||||
<DependentUpon>ctrlTabLiam.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="frmMain.resx">
|
||||
<DependentUpon>frmMain.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="frmPermissionInput.resx">
|
||||
<DependentUpon>frmPermissionInput.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="C4IT.ico" />
|
||||
<Content Include="Images\ChannelFolder_32.png" />
|
||||
<Content Include="Images\Channel_32.png" />
|
||||
<Content Include="Images\Folder_32.png" />
|
||||
<Content Include="Images\Team_32.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\LiamBaseClasses\LiamBaseClasses.csproj">
|
||||
<Project>{3531c9e6-cf6e-458e-b604-4a5a8d1c7ab0}</Project>
|
||||
<Name>LiamBaseClasses</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\LiamHelper\LiamHelper.csproj">
|
||||
<Project>{6b0e73a6-f918-42d5-9525-d59d4d16283d}</Project>
|
||||
<Name>LiamHelper</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\LiamMsGraph\LiamMsGraph.csproj">
|
||||
<Project>{452827db-14ff-469e-af41-1a24e1875bda}</Project>
|
||||
<Name>LiamMsGraph</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\LiamMsTeams\LiamMsTeams.csproj">
|
||||
<Project>{dacbd3dc-1866-4b39-964a-d2a8dea2774c}</Project>
|
||||
<Name>LiamMsTeams</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{6197C490-07C6-4313-8E0F-AADC27776473}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>LiamTestTeams</RootNamespace>
|
||||
<AssemblyName>LiamTestTeams</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>False</Deterministic>
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>C4IT.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\_shared\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.IdentityModel" />
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\Common Code\Configuration\C4IT.Configuration.ConfigHelper.cs">
|
||||
<Link>Common\C4IT.Configuration.ConfigHelper.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\..\Common Code\Security\C4IT.Security.SecurePassword.cs">
|
||||
<Link>Common\C4IT.Security.SecurePassword.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="..\SharedAssemblyInfo.cs">
|
||||
<Link>Properties\SharedAssemblyInfo.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="cLiamTestTeamsConfig.cs" />
|
||||
<Compile Include="ctrlTabLiam.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ctrlTabLiam.Designer.cs">
|
||||
<DependentUpon>ctrlTabLiam.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="frmMain.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="frmMain.Designer.cs">
|
||||
<DependentUpon>frmMain.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="frmPermissionInput.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="frmPermissionInput.Designer.cs">
|
||||
<DependentUpon>frmPermissionInput.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="NodesBase.cs" />
|
||||
<Compile Include="NodesLiam.cs" />
|
||||
<Compile Include="NodesMsTeams.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="ctrlTabLiam.resx">
|
||||
<DependentUpon>ctrlTabLiam.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="frmMain.resx">
|
||||
<DependentUpon>frmMain.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="frmPermissionInput.resx">
|
||||
<DependentUpon>frmPermissionInput.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="C4IT.ico" />
|
||||
<Content Include="Images\ChannelFolder_32.png" />
|
||||
<Content Include="Images\Channel_32.png" />
|
||||
<Content Include="Images\Folder_32.png" />
|
||||
<Content Include="Images\Team_32.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\LiamBaseClasses\LiamBaseClasses.csproj">
|
||||
<Project>{3531c9e6-cf6e-458e-b604-4a5a8d1c7ab0}</Project>
|
||||
<Name>LiamBaseClasses</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\LiamHelper\LiamHelper.csproj">
|
||||
<Project>{6b0e73a6-f918-42d5-9525-d59d4d16283d}</Project>
|
||||
<Name>LiamHelper</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\LiamMsGraph\LiamMsGraph.csproj">
|
||||
<Project>{452827db-14ff-469e-af41-1a24e1875bda}</Project>
|
||||
<Name>LiamMsGraph</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\LiamMsTeams\LiamMsTeams.csproj">
|
||||
<Project>{dacbd3dc-1866-4b39-964a-d2a8dea2774c}</Project>
|
||||
<Name>LiamMsTeams</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -1,10 +1,10 @@
|
||||
""
|
||||
{
|
||||
"FILE_VERSION" = "9237"
|
||||
"ENLISTMENT_CHOICE" = "NEVER"
|
||||
"PROJECT_FILE_RELATIVE_PATH" = ""
|
||||
"NUMBER_OF_EXCLUDED_FILES" = "0"
|
||||
"ORIGINAL_PROJECT_FILE_PATH" = ""
|
||||
"NUMBER_OF_NESTED_PROJECTS" = "0"
|
||||
"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
|
||||
}
|
||||
""
|
||||
{
|
||||
"FILE_VERSION" = "9237"
|
||||
"ENLISTMENT_CHOICE" = "NEVER"
|
||||
"PROJECT_FILE_RELATIVE_PATH" = ""
|
||||
"NUMBER_OF_EXCLUDED_FILES" = "0"
|
||||
"ORIGINAL_PROJECT_FILE_PATH" = ""
|
||||
"NUMBER_OF_NESTED_PROJECTS" = "0"
|
||||
"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
|
||||
}
|
||||
|
||||
@@ -1,124 +1,124 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
using C4IT.LIAM;
|
||||
|
||||
namespace LiamTestTeams
|
||||
{
|
||||
public class TreeNodeBase
|
||||
{
|
||||
public const int iconIndexUnknown = 8;
|
||||
|
||||
public TreeNodeBase Parent = null;
|
||||
|
||||
public virtual bool AutoResolved()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
virtual public string GetInfoText()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
virtual public string GetUID()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
virtual public async Task<List<TreeNodeBase>> ResolveAsync(bool ResolveAlways = false)
|
||||
{
|
||||
await Task.Delay(0);
|
||||
return null;
|
||||
}
|
||||
|
||||
virtual public bool IsResolved()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public virtual int ImageIndex()
|
||||
{
|
||||
return iconIndexUnknown;
|
||||
}
|
||||
|
||||
public string GetJson()
|
||||
{
|
||||
var set = new JsonSerializerSettings()
|
||||
{
|
||||
Formatting = Formatting.Indented
|
||||
};
|
||||
|
||||
var RetVal = JsonConvert.SerializeObject(GetJsonObject(), set);
|
||||
|
||||
return RetVal;
|
||||
}
|
||||
|
||||
public virtual dynamic GetJsonObject()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public virtual bool SupportPermissionAdd()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public virtual bool SupportPermissionRemoveDirect()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public virtual bool SupportPermissionRemoveByValue()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public virtual async Task<bool> AddPermission(eLiamAccessRoles Role, string Identity)
|
||||
{
|
||||
await Task.Delay(0);
|
||||
throw new InvalidOperationException($"Add permission not supported for '{this.GetType()}'");
|
||||
}
|
||||
|
||||
public virtual async Task<bool> RemovePermissionByValue(eLiamAccessRoles Role, string Identity)
|
||||
{
|
||||
await Task.Delay(0);
|
||||
throw new InvalidOperationException($"Add permission not supported for '{this.GetType()}'");
|
||||
}
|
||||
|
||||
public virtual async Task<bool> RemovePermissionDirect()
|
||||
{
|
||||
await Task.Delay(0);
|
||||
throw new InvalidOperationException($"Remove permission not supported for '{this.GetType()}'");
|
||||
}
|
||||
|
||||
public virtual List<eLiamAccessRoles> ValidPermissionRoles()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public virtual string getLastError() { return null; }
|
||||
|
||||
public virtual async Task<TreeNodeBase> LoadFromUID()
|
||||
{
|
||||
await Task.Delay(0);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public abstract class TreeNodeRoot : TreeNodeBase
|
||||
{
|
||||
public cLiamProviderData Provider;
|
||||
|
||||
public TreeNodeRoot(cLiamProviderData Provider)
|
||||
{
|
||||
this.Provider = Provider;
|
||||
}
|
||||
|
||||
public abstract Task<bool> LogonAsync();
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
using C4IT.LIAM;
|
||||
|
||||
namespace LiamTestTeams
|
||||
{
|
||||
public class TreeNodeBase
|
||||
{
|
||||
public const int iconIndexUnknown = 8;
|
||||
|
||||
public TreeNodeBase Parent = null;
|
||||
|
||||
public virtual bool AutoResolved()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
virtual public string GetInfoText()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
virtual public string GetUID()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
virtual public async Task<List<TreeNodeBase>> ResolveAsync(bool ResolveAlways = false)
|
||||
{
|
||||
await Task.Delay(0);
|
||||
return null;
|
||||
}
|
||||
|
||||
virtual public bool IsResolved()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public virtual int ImageIndex()
|
||||
{
|
||||
return iconIndexUnknown;
|
||||
}
|
||||
|
||||
public string GetJson()
|
||||
{
|
||||
var set = new JsonSerializerSettings()
|
||||
{
|
||||
Formatting = Formatting.Indented
|
||||
};
|
||||
|
||||
var RetVal = JsonConvert.SerializeObject(GetJsonObject(), set);
|
||||
|
||||
return RetVal;
|
||||
}
|
||||
|
||||
public virtual dynamic GetJsonObject()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public virtual bool SupportPermissionAdd()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public virtual bool SupportPermissionRemoveDirect()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public virtual bool SupportPermissionRemoveByValue()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public virtual async Task<bool> AddPermission(eLiamAccessRoles Role, string Identity)
|
||||
{
|
||||
await Task.Delay(0);
|
||||
throw new InvalidOperationException($"Add permission not supported for '{this.GetType()}'");
|
||||
}
|
||||
|
||||
public virtual async Task<bool> RemovePermissionByValue(eLiamAccessRoles Role, string Identity)
|
||||
{
|
||||
await Task.Delay(0);
|
||||
throw new InvalidOperationException($"Add permission not supported for '{this.GetType()}'");
|
||||
}
|
||||
|
||||
public virtual async Task<bool> RemovePermissionDirect()
|
||||
{
|
||||
await Task.Delay(0);
|
||||
throw new InvalidOperationException($"Remove permission not supported for '{this.GetType()}'");
|
||||
}
|
||||
|
||||
public virtual List<eLiamAccessRoles> ValidPermissionRoles()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public virtual string getLastError() { return null; }
|
||||
|
||||
public virtual async Task<TreeNodeBase> LoadFromUID()
|
||||
{
|
||||
await Task.Delay(0);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public abstract class TreeNodeRoot : TreeNodeBase
|
||||
{
|
||||
public cLiamProviderData Provider;
|
||||
|
||||
public TreeNodeRoot(cLiamProviderData Provider)
|
||||
{
|
||||
this.Provider = Provider;
|
||||
}
|
||||
|
||||
public abstract Task<bool> LogonAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,484 +1,484 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using C4IT.LIAM;
|
||||
using C4IT.Logging;
|
||||
using static C4IT.Logging.cLogManager;
|
||||
|
||||
namespace LiamTestTeams
|
||||
{
|
||||
public class TreeNodeLiamRoot : TreeNodeRoot
|
||||
{
|
||||
public cLiamProviderBase ProviderBase;
|
||||
|
||||
public TreeNodeLiamRoot(cLiamProviderData Provider) : base(Provider)
|
||||
{
|
||||
}
|
||||
|
||||
public bool Load()
|
||||
{
|
||||
var CM = MethodBase.GetCurrentMethod();
|
||||
LogMethodBegin(CM);
|
||||
try
|
||||
{
|
||||
var LiamCfg = new cLiamConfiguration();
|
||||
ProviderBase = cLiamProviderBase.CreateInstance(LiamCfg, Provider);
|
||||
|
||||
return ProviderBase != null;
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
LogException(E);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
{
|
||||
LogMethodEnd(CM);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public override async Task<bool> LogonAsync()
|
||||
{
|
||||
var CM = MethodBase.GetCurrentMethod();
|
||||
LogMethodBegin(CM);
|
||||
try
|
||||
{
|
||||
if (ProviderBase == null)
|
||||
if (!Load())
|
||||
return false;
|
||||
|
||||
var RetVal = await ProviderBase.LogonAsync();
|
||||
|
||||
return RetVal;
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
LogException(E);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
{
|
||||
LogMethodEnd(CM);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public override async Task<List<TreeNodeBase>> ResolveAsync(bool ResolveAlways = false)
|
||||
{
|
||||
var CM = MethodBase.GetCurrentMethod();
|
||||
LogMethodBegin(CM);
|
||||
try
|
||||
{
|
||||
var lstLiamNodes = await ProviderBase.getDataAreasAsync(0);
|
||||
if (lstLiamNodes == null)
|
||||
return null;
|
||||
|
||||
var RetVal = new List<TreeNodeBase>();
|
||||
foreach (var Entry in lstLiamNodes)
|
||||
{
|
||||
var Node = new TreeNodeLiamNode(Entry);
|
||||
RetVal.Add(Node);
|
||||
}
|
||||
|
||||
return RetVal;
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
LogException(E);
|
||||
return null;
|
||||
}
|
||||
finally
|
||||
{
|
||||
LogMethodEnd(CM);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class TreeNodeLiamNode : TreeNodeBase
|
||||
{
|
||||
public cLiamDataAreaBase DataArea;
|
||||
|
||||
private bool privIsResolved = false;
|
||||
|
||||
private List<cLiamUserInfo> Owners = null;
|
||||
|
||||
public TreeNodeLiamNode(cLiamDataAreaBase DataArea)
|
||||
{
|
||||
this.DataArea = DataArea;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return DataArea?.TechnicalName ?? "";
|
||||
}
|
||||
|
||||
public override int ImageIndex()
|
||||
{
|
||||
if (DataArea == null)
|
||||
return iconIndexUnknown;
|
||||
|
||||
switch (DataArea.DataType)
|
||||
{
|
||||
case eLiamDataAreaTypes.MsTeamsTeam:
|
||||
return 0;
|
||||
case eLiamDataAreaTypes.MsTeamsChannel:
|
||||
return 1;
|
||||
case eLiamDataAreaTypes.MsTeamsFolder:
|
||||
return 3;
|
||||
default:
|
||||
return iconIndexUnknown;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public override bool IsResolved()
|
||||
{
|
||||
return privIsResolved;
|
||||
}
|
||||
|
||||
public override async Task<List<TreeNodeBase>> ResolveAsync(bool ResolveAlways = false)
|
||||
{
|
||||
if (DataArea == null)
|
||||
return null;
|
||||
|
||||
Owners = await DataArea.GetOwnersAsync();
|
||||
|
||||
var Children = await DataArea.getChildrenAsync(0);
|
||||
if (Children == null)
|
||||
return null;
|
||||
|
||||
var RetVal = new List<TreeNodeBase>();
|
||||
if (DataArea.SupportsPermissions)
|
||||
RetVal.Add(new TreeNodeLiamPermissionList(DataArea));
|
||||
foreach (var Entry in Children)
|
||||
{
|
||||
var Node = new TreeNodeLiamNode(Entry);
|
||||
RetVal.Add(Node);
|
||||
}
|
||||
|
||||
privIsResolved = true;
|
||||
|
||||
return RetVal;
|
||||
}
|
||||
|
||||
public override string GetInfoText()
|
||||
{
|
||||
var RetVal = $"Technical name: {DataArea?.TechnicalName}";
|
||||
RetVal += $"\r\n\r\nData type: {DataArea?.DataType}";
|
||||
RetVal += $"\r\nUID: {DataArea?.UID}";
|
||||
RetVal += $"\r\nParent UID: {DataArea?.ParentUID}";
|
||||
RetVal += $"\r\n\r\nLevel: {DataArea?.Level}";
|
||||
RetVal += $"\r\nSupport permissions: {DataArea?.SupportsPermissions}";
|
||||
|
||||
if (Owners != null)
|
||||
{
|
||||
if (Owners.Count == 0)
|
||||
{
|
||||
RetVal += $"\r\n\r\nOwner list is empty (no members)";
|
||||
}
|
||||
else
|
||||
{
|
||||
RetVal += $"\r\n\r\nOwners:";
|
||||
foreach (var Owner in Owners)
|
||||
{
|
||||
RetVal += $"\r\n {Owner.DisplayName}: UPN='{Owner.UserPrincipalName}', SID='{Owner.SID}'";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return RetVal;
|
||||
}
|
||||
|
||||
public override string GetUID()
|
||||
{
|
||||
return DataArea.UID;
|
||||
}
|
||||
|
||||
public override async Task<TreeNodeBase> LoadFromUID()
|
||||
{
|
||||
var CM = MethodBase.GetCurrentMethod();
|
||||
LogMethodBegin(CM);
|
||||
try
|
||||
{
|
||||
var UID = GetUID();
|
||||
if (string.IsNullOrEmpty(UID))
|
||||
return null;
|
||||
|
||||
var R = await DataArea.Provider.LoadDataArea(UID);
|
||||
if (R == null)
|
||||
return null;
|
||||
|
||||
var RetVal = new TreeNodeLiamNode(R);
|
||||
|
||||
return RetVal;
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
LogException(E);
|
||||
return null;
|
||||
}
|
||||
finally
|
||||
{
|
||||
LogMethodEnd(CM);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public class TreeNodeLiamPermissionList : TreeNodeBase
|
||||
{
|
||||
public cLiamDataAreaBase DataArea;
|
||||
|
||||
private bool privIsResolved = false;
|
||||
|
||||
public TreeNodeLiamPermissionList(cLiamDataAreaBase DataArea)
|
||||
{
|
||||
this.DataArea = DataArea;
|
||||
}
|
||||
|
||||
public override string GetInfoText()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return "Permissions";
|
||||
}
|
||||
|
||||
public override bool IsResolved()
|
||||
{
|
||||
return privIsResolved;
|
||||
}
|
||||
|
||||
override public async Task<List<TreeNodeBase>> ResolveAsync(bool ResolveAlways = false)
|
||||
{
|
||||
try
|
||||
{
|
||||
var RetVal = new List<TreeNodeBase>();
|
||||
var Perms = await DataArea.GetPermissionsAsync(ResolveAlways);
|
||||
if (Perms == null)
|
||||
return null;
|
||||
|
||||
foreach (var Entry in Perms)
|
||||
{
|
||||
RetVal.Add(new TreeNodeLiamPermission(Entry, DataArea));
|
||||
}
|
||||
|
||||
privIsResolved = true;
|
||||
return RetVal;
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
LogException(E);
|
||||
}
|
||||
finally
|
||||
{
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public override int ImageIndex()
|
||||
{
|
||||
return 4;
|
||||
}
|
||||
|
||||
public override dynamic GetJsonObject()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public override bool SupportPermissionAdd()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool SupportPermissionRemoveByValue()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override async Task<bool> AddPermission(eLiamAccessRoles Role, string Identity)
|
||||
{
|
||||
try
|
||||
{
|
||||
var UserInfo = new cLiamUserInfo()
|
||||
{
|
||||
UserPrincipalName = Identity,
|
||||
EMail = Identity
|
||||
};
|
||||
var PermResult = await DataArea.GrantPermissionAsync(UserInfo, Role);
|
||||
if (PermResult.Valid)
|
||||
return true;
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
cLogManager.LogException(E);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override async Task<bool> RemovePermissionByValue(eLiamAccessRoles Role, string Identity)
|
||||
{
|
||||
try
|
||||
{
|
||||
await Task.Delay(0);
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
cLogManager.LogException(E);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override List<eLiamAccessRoles> ValidPermissionRoles()
|
||||
{
|
||||
var RetVal = new List<eLiamAccessRoles>() {
|
||||
eLiamAccessRoles.Read,
|
||||
eLiamAccessRoles.Write,
|
||||
eLiamAccessRoles.Owner
|
||||
};
|
||||
return RetVal;
|
||||
}
|
||||
|
||||
public override string getLastError()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public class TreeNodeLiamPermission : TreeNodeBase
|
||||
{
|
||||
public cLiamPermissionInfo Permission = null;
|
||||
public cLiamDataAreaBase DataArea = null;
|
||||
|
||||
public TreeNodeLiamPermission(cLiamPermissionInfo Permission, cLiamDataAreaBase DataArea) : base()
|
||||
{
|
||||
this.Permission = Permission;
|
||||
this.DataArea = DataArea;
|
||||
}
|
||||
|
||||
public override bool AutoResolved()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override string GetInfoText()
|
||||
{
|
||||
if (Permission == null)
|
||||
return "";
|
||||
|
||||
var strInfo = $"Type: Role memership";
|
||||
|
||||
|
||||
var strUser = "-unknown-";
|
||||
if (Permission.User != null)
|
||||
{
|
||||
if (Permission.User != null)
|
||||
{
|
||||
strUser = Permission.User.DisplayName;
|
||||
if (string.IsNullOrEmpty(strUser))
|
||||
strUser = Permission.User.UserPrincipalName;
|
||||
if (string.IsNullOrEmpty(strUser))
|
||||
strUser = Permission.User.EMail;
|
||||
}
|
||||
}
|
||||
strInfo += $"\r\n\r\nUser or group: {strUser}";
|
||||
|
||||
|
||||
strInfo += $"\r\n\r\nRole: {Permission.AccessRole}";
|
||||
|
||||
return strInfo;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (Permission == null)
|
||||
return "";
|
||||
|
||||
var strName = "Unknown";
|
||||
if (Permission.User != null)
|
||||
{
|
||||
strName = Permission.User.DisplayName;
|
||||
if (string.IsNullOrEmpty(strName))
|
||||
strName = Permission.User.UserPrincipalName;
|
||||
if (string.IsNullOrEmpty(strName))
|
||||
strName = Permission.User.EMail;
|
||||
}
|
||||
strName += ": [" ;
|
||||
|
||||
var strRoles = Permission.AccessRole.ToString();
|
||||
|
||||
return strName + strRoles + "]";
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
cLogManager.LogException(E);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public override bool IsResolved()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
override public async Task<List<TreeNodeBase>> ResolveAsync(bool ResolveAlways = false)
|
||||
{
|
||||
await Task.Delay(0);
|
||||
return new List<TreeNodeBase>();
|
||||
}
|
||||
|
||||
public override int ImageIndex()
|
||||
{
|
||||
return 6;
|
||||
}
|
||||
|
||||
public override dynamic GetJsonObject()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public override bool SupportPermissionRemoveDirect()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override async Task<bool> RemovePermissionDirect()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (Permission == null)
|
||||
return false;
|
||||
if (Permission.User == null)
|
||||
return false;
|
||||
|
||||
|
||||
var RetVal = await DataArea.RevokePermissionAsync(Permission.User, Permission.AccessRole);
|
||||
return RetVal;
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
cLogManager.LogException(E);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using C4IT.LIAM;
|
||||
using C4IT.Logging;
|
||||
using static C4IT.Logging.cLogManager;
|
||||
|
||||
namespace LiamTestTeams
|
||||
{
|
||||
public class TreeNodeLiamRoot : TreeNodeRoot
|
||||
{
|
||||
public cLiamProviderBase ProviderBase;
|
||||
|
||||
public TreeNodeLiamRoot(cLiamProviderData Provider) : base(Provider)
|
||||
{
|
||||
}
|
||||
|
||||
public bool Load()
|
||||
{
|
||||
var CM = MethodBase.GetCurrentMethod();
|
||||
LogMethodBegin(CM);
|
||||
try
|
||||
{
|
||||
var LiamCfg = new cLiamConfiguration();
|
||||
ProviderBase = cLiamProviderBase.CreateInstance(LiamCfg, Provider);
|
||||
|
||||
return ProviderBase != null;
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
LogException(E);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
{
|
||||
LogMethodEnd(CM);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public override async Task<bool> LogonAsync()
|
||||
{
|
||||
var CM = MethodBase.GetCurrentMethod();
|
||||
LogMethodBegin(CM);
|
||||
try
|
||||
{
|
||||
if (ProviderBase == null)
|
||||
if (!Load())
|
||||
return false;
|
||||
|
||||
var RetVal = await ProviderBase.LogonAsync();
|
||||
|
||||
return RetVal;
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
LogException(E);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
{
|
||||
LogMethodEnd(CM);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public override async Task<List<TreeNodeBase>> ResolveAsync(bool ResolveAlways = false)
|
||||
{
|
||||
var CM = MethodBase.GetCurrentMethod();
|
||||
LogMethodBegin(CM);
|
||||
try
|
||||
{
|
||||
var lstLiamNodes = await ProviderBase.getDataAreasAsync(0);
|
||||
if (lstLiamNodes == null)
|
||||
return null;
|
||||
|
||||
var RetVal = new List<TreeNodeBase>();
|
||||
foreach (var Entry in lstLiamNodes)
|
||||
{
|
||||
var Node = new TreeNodeLiamNode(Entry);
|
||||
RetVal.Add(Node);
|
||||
}
|
||||
|
||||
return RetVal;
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
LogException(E);
|
||||
return null;
|
||||
}
|
||||
finally
|
||||
{
|
||||
LogMethodEnd(CM);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class TreeNodeLiamNode : TreeNodeBase
|
||||
{
|
||||
public cLiamDataAreaBase DataArea;
|
||||
|
||||
private bool privIsResolved = false;
|
||||
|
||||
private List<cLiamUserInfo> Owners = null;
|
||||
|
||||
public TreeNodeLiamNode(cLiamDataAreaBase DataArea)
|
||||
{
|
||||
this.DataArea = DataArea;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return DataArea?.TechnicalName ?? "";
|
||||
}
|
||||
|
||||
public override int ImageIndex()
|
||||
{
|
||||
if (DataArea == null)
|
||||
return iconIndexUnknown;
|
||||
|
||||
switch (DataArea.DataType)
|
||||
{
|
||||
case eLiamDataAreaTypes.MsTeamsTeam:
|
||||
return 0;
|
||||
case eLiamDataAreaTypes.MsTeamsChannel:
|
||||
return 1;
|
||||
case eLiamDataAreaTypes.MsTeamsFolder:
|
||||
return 3;
|
||||
default:
|
||||
return iconIndexUnknown;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public override bool IsResolved()
|
||||
{
|
||||
return privIsResolved;
|
||||
}
|
||||
|
||||
public override async Task<List<TreeNodeBase>> ResolveAsync(bool ResolveAlways = false)
|
||||
{
|
||||
if (DataArea == null)
|
||||
return null;
|
||||
|
||||
Owners = await DataArea.GetOwnersAsync();
|
||||
|
||||
var Children = await DataArea.getChildrenAsync(0);
|
||||
if (Children == null)
|
||||
return null;
|
||||
|
||||
var RetVal = new List<TreeNodeBase>();
|
||||
if (DataArea.SupportsPermissions)
|
||||
RetVal.Add(new TreeNodeLiamPermissionList(DataArea));
|
||||
foreach (var Entry in Children)
|
||||
{
|
||||
var Node = new TreeNodeLiamNode(Entry);
|
||||
RetVal.Add(Node);
|
||||
}
|
||||
|
||||
privIsResolved = true;
|
||||
|
||||
return RetVal;
|
||||
}
|
||||
|
||||
public override string GetInfoText()
|
||||
{
|
||||
var RetVal = $"Technical name: {DataArea?.TechnicalName}";
|
||||
RetVal += $"\r\n\r\nData type: {DataArea?.DataType}";
|
||||
RetVal += $"\r\nUID: {DataArea?.UID}";
|
||||
RetVal += $"\r\nParent UID: {DataArea?.ParentUID}";
|
||||
RetVal += $"\r\n\r\nLevel: {DataArea?.Level}";
|
||||
RetVal += $"\r\nSupport permissions: {DataArea?.SupportsPermissions}";
|
||||
|
||||
if (Owners != null)
|
||||
{
|
||||
if (Owners.Count == 0)
|
||||
{
|
||||
RetVal += $"\r\n\r\nOwner list is empty (no members)";
|
||||
}
|
||||
else
|
||||
{
|
||||
RetVal += $"\r\n\r\nOwners:";
|
||||
foreach (var Owner in Owners)
|
||||
{
|
||||
RetVal += $"\r\n {Owner.DisplayName}: UPN='{Owner.UserPrincipalName}', SID='{Owner.SID}'";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return RetVal;
|
||||
}
|
||||
|
||||
public override string GetUID()
|
||||
{
|
||||
return DataArea.UID;
|
||||
}
|
||||
|
||||
public override async Task<TreeNodeBase> LoadFromUID()
|
||||
{
|
||||
var CM = MethodBase.GetCurrentMethod();
|
||||
LogMethodBegin(CM);
|
||||
try
|
||||
{
|
||||
var UID = GetUID();
|
||||
if (string.IsNullOrEmpty(UID))
|
||||
return null;
|
||||
|
||||
var R = await DataArea.Provider.LoadDataArea(UID);
|
||||
if (R == null)
|
||||
return null;
|
||||
|
||||
var RetVal = new TreeNodeLiamNode(R);
|
||||
|
||||
return RetVal;
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
LogException(E);
|
||||
return null;
|
||||
}
|
||||
finally
|
||||
{
|
||||
LogMethodEnd(CM);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public class TreeNodeLiamPermissionList : TreeNodeBase
|
||||
{
|
||||
public cLiamDataAreaBase DataArea;
|
||||
|
||||
private bool privIsResolved = false;
|
||||
|
||||
public TreeNodeLiamPermissionList(cLiamDataAreaBase DataArea)
|
||||
{
|
||||
this.DataArea = DataArea;
|
||||
}
|
||||
|
||||
public override string GetInfoText()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return "Permissions";
|
||||
}
|
||||
|
||||
public override bool IsResolved()
|
||||
{
|
||||
return privIsResolved;
|
||||
}
|
||||
|
||||
override public async Task<List<TreeNodeBase>> ResolveAsync(bool ResolveAlways = false)
|
||||
{
|
||||
try
|
||||
{
|
||||
var RetVal = new List<TreeNodeBase>();
|
||||
var Perms = await DataArea.GetPermissionsAsync(ResolveAlways);
|
||||
if (Perms == null)
|
||||
return null;
|
||||
|
||||
foreach (var Entry in Perms)
|
||||
{
|
||||
RetVal.Add(new TreeNodeLiamPermission(Entry, DataArea));
|
||||
}
|
||||
|
||||
privIsResolved = true;
|
||||
return RetVal;
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
LogException(E);
|
||||
}
|
||||
finally
|
||||
{
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public override int ImageIndex()
|
||||
{
|
||||
return 4;
|
||||
}
|
||||
|
||||
public override dynamic GetJsonObject()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public override bool SupportPermissionAdd()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool SupportPermissionRemoveByValue()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override async Task<bool> AddPermission(eLiamAccessRoles Role, string Identity)
|
||||
{
|
||||
try
|
||||
{
|
||||
var UserInfo = new cLiamUserInfo()
|
||||
{
|
||||
UserPrincipalName = Identity,
|
||||
EMail = Identity
|
||||
};
|
||||
var PermResult = await DataArea.GrantPermissionAsync(UserInfo, Role);
|
||||
if (PermResult.Valid)
|
||||
return true;
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
cLogManager.LogException(E);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override async Task<bool> RemovePermissionByValue(eLiamAccessRoles Role, string Identity)
|
||||
{
|
||||
try
|
||||
{
|
||||
await Task.Delay(0);
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
cLogManager.LogException(E);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override List<eLiamAccessRoles> ValidPermissionRoles()
|
||||
{
|
||||
var RetVal = new List<eLiamAccessRoles>() {
|
||||
eLiamAccessRoles.Read,
|
||||
eLiamAccessRoles.Write,
|
||||
eLiamAccessRoles.Owner
|
||||
};
|
||||
return RetVal;
|
||||
}
|
||||
|
||||
public override string getLastError()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public class TreeNodeLiamPermission : TreeNodeBase
|
||||
{
|
||||
public cLiamPermissionInfo Permission = null;
|
||||
public cLiamDataAreaBase DataArea = null;
|
||||
|
||||
public TreeNodeLiamPermission(cLiamPermissionInfo Permission, cLiamDataAreaBase DataArea) : base()
|
||||
{
|
||||
this.Permission = Permission;
|
||||
this.DataArea = DataArea;
|
||||
}
|
||||
|
||||
public override bool AutoResolved()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override string GetInfoText()
|
||||
{
|
||||
if (Permission == null)
|
||||
return "";
|
||||
|
||||
var strInfo = $"Type: Role memership";
|
||||
|
||||
|
||||
var strUser = "-unknown-";
|
||||
if (Permission.User != null)
|
||||
{
|
||||
if (Permission.User != null)
|
||||
{
|
||||
strUser = Permission.User.DisplayName;
|
||||
if (string.IsNullOrEmpty(strUser))
|
||||
strUser = Permission.User.UserPrincipalName;
|
||||
if (string.IsNullOrEmpty(strUser))
|
||||
strUser = Permission.User.EMail;
|
||||
}
|
||||
}
|
||||
strInfo += $"\r\n\r\nUser or group: {strUser}";
|
||||
|
||||
|
||||
strInfo += $"\r\n\r\nRole: {Permission.AccessRole}";
|
||||
|
||||
return strInfo;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (Permission == null)
|
||||
return "";
|
||||
|
||||
var strName = "Unknown";
|
||||
if (Permission.User != null)
|
||||
{
|
||||
strName = Permission.User.DisplayName;
|
||||
if (string.IsNullOrEmpty(strName))
|
||||
strName = Permission.User.UserPrincipalName;
|
||||
if (string.IsNullOrEmpty(strName))
|
||||
strName = Permission.User.EMail;
|
||||
}
|
||||
strName += ": [" ;
|
||||
|
||||
var strRoles = Permission.AccessRole.ToString();
|
||||
|
||||
return strName + strRoles + "]";
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
cLogManager.LogException(E);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public override bool IsResolved()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
override public async Task<List<TreeNodeBase>> ResolveAsync(bool ResolveAlways = false)
|
||||
{
|
||||
await Task.Delay(0);
|
||||
return new List<TreeNodeBase>();
|
||||
}
|
||||
|
||||
public override int ImageIndex()
|
||||
{
|
||||
return 6;
|
||||
}
|
||||
|
||||
public override dynamic GetJsonObject()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public override bool SupportPermissionRemoveDirect()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override async Task<bool> RemovePermissionDirect()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (Permission == null)
|
||||
return false;
|
||||
if (Permission.User == null)
|
||||
return false;
|
||||
|
||||
|
||||
var RetVal = await DataArea.RevokePermissionAsync(Permission.User, Permission.AccessRole);
|
||||
return RetVal;
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
cLogManager.LogException(E);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,26 +1,26 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using C4IT.Logging;
|
||||
|
||||
namespace LiamTestTeams
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
cLogManagerFile.CreateInstance(cLogManagerFile.GetDefaultPath(false, SubFolder: "logs"));
|
||||
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new frmMain());
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using C4IT.Logging;
|
||||
|
||||
namespace LiamTestTeams
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
cLogManagerFile.CreateInstance(cLogManagerFile.GetDefaultPath(false, SubFolder: "logs"));
|
||||
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new frmMain());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
[assembly: AssemblyTitle("LIAM Testing for MS Teams & Sharepoint")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
[assembly: Guid("6197c490-07c6-4313-8e0f-aadc27776473")]
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
[assembly: AssemblyTitle("LIAM Testing for MS Teams & Sharepoint")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
[assembly: Guid("6197c490-07c6-4313-8e0f-aadc27776473")]
|
||||
|
||||
140
LiamTestTeams/Properties/Resources.Designer.cs
generated
140
LiamTestTeams/Properties/Resources.Designer.cs
generated
@@ -1,70 +1,70 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
namespace LiamTestTeams.Properties
|
||||
{
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources
|
||||
{
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager
|
||||
{
|
||||
get
|
||||
{
|
||||
if ((resourceMan == null))
|
||||
{
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LiamTestTeams.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture
|
||||
{
|
||||
get
|
||||
{
|
||||
return resourceCulture;
|
||||
}
|
||||
set
|
||||
{
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
namespace LiamTestTeams.Properties
|
||||
{
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources
|
||||
{
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager
|
||||
{
|
||||
get
|
||||
{
|
||||
if ((resourceMan == null))
|
||||
{
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LiamTestTeams.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture
|
||||
{
|
||||
get
|
||||
{
|
||||
return resourceCulture;
|
||||
}
|
||||
set
|
||||
{
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,117 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
58
LiamTestTeams/Properties/Settings.Designer.cs
generated
58
LiamTestTeams/Properties/Settings.Designer.cs
generated
@@ -1,29 +1,29 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
namespace LiamTestTeams.Properties
|
||||
{
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
|
||||
{
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default
|
||||
{
|
||||
get
|
||||
{
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
namespace LiamTestTeams.Properties
|
||||
{
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
|
||||
{
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default
|
||||
{
|
||||
get
|
||||
{
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,38 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
|
||||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.1" newVersion="5.0.0.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Graph.Core" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.24.0.0" newVersion="1.24.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Identity.Client" publicKeyToken="0a613f4dd989e8ae" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.27.0.0" newVersion="4.27.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
|
||||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.1" newVersion="5.0.0.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Graph.Core" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.24.0.0" newVersion="1.24.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Identity.Client" publicKeyToken="0a613f4dd989e8ae" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.27.0.0" newVersion="4.27.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,38 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
|
||||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.1" newVersion="5.0.0.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Graph.Core" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.24.0.0" newVersion="1.24.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Identity.Client" publicKeyToken="0a613f4dd989e8ae" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.27.0.0" newVersion="4.27.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
|
||||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.1" newVersion="5.0.0.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Graph.Core" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.24.0.0" newVersion="1.24.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Identity.Client" publicKeyToken="0a613f4dd989e8ae" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.27.0.0" newVersion="4.27.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
Binary file not shown.
@@ -1,36 +1,36 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using C4IT.Configuration;
|
||||
using C4IT.Security;
|
||||
|
||||
namespace LiamTestTeams
|
||||
{
|
||||
public class cLiamTestTeamsConfig
|
||||
{
|
||||
public const string constRegPathConfig = @"Software\Consulting4IT GmbH\LIAM\LiamTestTeams";
|
||||
|
||||
[RegConfig]
|
||||
public string Tenant = "";
|
||||
|
||||
[RegConfig]
|
||||
public string ClientAppID = "";
|
||||
|
||||
[RegConfig]
|
||||
public string ClientSecret = "";
|
||||
|
||||
public void Save(string Property = null)
|
||||
{
|
||||
cConfigRegistryHelper.Save(constRegPathConfig, this, Property);
|
||||
}
|
||||
|
||||
public void Load()
|
||||
{
|
||||
cConfigRegistryHelper.Load(constRegPathConfig, this, true);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using C4IT.Configuration;
|
||||
using C4IT.Security;
|
||||
|
||||
namespace LiamTestTeams
|
||||
{
|
||||
public class cLiamTestTeamsConfig
|
||||
{
|
||||
public const string constRegPathConfig = @"Software\Consulting4IT GmbH\LIAM\LiamTestTeams";
|
||||
|
||||
[RegConfig]
|
||||
public string Tenant = "";
|
||||
|
||||
[RegConfig]
|
||||
public string ClientAppID = "";
|
||||
|
||||
[RegConfig]
|
||||
public string ClientSecret = "";
|
||||
|
||||
public void Save(string Property = null)
|
||||
{
|
||||
cConfigRegistryHelper.Save(constRegPathConfig, this, Property);
|
||||
}
|
||||
|
||||
public void Load()
|
||||
{
|
||||
cConfigRegistryHelper.Load(constRegPathConfig, this, true);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
502
LiamTestTeams/ctrlTabLiam.Designer.cs
generated
502
LiamTestTeams/ctrlTabLiam.Designer.cs
generated
@@ -1,251 +1,251 @@
|
||||
|
||||
namespace LiamTestTeams
|
||||
{
|
||||
partial class ctrlTabLiam
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ctrlTabLiam));
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.treeViewTeams = new System.Windows.Forms.TreeView();
|
||||
this.contextMenuStripTreeNode = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.ToolStripMenuItemRefresh = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItemGetJson = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.toolStripMenuItemAddPermission = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItemRemovePermission = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
|
||||
this.labelTitel = new System.Windows.Forms.Label();
|
||||
this.textBoxErrorMessage = new System.Windows.Forms.TextBox();
|
||||
this.textBoxDetails = new System.Windows.Forms.TextBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.toolStripMenuItemLoadFromUID = new System.Windows.Forms.ToolStripMenuItem();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
this.splitContainer1.Panel2.SuspendLayout();
|
||||
this.splitContainer1.SuspendLayout();
|
||||
this.contextMenuStripTreeNode.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// splitContainer1
|
||||
//
|
||||
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainer1.Name = "splitContainer1";
|
||||
//
|
||||
// splitContainer1.Panel1
|
||||
//
|
||||
this.splitContainer1.Panel1.Controls.Add(this.treeViewTeams);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.labelTitel);
|
||||
//
|
||||
// splitContainer1.Panel2
|
||||
//
|
||||
this.splitContainer1.Panel2.Controls.Add(this.textBoxErrorMessage);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.textBoxDetails);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.label2);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(556, 293);
|
||||
this.splitContainer1.SplitterDistance = 276;
|
||||
this.splitContainer1.TabIndex = 0;
|
||||
//
|
||||
// treeViewTeams
|
||||
//
|
||||
this.treeViewTeams.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.treeViewTeams.ContextMenuStrip = this.contextMenuStripTreeNode;
|
||||
this.treeViewTeams.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.treeViewTeams.FullRowSelect = true;
|
||||
this.treeViewTeams.HideSelection = false;
|
||||
this.treeViewTeams.ImageIndex = 0;
|
||||
this.treeViewTeams.ImageList = this.imageList1;
|
||||
this.treeViewTeams.Location = new System.Drawing.Point(3, 26);
|
||||
this.treeViewTeams.Name = "treeViewTeams";
|
||||
this.treeViewTeams.SelectedImageIndex = 0;
|
||||
this.treeViewTeams.Size = new System.Drawing.Size(270, 264);
|
||||
this.treeViewTeams.TabIndex = 1;
|
||||
this.treeViewTeams.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeViewTeams_AfterSelect);
|
||||
//
|
||||
// contextMenuStripTreeNode
|
||||
//
|
||||
this.contextMenuStripTreeNode.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.ToolStripMenuItemRefresh,
|
||||
this.toolStripMenuItemGetJson,
|
||||
this.toolStripSeparator1,
|
||||
this.toolStripMenuItemAddPermission,
|
||||
this.toolStripMenuItemRemovePermission,
|
||||
this.toolStripSeparator2,
|
||||
this.toolStripMenuItemLoadFromUID});
|
||||
this.contextMenuStripTreeNode.Name = "contextMenuStripTreeNode";
|
||||
this.contextMenuStripTreeNode.Size = new System.Drawing.Size(181, 148);
|
||||
//
|
||||
// ToolStripMenuItemRefresh
|
||||
//
|
||||
this.ToolStripMenuItemRefresh.Name = "ToolStripMenuItemRefresh";
|
||||
this.ToolStripMenuItemRefresh.Size = new System.Drawing.Size(180, 22);
|
||||
this.ToolStripMenuItemRefresh.Text = "Refresh";
|
||||
this.ToolStripMenuItemRefresh.Click += new System.EventHandler(this.ToolStripMenuItemRefresh_Click);
|
||||
//
|
||||
// toolStripMenuItemGetJson
|
||||
//
|
||||
this.toolStripMenuItemGetJson.Name = "toolStripMenuItemGetJson";
|
||||
this.toolStripMenuItemGetJson.Size = new System.Drawing.Size(180, 22);
|
||||
this.toolStripMenuItemGetJson.Text = "Get json string";
|
||||
this.toolStripMenuItemGetJson.Click += new System.EventHandler(this.toolStripMenuItemGetJson_Click);
|
||||
//
|
||||
// toolStripSeparator1
|
||||
//
|
||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||
this.toolStripSeparator1.Size = new System.Drawing.Size(177, 6);
|
||||
//
|
||||
// toolStripMenuItemAddPermission
|
||||
//
|
||||
this.toolStripMenuItemAddPermission.Enabled = false;
|
||||
this.toolStripMenuItemAddPermission.Name = "toolStripMenuItemAddPermission";
|
||||
this.toolStripMenuItemAddPermission.Size = new System.Drawing.Size(180, 22);
|
||||
this.toolStripMenuItemAddPermission.Text = "Add permission";
|
||||
this.toolStripMenuItemAddPermission.Click += new System.EventHandler(this.toolStripMenuItemAddPermission_Click);
|
||||
//
|
||||
// toolStripMenuItemRemovePermission
|
||||
//
|
||||
this.toolStripMenuItemRemovePermission.Enabled = false;
|
||||
this.toolStripMenuItemRemovePermission.Name = "toolStripMenuItemRemovePermission";
|
||||
this.toolStripMenuItemRemovePermission.Size = new System.Drawing.Size(180, 22);
|
||||
this.toolStripMenuItemRemovePermission.Text = "Remove permission";
|
||||
this.toolStripMenuItemRemovePermission.Click += new System.EventHandler(this.toolStripMenuItemRemovePermission_Click);
|
||||
//
|
||||
// imageList1
|
||||
//
|
||||
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
|
||||
this.imageList1.TransparentColor = System.Drawing.Color.Transparent;
|
||||
this.imageList1.Images.SetKeyName(0, "Team_32.png");
|
||||
this.imageList1.Images.SetKeyName(1, "Channel_32.png");
|
||||
this.imageList1.Images.SetKeyName(2, "ChannelFolder_32.png");
|
||||
this.imageList1.Images.SetKeyName(3, "Folder_32.png");
|
||||
this.imageList1.Images.SetKeyName(4, "permission_32.png");
|
||||
this.imageList1.Images.SetKeyName(5, "permission2_32.png");
|
||||
this.imageList1.Images.SetKeyName(6, "permission3_32.png");
|
||||
this.imageList1.Images.SetKeyName(7, "Error_32.png");
|
||||
this.imageList1.Images.SetKeyName(8, "Unknown_32.png");
|
||||
//
|
||||
// labelTitel
|
||||
//
|
||||
this.labelTitel.AutoSize = true;
|
||||
this.labelTitel.Location = new System.Drawing.Point(3, 10);
|
||||
this.labelTitel.Name = "labelTitel";
|
||||
this.labelTitel.Size = new System.Drawing.Size(61, 13);
|
||||
this.labelTitel.TabIndex = 0;
|
||||
this.labelTitel.Text = "MS Teams:";
|
||||
//
|
||||
// textBoxErrorMessage
|
||||
//
|
||||
this.textBoxErrorMessage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.textBoxErrorMessage.ForeColor = System.Drawing.Color.Maroon;
|
||||
this.textBoxErrorMessage.Location = new System.Drawing.Point(6, 209);
|
||||
this.textBoxErrorMessage.Multiline = true;
|
||||
this.textBoxErrorMessage.Name = "textBoxErrorMessage";
|
||||
this.textBoxErrorMessage.ReadOnly = true;
|
||||
this.textBoxErrorMessage.Size = new System.Drawing.Size(267, 81);
|
||||
this.textBoxErrorMessage.TabIndex = 2;
|
||||
this.textBoxErrorMessage.Visible = false;
|
||||
//
|
||||
// textBoxDetails
|
||||
//
|
||||
this.textBoxDetails.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.textBoxDetails.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.textBoxDetails.Location = new System.Drawing.Point(6, 26);
|
||||
this.textBoxDetails.Multiline = true;
|
||||
this.textBoxDetails.Name = "textBoxDetails";
|
||||
this.textBoxDetails.ReadOnly = true;
|
||||
this.textBoxDetails.ScrollBars = System.Windows.Forms.ScrollBars.Both;
|
||||
this.textBoxDetails.Size = new System.Drawing.Size(267, 264);
|
||||
this.textBoxDetails.TabIndex = 1;
|
||||
this.textBoxDetails.WordWrap = false;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(3, 10);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(42, 13);
|
||||
this.label2.TabIndex = 0;
|
||||
this.label2.Text = "Details:";
|
||||
//
|
||||
// toolStripSeparator2
|
||||
//
|
||||
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
||||
this.toolStripSeparator2.Size = new System.Drawing.Size(177, 6);
|
||||
//
|
||||
// toolStripMenuItemLoadFromUID
|
||||
//
|
||||
this.toolStripMenuItemLoadFromUID.Enabled = false;
|
||||
this.toolStripMenuItemLoadFromUID.Name = "toolStripMenuItemLoadFromUID";
|
||||
this.toolStripMenuItemLoadFromUID.Size = new System.Drawing.Size(180, 22);
|
||||
this.toolStripMenuItemLoadFromUID.Text = "Try load from UID";
|
||||
this.toolStripMenuItemLoadFromUID.Click += new System.EventHandler(this.toolStripMenuItemLoadFromUID_Click);
|
||||
//
|
||||
// ctrlTabLiam
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.splitContainer1);
|
||||
this.Name = "ctrlTabLiam";
|
||||
this.Size = new System.Drawing.Size(556, 293);
|
||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||
this.splitContainer1.Panel1.PerformLayout();
|
||||
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||
this.splitContainer1.Panel2.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
||||
this.splitContainer1.ResumeLayout(false);
|
||||
this.contextMenuStripTreeNode.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.SplitContainer splitContainer1;
|
||||
private System.Windows.Forms.TreeView treeViewTeams;
|
||||
private System.Windows.Forms.Label labelTitel;
|
||||
private System.Windows.Forms.TextBox textBoxDetails;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.ImageList imageList1;
|
||||
private System.Windows.Forms.ContextMenuStrip contextMenuStripTreeNode;
|
||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemGetJson;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemAddPermission;
|
||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemRemovePermission;
|
||||
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItemRefresh;
|
||||
private System.Windows.Forms.TextBox textBoxErrorMessage;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemLoadFromUID;
|
||||
}
|
||||
}
|
||||
|
||||
namespace LiamTestTeams
|
||||
{
|
||||
partial class ctrlTabLiam
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ctrlTabLiam));
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.treeViewTeams = new System.Windows.Forms.TreeView();
|
||||
this.contextMenuStripTreeNode = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.ToolStripMenuItemRefresh = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItemGetJson = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.toolStripMenuItemAddPermission = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItemRemovePermission = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
|
||||
this.labelTitel = new System.Windows.Forms.Label();
|
||||
this.textBoxErrorMessage = new System.Windows.Forms.TextBox();
|
||||
this.textBoxDetails = new System.Windows.Forms.TextBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.toolStripMenuItemLoadFromUID = new System.Windows.Forms.ToolStripMenuItem();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
this.splitContainer1.Panel2.SuspendLayout();
|
||||
this.splitContainer1.SuspendLayout();
|
||||
this.contextMenuStripTreeNode.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// splitContainer1
|
||||
//
|
||||
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainer1.Name = "splitContainer1";
|
||||
//
|
||||
// splitContainer1.Panel1
|
||||
//
|
||||
this.splitContainer1.Panel1.Controls.Add(this.treeViewTeams);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.labelTitel);
|
||||
//
|
||||
// splitContainer1.Panel2
|
||||
//
|
||||
this.splitContainer1.Panel2.Controls.Add(this.textBoxErrorMessage);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.textBoxDetails);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.label2);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(556, 293);
|
||||
this.splitContainer1.SplitterDistance = 276;
|
||||
this.splitContainer1.TabIndex = 0;
|
||||
//
|
||||
// treeViewTeams
|
||||
//
|
||||
this.treeViewTeams.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.treeViewTeams.ContextMenuStrip = this.contextMenuStripTreeNode;
|
||||
this.treeViewTeams.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.treeViewTeams.FullRowSelect = true;
|
||||
this.treeViewTeams.HideSelection = false;
|
||||
this.treeViewTeams.ImageIndex = 0;
|
||||
this.treeViewTeams.ImageList = this.imageList1;
|
||||
this.treeViewTeams.Location = new System.Drawing.Point(3, 26);
|
||||
this.treeViewTeams.Name = "treeViewTeams";
|
||||
this.treeViewTeams.SelectedImageIndex = 0;
|
||||
this.treeViewTeams.Size = new System.Drawing.Size(270, 264);
|
||||
this.treeViewTeams.TabIndex = 1;
|
||||
this.treeViewTeams.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeViewTeams_AfterSelect);
|
||||
//
|
||||
// contextMenuStripTreeNode
|
||||
//
|
||||
this.contextMenuStripTreeNode.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.ToolStripMenuItemRefresh,
|
||||
this.toolStripMenuItemGetJson,
|
||||
this.toolStripSeparator1,
|
||||
this.toolStripMenuItemAddPermission,
|
||||
this.toolStripMenuItemRemovePermission,
|
||||
this.toolStripSeparator2,
|
||||
this.toolStripMenuItemLoadFromUID});
|
||||
this.contextMenuStripTreeNode.Name = "contextMenuStripTreeNode";
|
||||
this.contextMenuStripTreeNode.Size = new System.Drawing.Size(181, 148);
|
||||
//
|
||||
// ToolStripMenuItemRefresh
|
||||
//
|
||||
this.ToolStripMenuItemRefresh.Name = "ToolStripMenuItemRefresh";
|
||||
this.ToolStripMenuItemRefresh.Size = new System.Drawing.Size(180, 22);
|
||||
this.ToolStripMenuItemRefresh.Text = "Refresh";
|
||||
this.ToolStripMenuItemRefresh.Click += new System.EventHandler(this.ToolStripMenuItemRefresh_Click);
|
||||
//
|
||||
// toolStripMenuItemGetJson
|
||||
//
|
||||
this.toolStripMenuItemGetJson.Name = "toolStripMenuItemGetJson";
|
||||
this.toolStripMenuItemGetJson.Size = new System.Drawing.Size(180, 22);
|
||||
this.toolStripMenuItemGetJson.Text = "Get json string";
|
||||
this.toolStripMenuItemGetJson.Click += new System.EventHandler(this.toolStripMenuItemGetJson_Click);
|
||||
//
|
||||
// toolStripSeparator1
|
||||
//
|
||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||
this.toolStripSeparator1.Size = new System.Drawing.Size(177, 6);
|
||||
//
|
||||
// toolStripMenuItemAddPermission
|
||||
//
|
||||
this.toolStripMenuItemAddPermission.Enabled = false;
|
||||
this.toolStripMenuItemAddPermission.Name = "toolStripMenuItemAddPermission";
|
||||
this.toolStripMenuItemAddPermission.Size = new System.Drawing.Size(180, 22);
|
||||
this.toolStripMenuItemAddPermission.Text = "Add permission";
|
||||
this.toolStripMenuItemAddPermission.Click += new System.EventHandler(this.toolStripMenuItemAddPermission_Click);
|
||||
//
|
||||
// toolStripMenuItemRemovePermission
|
||||
//
|
||||
this.toolStripMenuItemRemovePermission.Enabled = false;
|
||||
this.toolStripMenuItemRemovePermission.Name = "toolStripMenuItemRemovePermission";
|
||||
this.toolStripMenuItemRemovePermission.Size = new System.Drawing.Size(180, 22);
|
||||
this.toolStripMenuItemRemovePermission.Text = "Remove permission";
|
||||
this.toolStripMenuItemRemovePermission.Click += new System.EventHandler(this.toolStripMenuItemRemovePermission_Click);
|
||||
//
|
||||
// imageList1
|
||||
//
|
||||
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
|
||||
this.imageList1.TransparentColor = System.Drawing.Color.Transparent;
|
||||
this.imageList1.Images.SetKeyName(0, "Team_32.png");
|
||||
this.imageList1.Images.SetKeyName(1, "Channel_32.png");
|
||||
this.imageList1.Images.SetKeyName(2, "ChannelFolder_32.png");
|
||||
this.imageList1.Images.SetKeyName(3, "Folder_32.png");
|
||||
this.imageList1.Images.SetKeyName(4, "permission_32.png");
|
||||
this.imageList1.Images.SetKeyName(5, "permission2_32.png");
|
||||
this.imageList1.Images.SetKeyName(6, "permission3_32.png");
|
||||
this.imageList1.Images.SetKeyName(7, "Error_32.png");
|
||||
this.imageList1.Images.SetKeyName(8, "Unknown_32.png");
|
||||
//
|
||||
// labelTitel
|
||||
//
|
||||
this.labelTitel.AutoSize = true;
|
||||
this.labelTitel.Location = new System.Drawing.Point(3, 10);
|
||||
this.labelTitel.Name = "labelTitel";
|
||||
this.labelTitel.Size = new System.Drawing.Size(61, 13);
|
||||
this.labelTitel.TabIndex = 0;
|
||||
this.labelTitel.Text = "MS Teams:";
|
||||
//
|
||||
// textBoxErrorMessage
|
||||
//
|
||||
this.textBoxErrorMessage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.textBoxErrorMessage.ForeColor = System.Drawing.Color.Maroon;
|
||||
this.textBoxErrorMessage.Location = new System.Drawing.Point(6, 209);
|
||||
this.textBoxErrorMessage.Multiline = true;
|
||||
this.textBoxErrorMessage.Name = "textBoxErrorMessage";
|
||||
this.textBoxErrorMessage.ReadOnly = true;
|
||||
this.textBoxErrorMessage.Size = new System.Drawing.Size(267, 81);
|
||||
this.textBoxErrorMessage.TabIndex = 2;
|
||||
this.textBoxErrorMessage.Visible = false;
|
||||
//
|
||||
// textBoxDetails
|
||||
//
|
||||
this.textBoxDetails.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.textBoxDetails.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.textBoxDetails.Location = new System.Drawing.Point(6, 26);
|
||||
this.textBoxDetails.Multiline = true;
|
||||
this.textBoxDetails.Name = "textBoxDetails";
|
||||
this.textBoxDetails.ReadOnly = true;
|
||||
this.textBoxDetails.ScrollBars = System.Windows.Forms.ScrollBars.Both;
|
||||
this.textBoxDetails.Size = new System.Drawing.Size(267, 264);
|
||||
this.textBoxDetails.TabIndex = 1;
|
||||
this.textBoxDetails.WordWrap = false;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(3, 10);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(42, 13);
|
||||
this.label2.TabIndex = 0;
|
||||
this.label2.Text = "Details:";
|
||||
//
|
||||
// toolStripSeparator2
|
||||
//
|
||||
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
||||
this.toolStripSeparator2.Size = new System.Drawing.Size(177, 6);
|
||||
//
|
||||
// toolStripMenuItemLoadFromUID
|
||||
//
|
||||
this.toolStripMenuItemLoadFromUID.Enabled = false;
|
||||
this.toolStripMenuItemLoadFromUID.Name = "toolStripMenuItemLoadFromUID";
|
||||
this.toolStripMenuItemLoadFromUID.Size = new System.Drawing.Size(180, 22);
|
||||
this.toolStripMenuItemLoadFromUID.Text = "Try load from UID";
|
||||
this.toolStripMenuItemLoadFromUID.Click += new System.EventHandler(this.toolStripMenuItemLoadFromUID_Click);
|
||||
//
|
||||
// ctrlTabLiam
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.splitContainer1);
|
||||
this.Name = "ctrlTabLiam";
|
||||
this.Size = new System.Drawing.Size(556, 293);
|
||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||
this.splitContainer1.Panel1.PerformLayout();
|
||||
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||
this.splitContainer1.Panel2.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
||||
this.splitContainer1.ResumeLayout(false);
|
||||
this.contextMenuStripTreeNode.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.SplitContainer splitContainer1;
|
||||
private System.Windows.Forms.TreeView treeViewTeams;
|
||||
private System.Windows.Forms.Label labelTitel;
|
||||
private System.Windows.Forms.TextBox textBoxDetails;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.ImageList imageList1;
|
||||
private System.Windows.Forms.ContextMenuStrip contextMenuStripTreeNode;
|
||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemGetJson;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemAddPermission;
|
||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemRemovePermission;
|
||||
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItemRefresh;
|
||||
private System.Windows.Forms.TextBox textBoxErrorMessage;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemLoadFromUID;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,457 +1,457 @@
|
||||
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 System.IO;
|
||||
using System.Diagnostics;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
|
||||
using C4IT.Logging;
|
||||
using C4IT.LIAM;
|
||||
using System.Reflection;
|
||||
using static C4IT.Logging.cLogManager;
|
||||
|
||||
namespace LiamTestTeams
|
||||
{
|
||||
public partial class ctrlTabLiam : UserControl
|
||||
{
|
||||
|
||||
public ctrlTabLiam()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public void SetTitle(string Title)
|
||||
{
|
||||
labelTitel.Text = Title;
|
||||
}
|
||||
|
||||
public async Task Refresh(TreeNodeRoot RootNode)
|
||||
{
|
||||
treeViewTeams.Nodes.Clear();
|
||||
|
||||
|
||||
var listGroups = await RootNode.ResolveAsync();
|
||||
ShowErrorMessage(RootNode.getLastError());
|
||||
|
||||
if (listGroups == null)
|
||||
return;
|
||||
|
||||
foreach (var Entry in listGroups)
|
||||
{
|
||||
var tr = new TreeNode(Entry.ToString())
|
||||
{
|
||||
ImageIndex = Entry.ImageIndex(),
|
||||
SelectedImageIndex = Entry.ImageIndex(),
|
||||
Tag = Entry,
|
||||
ForeColor = Color.Gray,
|
||||
};
|
||||
treeViewTeams.Nodes.Add(tr);
|
||||
}
|
||||
}
|
||||
|
||||
private async void treeViewTeams_AfterSelect(object sender, TreeViewEventArgs e)
|
||||
{
|
||||
if (treeViewTeams.SelectedNode == null && treeViewTeams.SelectedNode.Tag == null)
|
||||
{
|
||||
textBoxDetails.Text = "";
|
||||
return;
|
||||
}
|
||||
|
||||
var tag = treeViewTeams.SelectedNode.Tag;
|
||||
|
||||
if (tag is TreeNodeBase NodeInfo)
|
||||
{
|
||||
if (NodeInfo.SupportPermissionAdd())
|
||||
toolStripMenuItemAddPermission.Enabled = true;
|
||||
else
|
||||
toolStripMenuItemAddPermission.Enabled = false;
|
||||
if (NodeInfo.SupportPermissionRemoveDirect() || NodeInfo.SupportPermissionRemoveByValue())
|
||||
toolStripMenuItemRemovePermission.Enabled = true;
|
||||
else
|
||||
toolStripMenuItemRemovePermission.Enabled = false;
|
||||
if (NodeInfo.GetUID() != null)
|
||||
toolStripMenuItemLoadFromUID.Enabled = true;
|
||||
else
|
||||
toolStripMenuItemLoadFromUID.Enabled = false;
|
||||
|
||||
if (NodeInfo.IsResolved())
|
||||
{
|
||||
textBoxDetails.Text = NodeInfo.GetInfoText();
|
||||
return;
|
||||
}
|
||||
|
||||
Cursor = Cursors.WaitCursor;
|
||||
treeViewTeams.Enabled = false;
|
||||
try
|
||||
{
|
||||
await UpdateNode(treeViewTeams.SelectedNode, false);
|
||||
}
|
||||
catch { };
|
||||
|
||||
treeViewTeams.Enabled = true;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private async Task UpdateNode(TreeNode Node, bool ResolveAlways)
|
||||
{
|
||||
try
|
||||
{
|
||||
Node.Nodes.Clear();
|
||||
|
||||
if (!(Node.Tag is TreeNodeBase NodeInfo))
|
||||
{
|
||||
Node.Text = "- Error -";
|
||||
Node.ImageIndex = 7;
|
||||
Node.SelectedImageIndex = 7;
|
||||
return;
|
||||
}
|
||||
|
||||
var SubItems = await NodeInfo.ResolveAsync(ResolveAlways);
|
||||
ShowErrorMessage(NodeInfo.getLastError());
|
||||
|
||||
textBoxDetails.Text = NodeInfo.GetInfoText();
|
||||
|
||||
if (SubItems != null)
|
||||
{
|
||||
Node.ImageIndex = NodeInfo.ImageIndex();
|
||||
Node.SelectedImageIndex = Node.ImageIndex;
|
||||
treeViewTeams.BeginUpdate();
|
||||
try
|
||||
{
|
||||
foreach (var Entry in SubItems)
|
||||
{
|
||||
var tr = new TreeNode(Entry.ToString())
|
||||
{
|
||||
Tag = Entry,
|
||||
ImageIndex = Entry.ImageIndex(),
|
||||
SelectedImageIndex = Entry.ImageIndex()
|
||||
};
|
||||
|
||||
if (Entry.AutoResolved())
|
||||
tr.ForeColor = Color.Black;
|
||||
else
|
||||
tr.ForeColor = Color.Gray;
|
||||
|
||||
treeViewTeams.SelectedNode.Nodes.Add(tr);
|
||||
}
|
||||
treeViewTeams.SelectedNode.Expand();
|
||||
treeViewTeams.SelectedNode.ForeColor = Color.Black;
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
cLogManager.LogException(E);
|
||||
}
|
||||
finally
|
||||
{
|
||||
treeViewTeams.EndUpdate();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Node.ImageIndex = 7;
|
||||
Node.SelectedImageIndex = 7;
|
||||
}
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
cLogManager.LogException(E);
|
||||
Node.ImageIndex = 7;
|
||||
Node.SelectedImageIndex = 7;
|
||||
}
|
||||
}
|
||||
|
||||
private void toolStripMenuItemGetJson_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
if (treeViewTeams.SelectedNode == null)
|
||||
return;
|
||||
|
||||
if (!(treeViewTeams.SelectedNode.Tag is TreeNodeBase tn))
|
||||
return;
|
||||
|
||||
var strJson = tn.GetJson();
|
||||
|
||||
if (string.IsNullOrWhiteSpace(strJson))
|
||||
return;
|
||||
|
||||
var FN = Path.GetTempPath();
|
||||
FN = Path.Combine(FN, "LiamTestTeams");
|
||||
Directory.CreateDirectory(FN);
|
||||
var FN2 = cLogManagerFile.BuildFileName(treeViewTeams.SelectedNode.Text) + ".json";
|
||||
FN = Path.Combine(FN, FN2);
|
||||
|
||||
File.WriteAllText(FN, strJson);
|
||||
|
||||
var strEditor = Environment.ExpandEnvironmentVariables(@"%ProgramFiles%\Notepad++\notepad++.exe");
|
||||
if (!File.Exists(strEditor))
|
||||
strEditor = Environment.ExpandEnvironmentVariables(@"%ProgramFiles(x86)%\Notepad++\notepad++.exe");
|
||||
if (!File.Exists(strEditor))
|
||||
strEditor = Environment.ExpandEnvironmentVariables(@"%windir%\notepad.exe");
|
||||
|
||||
var PI = new ProcessStartInfo()
|
||||
{
|
||||
FileName = strEditor,
|
||||
Arguments = "\"" + FN + "\"",
|
||||
UseShellExecute = false
|
||||
};
|
||||
|
||||
Process.Start(PI);
|
||||
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
cLogManager.LogException(E);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private async void ToolStripMenuItemRefresh_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (treeViewTeams.SelectedNode == null)
|
||||
return;
|
||||
|
||||
if (!(treeViewTeams.SelectedNode.Tag is TreeNodeBase tn))
|
||||
return;
|
||||
|
||||
Cursor = Cursors.WaitCursor;
|
||||
treeViewTeams.Enabled = false;
|
||||
|
||||
await UpdateNode(treeViewTeams.SelectedNode, true);
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
cLogManager.LogException(E);
|
||||
}
|
||||
finally
|
||||
{
|
||||
treeViewTeams.Enabled = true;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
}
|
||||
|
||||
private async void toolStripMenuItemAddPermission_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (treeViewTeams.SelectedNode == null)
|
||||
return;
|
||||
|
||||
if (!(treeViewTeams.SelectedNode.Tag is TreeNodeBase tn))
|
||||
return;
|
||||
|
||||
if (!tn.SupportPermissionAdd())
|
||||
return;
|
||||
|
||||
var ValidRoles = tn.ValidPermissionRoles();
|
||||
if (ValidRoles == null || ValidRoles.Count == 0)
|
||||
return;
|
||||
|
||||
var dlgInput = new frmPermissionInput();
|
||||
|
||||
dlgInput.comboBoxRole.Items.Clear();
|
||||
foreach (var Entry in ValidRoles)
|
||||
dlgInput.comboBoxRole.Items.Add(Entry);
|
||||
|
||||
var Retval = dlgInput.ShowDialog();
|
||||
if (Retval != DialogResult.OK)
|
||||
return;
|
||||
|
||||
var User = dlgInput.textBoxEmail.Text.Trim();
|
||||
|
||||
eLiamAccessRoles Role;
|
||||
switch (dlgInput.comboBoxRole.SelectedIndex)
|
||||
{
|
||||
case 0:
|
||||
Role = eLiamAccessRoles.Read;
|
||||
break;
|
||||
case 1:
|
||||
Role = eLiamAccessRoles.Write;
|
||||
break;
|
||||
case 2:
|
||||
Role = eLiamAccessRoles.Owner;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
Cursor = Cursors.WaitCursor;
|
||||
treeViewTeams.Enabled = false;
|
||||
|
||||
await tn.AddPermission(Role, User);
|
||||
var LastMessage = tn.getLastError();
|
||||
await Task.Delay(100);
|
||||
await UpdateNode(treeViewTeams.SelectedNode, true);
|
||||
if (!string.IsNullOrEmpty(LastMessage))
|
||||
ShowErrorMessage(LastMessage);
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
cLogManager.LogException(E);
|
||||
}
|
||||
finally
|
||||
{
|
||||
treeViewTeams.Enabled = true;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private async void toolStripMenuItemRemovePermission_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (treeViewTeams.SelectedNode == null)
|
||||
return;
|
||||
|
||||
if (!(treeViewTeams.SelectedNode.Tag is TreeNodeBase tn))
|
||||
return;
|
||||
|
||||
if (tn.SupportPermissionRemoveDirect())
|
||||
{
|
||||
Cursor = Cursors.WaitCursor;
|
||||
treeViewTeams.Enabled = false;
|
||||
|
||||
await tn.RemovePermissionDirect();
|
||||
var LastMessage2 = tn.getLastError();
|
||||
await Task.Delay(100);
|
||||
await UpdateNode(treeViewTeams.SelectedNode.Parent, true);
|
||||
if (!string.IsNullOrEmpty(LastMessage2))
|
||||
ShowErrorMessage(LastMessage2);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!tn.SupportPermissionRemoveByValue())
|
||||
return;
|
||||
|
||||
var ValidRoles = tn.ValidPermissionRoles();
|
||||
if (ValidRoles == null || ValidRoles.Count == 0)
|
||||
return;
|
||||
|
||||
var dlgInput = new frmPermissionInput();
|
||||
|
||||
dlgInput.comboBoxRole.Items.Clear();
|
||||
foreach (var Entry in ValidRoles)
|
||||
dlgInput.comboBoxRole.Items.Add(Entry);
|
||||
|
||||
var Retval = dlgInput.ShowDialog();
|
||||
if (Retval != DialogResult.OK)
|
||||
return;
|
||||
|
||||
var User = dlgInput.textBoxEmail.Text.Trim();
|
||||
|
||||
eLiamAccessRoles Role;
|
||||
switch (dlgInput.comboBoxRole.SelectedIndex)
|
||||
{
|
||||
case 0:
|
||||
Role = eLiamAccessRoles.Read;
|
||||
break;
|
||||
case 1:
|
||||
Role = eLiamAccessRoles.Write;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Cursor = Cursors.WaitCursor;
|
||||
treeViewTeams.Enabled = false;
|
||||
|
||||
await tn.RemovePermissionByValue(Role, User);
|
||||
var LastMessage = tn.getLastError();
|
||||
await Task.Delay(100);
|
||||
await UpdateNode(treeViewTeams.SelectedNode, true);
|
||||
if (!string.IsNullOrEmpty(LastMessage))
|
||||
ShowErrorMessage(LastMessage);
|
||||
return;
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
cLogManager.LogException(E);
|
||||
}
|
||||
finally
|
||||
{
|
||||
treeViewTeams.Enabled = true;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void ShowErrorMessage(string Message)
|
||||
{
|
||||
Invoke(new MethodInvoker(() => {
|
||||
if (string.IsNullOrWhiteSpace(Message))
|
||||
{
|
||||
textBoxErrorMessage.Text = "";
|
||||
textBoxErrorMessage.Visible = false;
|
||||
textBoxDetails.Height = textBoxErrorMessage.Bottom - textBoxDetails.Top;
|
||||
}
|
||||
else
|
||||
{
|
||||
textBoxErrorMessage.Text = Message;
|
||||
textBoxErrorMessage.Visible = true;
|
||||
textBoxDetails.Height = textBoxErrorMessage.Top - textBoxDetails.Top - 1;
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
private async void toolStripMenuItemLoadFromUID_Click(object sender, EventArgs e)
|
||||
{
|
||||
var CM = MethodBase.GetCurrentMethod();
|
||||
LogMethodBegin(CM);
|
||||
try
|
||||
{
|
||||
if (treeViewTeams.SelectedNode == null)
|
||||
return;
|
||||
|
||||
if (!(treeViewTeams.SelectedNode.Tag is TreeNodeBase tn))
|
||||
return;
|
||||
|
||||
var myUID = tn.GetUID();
|
||||
if (myUID != null)
|
||||
{
|
||||
var N = await tn.LoadFromUID();
|
||||
if (N != null && N.GetUID() == myUID)
|
||||
{
|
||||
var IT = N.GetInfoText();
|
||||
|
||||
var childs = await N.ResolveAsync(true);
|
||||
if (childs != null)
|
||||
IT += $"\r\n\r\nchild count: {childs.Count}";
|
||||
else
|
||||
IT += $"\r\n\r\n*** Error resolving child nodes ***";
|
||||
|
||||
MessageBox.Show(this, IT, $"Result for '{N.ToString()}'", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
MessageBox.Show(this, "Error loading node from UID", $"UID = {myUID}", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
LogException(E);
|
||||
}
|
||||
finally
|
||||
{
|
||||
LogMethodEnd(CM);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
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 System.IO;
|
||||
using System.Diagnostics;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
|
||||
using C4IT.Logging;
|
||||
using C4IT.LIAM;
|
||||
using System.Reflection;
|
||||
using static C4IT.Logging.cLogManager;
|
||||
|
||||
namespace LiamTestTeams
|
||||
{
|
||||
public partial class ctrlTabLiam : UserControl
|
||||
{
|
||||
|
||||
public ctrlTabLiam()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public void SetTitle(string Title)
|
||||
{
|
||||
labelTitel.Text = Title;
|
||||
}
|
||||
|
||||
public async Task Refresh(TreeNodeRoot RootNode)
|
||||
{
|
||||
treeViewTeams.Nodes.Clear();
|
||||
|
||||
|
||||
var listGroups = await RootNode.ResolveAsync();
|
||||
ShowErrorMessage(RootNode.getLastError());
|
||||
|
||||
if (listGroups == null)
|
||||
return;
|
||||
|
||||
foreach (var Entry in listGroups)
|
||||
{
|
||||
var tr = new TreeNode(Entry.ToString())
|
||||
{
|
||||
ImageIndex = Entry.ImageIndex(),
|
||||
SelectedImageIndex = Entry.ImageIndex(),
|
||||
Tag = Entry,
|
||||
ForeColor = Color.Gray,
|
||||
};
|
||||
treeViewTeams.Nodes.Add(tr);
|
||||
}
|
||||
}
|
||||
|
||||
private async void treeViewTeams_AfterSelect(object sender, TreeViewEventArgs e)
|
||||
{
|
||||
if (treeViewTeams.SelectedNode == null && treeViewTeams.SelectedNode.Tag == null)
|
||||
{
|
||||
textBoxDetails.Text = "";
|
||||
return;
|
||||
}
|
||||
|
||||
var tag = treeViewTeams.SelectedNode.Tag;
|
||||
|
||||
if (tag is TreeNodeBase NodeInfo)
|
||||
{
|
||||
if (NodeInfo.SupportPermissionAdd())
|
||||
toolStripMenuItemAddPermission.Enabled = true;
|
||||
else
|
||||
toolStripMenuItemAddPermission.Enabled = false;
|
||||
if (NodeInfo.SupportPermissionRemoveDirect() || NodeInfo.SupportPermissionRemoveByValue())
|
||||
toolStripMenuItemRemovePermission.Enabled = true;
|
||||
else
|
||||
toolStripMenuItemRemovePermission.Enabled = false;
|
||||
if (NodeInfo.GetUID() != null)
|
||||
toolStripMenuItemLoadFromUID.Enabled = true;
|
||||
else
|
||||
toolStripMenuItemLoadFromUID.Enabled = false;
|
||||
|
||||
if (NodeInfo.IsResolved())
|
||||
{
|
||||
textBoxDetails.Text = NodeInfo.GetInfoText();
|
||||
return;
|
||||
}
|
||||
|
||||
Cursor = Cursors.WaitCursor;
|
||||
treeViewTeams.Enabled = false;
|
||||
try
|
||||
{
|
||||
await UpdateNode(treeViewTeams.SelectedNode, false);
|
||||
}
|
||||
catch { };
|
||||
|
||||
treeViewTeams.Enabled = true;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private async Task UpdateNode(TreeNode Node, bool ResolveAlways)
|
||||
{
|
||||
try
|
||||
{
|
||||
Node.Nodes.Clear();
|
||||
|
||||
if (!(Node.Tag is TreeNodeBase NodeInfo))
|
||||
{
|
||||
Node.Text = "- Error -";
|
||||
Node.ImageIndex = 7;
|
||||
Node.SelectedImageIndex = 7;
|
||||
return;
|
||||
}
|
||||
|
||||
var SubItems = await NodeInfo.ResolveAsync(ResolveAlways);
|
||||
ShowErrorMessage(NodeInfo.getLastError());
|
||||
|
||||
textBoxDetails.Text = NodeInfo.GetInfoText();
|
||||
|
||||
if (SubItems != null)
|
||||
{
|
||||
Node.ImageIndex = NodeInfo.ImageIndex();
|
||||
Node.SelectedImageIndex = Node.ImageIndex;
|
||||
treeViewTeams.BeginUpdate();
|
||||
try
|
||||
{
|
||||
foreach (var Entry in SubItems)
|
||||
{
|
||||
var tr = new TreeNode(Entry.ToString())
|
||||
{
|
||||
Tag = Entry,
|
||||
ImageIndex = Entry.ImageIndex(),
|
||||
SelectedImageIndex = Entry.ImageIndex()
|
||||
};
|
||||
|
||||
if (Entry.AutoResolved())
|
||||
tr.ForeColor = Color.Black;
|
||||
else
|
||||
tr.ForeColor = Color.Gray;
|
||||
|
||||
treeViewTeams.SelectedNode.Nodes.Add(tr);
|
||||
}
|
||||
treeViewTeams.SelectedNode.Expand();
|
||||
treeViewTeams.SelectedNode.ForeColor = Color.Black;
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
cLogManager.LogException(E);
|
||||
}
|
||||
finally
|
||||
{
|
||||
treeViewTeams.EndUpdate();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Node.ImageIndex = 7;
|
||||
Node.SelectedImageIndex = 7;
|
||||
}
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
cLogManager.LogException(E);
|
||||
Node.ImageIndex = 7;
|
||||
Node.SelectedImageIndex = 7;
|
||||
}
|
||||
}
|
||||
|
||||
private void toolStripMenuItemGetJson_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
if (treeViewTeams.SelectedNode == null)
|
||||
return;
|
||||
|
||||
if (!(treeViewTeams.SelectedNode.Tag is TreeNodeBase tn))
|
||||
return;
|
||||
|
||||
var strJson = tn.GetJson();
|
||||
|
||||
if (string.IsNullOrWhiteSpace(strJson))
|
||||
return;
|
||||
|
||||
var FN = Path.GetTempPath();
|
||||
FN = Path.Combine(FN, "LiamTestTeams");
|
||||
Directory.CreateDirectory(FN);
|
||||
var FN2 = cLogManagerFile.BuildFileName(treeViewTeams.SelectedNode.Text) + ".json";
|
||||
FN = Path.Combine(FN, FN2);
|
||||
|
||||
File.WriteAllText(FN, strJson);
|
||||
|
||||
var strEditor = Environment.ExpandEnvironmentVariables(@"%ProgramFiles%\Notepad++\notepad++.exe");
|
||||
if (!File.Exists(strEditor))
|
||||
strEditor = Environment.ExpandEnvironmentVariables(@"%ProgramFiles(x86)%\Notepad++\notepad++.exe");
|
||||
if (!File.Exists(strEditor))
|
||||
strEditor = Environment.ExpandEnvironmentVariables(@"%windir%\notepad.exe");
|
||||
|
||||
var PI = new ProcessStartInfo()
|
||||
{
|
||||
FileName = strEditor,
|
||||
Arguments = "\"" + FN + "\"",
|
||||
UseShellExecute = false
|
||||
};
|
||||
|
||||
Process.Start(PI);
|
||||
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
cLogManager.LogException(E);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private async void ToolStripMenuItemRefresh_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (treeViewTeams.SelectedNode == null)
|
||||
return;
|
||||
|
||||
if (!(treeViewTeams.SelectedNode.Tag is TreeNodeBase tn))
|
||||
return;
|
||||
|
||||
Cursor = Cursors.WaitCursor;
|
||||
treeViewTeams.Enabled = false;
|
||||
|
||||
await UpdateNode(treeViewTeams.SelectedNode, true);
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
cLogManager.LogException(E);
|
||||
}
|
||||
finally
|
||||
{
|
||||
treeViewTeams.Enabled = true;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
}
|
||||
|
||||
private async void toolStripMenuItemAddPermission_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (treeViewTeams.SelectedNode == null)
|
||||
return;
|
||||
|
||||
if (!(treeViewTeams.SelectedNode.Tag is TreeNodeBase tn))
|
||||
return;
|
||||
|
||||
if (!tn.SupportPermissionAdd())
|
||||
return;
|
||||
|
||||
var ValidRoles = tn.ValidPermissionRoles();
|
||||
if (ValidRoles == null || ValidRoles.Count == 0)
|
||||
return;
|
||||
|
||||
var dlgInput = new frmPermissionInput();
|
||||
|
||||
dlgInput.comboBoxRole.Items.Clear();
|
||||
foreach (var Entry in ValidRoles)
|
||||
dlgInput.comboBoxRole.Items.Add(Entry);
|
||||
|
||||
var Retval = dlgInput.ShowDialog();
|
||||
if (Retval != DialogResult.OK)
|
||||
return;
|
||||
|
||||
var User = dlgInput.textBoxEmail.Text.Trim();
|
||||
|
||||
eLiamAccessRoles Role;
|
||||
switch (dlgInput.comboBoxRole.SelectedIndex)
|
||||
{
|
||||
case 0:
|
||||
Role = eLiamAccessRoles.Read;
|
||||
break;
|
||||
case 1:
|
||||
Role = eLiamAccessRoles.Write;
|
||||
break;
|
||||
case 2:
|
||||
Role = eLiamAccessRoles.Owner;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
Cursor = Cursors.WaitCursor;
|
||||
treeViewTeams.Enabled = false;
|
||||
|
||||
await tn.AddPermission(Role, User);
|
||||
var LastMessage = tn.getLastError();
|
||||
await Task.Delay(100);
|
||||
await UpdateNode(treeViewTeams.SelectedNode, true);
|
||||
if (!string.IsNullOrEmpty(LastMessage))
|
||||
ShowErrorMessage(LastMessage);
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
cLogManager.LogException(E);
|
||||
}
|
||||
finally
|
||||
{
|
||||
treeViewTeams.Enabled = true;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private async void toolStripMenuItemRemovePermission_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (treeViewTeams.SelectedNode == null)
|
||||
return;
|
||||
|
||||
if (!(treeViewTeams.SelectedNode.Tag is TreeNodeBase tn))
|
||||
return;
|
||||
|
||||
if (tn.SupportPermissionRemoveDirect())
|
||||
{
|
||||
Cursor = Cursors.WaitCursor;
|
||||
treeViewTeams.Enabled = false;
|
||||
|
||||
await tn.RemovePermissionDirect();
|
||||
var LastMessage2 = tn.getLastError();
|
||||
await Task.Delay(100);
|
||||
await UpdateNode(treeViewTeams.SelectedNode.Parent, true);
|
||||
if (!string.IsNullOrEmpty(LastMessage2))
|
||||
ShowErrorMessage(LastMessage2);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!tn.SupportPermissionRemoveByValue())
|
||||
return;
|
||||
|
||||
var ValidRoles = tn.ValidPermissionRoles();
|
||||
if (ValidRoles == null || ValidRoles.Count == 0)
|
||||
return;
|
||||
|
||||
var dlgInput = new frmPermissionInput();
|
||||
|
||||
dlgInput.comboBoxRole.Items.Clear();
|
||||
foreach (var Entry in ValidRoles)
|
||||
dlgInput.comboBoxRole.Items.Add(Entry);
|
||||
|
||||
var Retval = dlgInput.ShowDialog();
|
||||
if (Retval != DialogResult.OK)
|
||||
return;
|
||||
|
||||
var User = dlgInput.textBoxEmail.Text.Trim();
|
||||
|
||||
eLiamAccessRoles Role;
|
||||
switch (dlgInput.comboBoxRole.SelectedIndex)
|
||||
{
|
||||
case 0:
|
||||
Role = eLiamAccessRoles.Read;
|
||||
break;
|
||||
case 1:
|
||||
Role = eLiamAccessRoles.Write;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Cursor = Cursors.WaitCursor;
|
||||
treeViewTeams.Enabled = false;
|
||||
|
||||
await tn.RemovePermissionByValue(Role, User);
|
||||
var LastMessage = tn.getLastError();
|
||||
await Task.Delay(100);
|
||||
await UpdateNode(treeViewTeams.SelectedNode, true);
|
||||
if (!string.IsNullOrEmpty(LastMessage))
|
||||
ShowErrorMessage(LastMessage);
|
||||
return;
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
cLogManager.LogException(E);
|
||||
}
|
||||
finally
|
||||
{
|
||||
treeViewTeams.Enabled = true;
|
||||
Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void ShowErrorMessage(string Message)
|
||||
{
|
||||
Invoke(new MethodInvoker(() => {
|
||||
if (string.IsNullOrWhiteSpace(Message))
|
||||
{
|
||||
textBoxErrorMessage.Text = "";
|
||||
textBoxErrorMessage.Visible = false;
|
||||
textBoxDetails.Height = textBoxErrorMessage.Bottom - textBoxDetails.Top;
|
||||
}
|
||||
else
|
||||
{
|
||||
textBoxErrorMessage.Text = Message;
|
||||
textBoxErrorMessage.Visible = true;
|
||||
textBoxDetails.Height = textBoxErrorMessage.Top - textBoxDetails.Top - 1;
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
private async void toolStripMenuItemLoadFromUID_Click(object sender, EventArgs e)
|
||||
{
|
||||
var CM = MethodBase.GetCurrentMethod();
|
||||
LogMethodBegin(CM);
|
||||
try
|
||||
{
|
||||
if (treeViewTeams.SelectedNode == null)
|
||||
return;
|
||||
|
||||
if (!(treeViewTeams.SelectedNode.Tag is TreeNodeBase tn))
|
||||
return;
|
||||
|
||||
var myUID = tn.GetUID();
|
||||
if (myUID != null)
|
||||
{
|
||||
var N = await tn.LoadFromUID();
|
||||
if (N != null && N.GetUID() == myUID)
|
||||
{
|
||||
var IT = N.GetInfoText();
|
||||
|
||||
var childs = await N.ResolveAsync(true);
|
||||
if (childs != null)
|
||||
IT += $"\r\n\r\nchild count: {childs.Count}";
|
||||
else
|
||||
IT += $"\r\n\r\n*** Error resolving child nodes ***";
|
||||
|
||||
MessageBox.Show(this, IT, $"Result for '{N.ToString()}'", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
MessageBox.Show(this, "Error loading node from UID", $"UID = {myUID}", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
LogException(E);
|
||||
}
|
||||
finally
|
||||
{
|
||||
LogMethodEnd(CM);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
650
LiamTestTeams/frmMain.Designer.cs
generated
650
LiamTestTeams/frmMain.Designer.cs
generated
@@ -1,325 +1,325 @@
|
||||
|
||||
namespace LiamTestTeams
|
||||
{
|
||||
partial class frmMain
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmMain));
|
||||
this.tabControlLiam = new System.Windows.Forms.TabControl();
|
||||
this.tabPageLogin = new System.Windows.Forms.TabPage();
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.buttonLogin = new System.Windows.Forms.Button();
|
||||
this.textBoxClientSecret = new System.Windows.Forms.TextBox();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.textBoxClientApp = new System.Windows.Forms.TextBox();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.textBoxTenant = new System.Windows.Forms.TextBox();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.groupBoxAccount = new System.Windows.Forms.GroupBox();
|
||||
this.textBoxErrorMessage = new System.Windows.Forms.TextBox();
|
||||
this.labelError = new System.Windows.Forms.Label();
|
||||
this.textBoxDomain = new System.Windows.Forms.TextBox();
|
||||
this.textBoxDisplayName = new System.Windows.Forms.TextBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.tabPageTeams = new System.Windows.Forms.TabPage();
|
||||
this.ctrlTabTeams1 = new LiamTestTeams.ctrlTabLiam();
|
||||
this.tabPageLiam = new System.Windows.Forms.TabPage();
|
||||
this.ctrlTabLiam1 = new LiamTestTeams.ctrlTabLiam();
|
||||
this.tabControlLiam.SuspendLayout();
|
||||
this.tabPageLogin.SuspendLayout();
|
||||
this.groupBox1.SuspendLayout();
|
||||
this.groupBoxAccount.SuspendLayout();
|
||||
this.tabPageTeams.SuspendLayout();
|
||||
this.tabPageLiam.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// tabControlLiam
|
||||
//
|
||||
this.tabControlLiam.Controls.Add(this.tabPageLogin);
|
||||
this.tabControlLiam.Controls.Add(this.tabPageTeams);
|
||||
this.tabControlLiam.Controls.Add(this.tabPageLiam);
|
||||
this.tabControlLiam.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tabControlLiam.Location = new System.Drawing.Point(0, 0);
|
||||
this.tabControlLiam.Name = "tabControlLiam";
|
||||
this.tabControlLiam.SelectedIndex = 0;
|
||||
this.tabControlLiam.Size = new System.Drawing.Size(880, 493);
|
||||
this.tabControlLiam.TabIndex = 0;
|
||||
//
|
||||
// tabPageLogin
|
||||
//
|
||||
this.tabPageLogin.Controls.Add(this.groupBox1);
|
||||
this.tabPageLogin.Controls.Add(this.groupBoxAccount);
|
||||
this.tabPageLogin.Location = new System.Drawing.Point(4, 22);
|
||||
this.tabPageLogin.Name = "tabPageLogin";
|
||||
this.tabPageLogin.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabPageLogin.Size = new System.Drawing.Size(872, 467);
|
||||
this.tabPageLogin.TabIndex = 0;
|
||||
this.tabPageLogin.Text = "Login";
|
||||
this.tabPageLogin.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// groupBox1
|
||||
//
|
||||
this.groupBox1.Controls.Add(this.buttonLogin);
|
||||
this.groupBox1.Controls.Add(this.textBoxClientSecret);
|
||||
this.groupBox1.Controls.Add(this.label5);
|
||||
this.groupBox1.Controls.Add(this.textBoxClientApp);
|
||||
this.groupBox1.Controls.Add(this.label4);
|
||||
this.groupBox1.Controls.Add(this.textBoxTenant);
|
||||
this.groupBox1.Controls.Add(this.label3);
|
||||
this.groupBox1.Location = new System.Drawing.Point(8, 6);
|
||||
this.groupBox1.Name = "groupBox1";
|
||||
this.groupBox1.Size = new System.Drawing.Size(861, 111);
|
||||
this.groupBox1.TabIndex = 0;
|
||||
this.groupBox1.TabStop = false;
|
||||
this.groupBox1.Text = "Tenant and access properties";
|
||||
//
|
||||
// buttonLogin
|
||||
//
|
||||
this.buttonLogin.Enabled = false;
|
||||
this.buttonLogin.Location = new System.Drawing.Point(458, 22);
|
||||
this.buttonLogin.Name = "buttonLogin";
|
||||
this.buttonLogin.Size = new System.Drawing.Size(75, 23);
|
||||
this.buttonLogin.TabIndex = 6;
|
||||
this.buttonLogin.Text = "Login";
|
||||
this.buttonLogin.UseVisualStyleBackColor = true;
|
||||
this.buttonLogin.Click += new System.EventHandler(this.buttonLogin_Click);
|
||||
//
|
||||
// textBoxClientSecret
|
||||
//
|
||||
this.textBoxClientSecret.Location = new System.Drawing.Point(144, 76);
|
||||
this.textBoxClientSecret.Name = "textBoxClientSecret";
|
||||
this.textBoxClientSecret.Size = new System.Drawing.Size(308, 20);
|
||||
this.textBoxClientSecret.TabIndex = 2;
|
||||
this.textBoxClientSecret.TextChanged += new System.EventHandler(this.textBoxInput_TextChanged);
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(70, 79);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(68, 13);
|
||||
this.label5.TabIndex = 5;
|
||||
this.label5.Text = "Client secret:";
|
||||
//
|
||||
// textBoxClientApp
|
||||
//
|
||||
this.textBoxClientApp.Location = new System.Drawing.Point(144, 50);
|
||||
this.textBoxClientApp.Name = "textBoxClientApp";
|
||||
this.textBoxClientApp.Size = new System.Drawing.Size(308, 20);
|
||||
this.textBoxClientApp.TabIndex = 1;
|
||||
this.textBoxClientApp.TextChanged += new System.EventHandler(this.textBoxInput_TextChanged);
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(31, 53);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(107, 13);
|
||||
this.label4.TabIndex = 4;
|
||||
this.label4.Text = "Client app ID (GUID):";
|
||||
//
|
||||
// textBoxTenant
|
||||
//
|
||||
this.textBoxTenant.Location = new System.Drawing.Point(144, 24);
|
||||
this.textBoxTenant.Name = "textBoxTenant";
|
||||
this.textBoxTenant.Size = new System.Drawing.Size(308, 20);
|
||||
this.textBoxTenant.TabIndex = 0;
|
||||
this.textBoxTenant.TextChanged += new System.EventHandler(this.textBoxInput_TextChanged);
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(33, 27);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(105, 13);
|
||||
this.label3.TabIndex = 3;
|
||||
this.label3.Text = "Tenant (DNS name):";
|
||||
//
|
||||
// groupBoxAccount
|
||||
//
|
||||
this.groupBoxAccount.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.groupBoxAccount.Controls.Add(this.textBoxErrorMessage);
|
||||
this.groupBoxAccount.Controls.Add(this.labelError);
|
||||
this.groupBoxAccount.Controls.Add(this.textBoxDomain);
|
||||
this.groupBoxAccount.Controls.Add(this.textBoxDisplayName);
|
||||
this.groupBoxAccount.Controls.Add(this.label2);
|
||||
this.groupBoxAccount.Controls.Add(this.label1);
|
||||
this.groupBoxAccount.Location = new System.Drawing.Point(8, 123);
|
||||
this.groupBoxAccount.Name = "groupBoxAccount";
|
||||
this.groupBoxAccount.Size = new System.Drawing.Size(861, 341);
|
||||
this.groupBoxAccount.TabIndex = 1;
|
||||
this.groupBoxAccount.TabStop = false;
|
||||
this.groupBoxAccount.Text = "- not logged in -";
|
||||
//
|
||||
// textBoxErrorMessage
|
||||
//
|
||||
this.textBoxErrorMessage.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.textBoxErrorMessage.Location = new System.Drawing.Point(15, 104);
|
||||
this.textBoxErrorMessage.Multiline = true;
|
||||
this.textBoxErrorMessage.Name = "textBoxErrorMessage";
|
||||
this.textBoxErrorMessage.Size = new System.Drawing.Size(841, 231);
|
||||
this.textBoxErrorMessage.TabIndex = 5;
|
||||
this.textBoxErrorMessage.Visible = false;
|
||||
//
|
||||
// labelError
|
||||
//
|
||||
this.labelError.AutoSize = true;
|
||||
this.labelError.ForeColor = System.Drawing.Color.Red;
|
||||
this.labelError.Location = new System.Drawing.Point(13, 88);
|
||||
this.labelError.Name = "labelError";
|
||||
this.labelError.Size = new System.Drawing.Size(77, 13);
|
||||
this.labelError.TabIndex = 4;
|
||||
this.labelError.Text = "Error message:";
|
||||
this.labelError.Visible = false;
|
||||
//
|
||||
// textBoxDomain
|
||||
//
|
||||
this.textBoxDomain.Location = new System.Drawing.Point(144, 50);
|
||||
this.textBoxDomain.Name = "textBoxDomain";
|
||||
this.textBoxDomain.ReadOnly = true;
|
||||
this.textBoxDomain.Size = new System.Drawing.Size(308, 20);
|
||||
this.textBoxDomain.TabIndex = 1;
|
||||
//
|
||||
// textBoxDisplayName
|
||||
//
|
||||
this.textBoxDisplayName.Location = new System.Drawing.Point(144, 25);
|
||||
this.textBoxDisplayName.Name = "textBoxDisplayName";
|
||||
this.textBoxDisplayName.ReadOnly = true;
|
||||
this.textBoxDisplayName.Size = new System.Drawing.Size(308, 20);
|
||||
this.textBoxDisplayName.TabIndex = 0;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(92, 53);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(46, 13);
|
||||
this.label2.TabIndex = 3;
|
||||
this.label2.Text = "Domain:";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(12, 28);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(126, 13);
|
||||
this.label1.TabIndex = 2;
|
||||
this.label1.Text = "Application display name:";
|
||||
//
|
||||
// tabPageTeams
|
||||
//
|
||||
this.tabPageTeams.Controls.Add(this.ctrlTabTeams1);
|
||||
this.tabPageTeams.Location = new System.Drawing.Point(4, 22);
|
||||
this.tabPageTeams.Name = "tabPageTeams";
|
||||
this.tabPageTeams.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabPageTeams.Size = new System.Drawing.Size(872, 467);
|
||||
this.tabPageTeams.TabIndex = 1;
|
||||
this.tabPageTeams.Text = "MS Teams";
|
||||
this.tabPageTeams.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// ctrlTabTeams1
|
||||
//
|
||||
this.ctrlTabTeams1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.ctrlTabTeams1.Location = new System.Drawing.Point(3, 3);
|
||||
this.ctrlTabTeams1.Name = "ctrlTabTeams1";
|
||||
this.ctrlTabTeams1.Size = new System.Drawing.Size(866, 461);
|
||||
this.ctrlTabTeams1.TabIndex = 0;
|
||||
//
|
||||
// tabPageLiam
|
||||
//
|
||||
this.tabPageLiam.Controls.Add(this.ctrlTabLiam1);
|
||||
this.tabPageLiam.Location = new System.Drawing.Point(4, 22);
|
||||
this.tabPageLiam.Name = "tabPageLiam";
|
||||
this.tabPageLiam.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabPageLiam.Size = new System.Drawing.Size(872, 467);
|
||||
this.tabPageLiam.TabIndex = 2;
|
||||
this.tabPageLiam.Text = "LIAM";
|
||||
this.tabPageLiam.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// ctrlTabLiam1
|
||||
//
|
||||
this.ctrlTabLiam1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.ctrlTabLiam1.Location = new System.Drawing.Point(3, 3);
|
||||
this.ctrlTabLiam1.Name = "ctrlTabLiam1";
|
||||
this.ctrlTabLiam1.Size = new System.Drawing.Size(866, 461);
|
||||
this.ctrlTabLiam1.TabIndex = 0;
|
||||
//
|
||||
// frmMain
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(880, 493);
|
||||
this.Controls.Add(this.tabControlLiam);
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.MinimumSize = new System.Drawing.Size(522, 374);
|
||||
this.Name = "frmMain";
|
||||
this.Text = "LIAM test application for MS Teams & Sharepoint";
|
||||
this.Load += new System.EventHandler(this.frmMain_Load);
|
||||
this.tabControlLiam.ResumeLayout(false);
|
||||
this.tabPageLogin.ResumeLayout(false);
|
||||
this.groupBox1.ResumeLayout(false);
|
||||
this.groupBox1.PerformLayout();
|
||||
this.groupBoxAccount.ResumeLayout(false);
|
||||
this.groupBoxAccount.PerformLayout();
|
||||
this.tabPageTeams.ResumeLayout(false);
|
||||
this.tabPageLiam.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TabControl tabControlLiam;
|
||||
private System.Windows.Forms.TabPage tabPageLogin;
|
||||
private System.Windows.Forms.TabPage tabPageTeams;
|
||||
private System.Windows.Forms.GroupBox groupBoxAccount;
|
||||
private System.Windows.Forms.TextBox textBoxDomain;
|
||||
private System.Windows.Forms.TextBox textBoxDisplayName;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.TextBox textBoxErrorMessage;
|
||||
private System.Windows.Forms.Label labelError;
|
||||
private System.Windows.Forms.GroupBox groupBox1;
|
||||
private System.Windows.Forms.TextBox textBoxTenant;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.TextBox textBoxClientApp;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.Button buttonLogin;
|
||||
private System.Windows.Forms.TextBox textBoxClientSecret;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.TabPage tabPageLiam;
|
||||
public ctrlTabLiam ctrlTabTeams1;
|
||||
public ctrlTabLiam ctrlTabLiam1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
namespace LiamTestTeams
|
||||
{
|
||||
partial class frmMain
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmMain));
|
||||
this.tabControlLiam = new System.Windows.Forms.TabControl();
|
||||
this.tabPageLogin = new System.Windows.Forms.TabPage();
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.buttonLogin = new System.Windows.Forms.Button();
|
||||
this.textBoxClientSecret = new System.Windows.Forms.TextBox();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.textBoxClientApp = new System.Windows.Forms.TextBox();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.textBoxTenant = new System.Windows.Forms.TextBox();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.groupBoxAccount = new System.Windows.Forms.GroupBox();
|
||||
this.textBoxErrorMessage = new System.Windows.Forms.TextBox();
|
||||
this.labelError = new System.Windows.Forms.Label();
|
||||
this.textBoxDomain = new System.Windows.Forms.TextBox();
|
||||
this.textBoxDisplayName = new System.Windows.Forms.TextBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.tabPageTeams = new System.Windows.Forms.TabPage();
|
||||
this.ctrlTabTeams1 = new LiamTestTeams.ctrlTabLiam();
|
||||
this.tabPageLiam = new System.Windows.Forms.TabPage();
|
||||
this.ctrlTabLiam1 = new LiamTestTeams.ctrlTabLiam();
|
||||
this.tabControlLiam.SuspendLayout();
|
||||
this.tabPageLogin.SuspendLayout();
|
||||
this.groupBox1.SuspendLayout();
|
||||
this.groupBoxAccount.SuspendLayout();
|
||||
this.tabPageTeams.SuspendLayout();
|
||||
this.tabPageLiam.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// tabControlLiam
|
||||
//
|
||||
this.tabControlLiam.Controls.Add(this.tabPageLogin);
|
||||
this.tabControlLiam.Controls.Add(this.tabPageTeams);
|
||||
this.tabControlLiam.Controls.Add(this.tabPageLiam);
|
||||
this.tabControlLiam.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tabControlLiam.Location = new System.Drawing.Point(0, 0);
|
||||
this.tabControlLiam.Name = "tabControlLiam";
|
||||
this.tabControlLiam.SelectedIndex = 0;
|
||||
this.tabControlLiam.Size = new System.Drawing.Size(880, 493);
|
||||
this.tabControlLiam.TabIndex = 0;
|
||||
//
|
||||
// tabPageLogin
|
||||
//
|
||||
this.tabPageLogin.Controls.Add(this.groupBox1);
|
||||
this.tabPageLogin.Controls.Add(this.groupBoxAccount);
|
||||
this.tabPageLogin.Location = new System.Drawing.Point(4, 22);
|
||||
this.tabPageLogin.Name = "tabPageLogin";
|
||||
this.tabPageLogin.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabPageLogin.Size = new System.Drawing.Size(872, 467);
|
||||
this.tabPageLogin.TabIndex = 0;
|
||||
this.tabPageLogin.Text = "Login";
|
||||
this.tabPageLogin.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// groupBox1
|
||||
//
|
||||
this.groupBox1.Controls.Add(this.buttonLogin);
|
||||
this.groupBox1.Controls.Add(this.textBoxClientSecret);
|
||||
this.groupBox1.Controls.Add(this.label5);
|
||||
this.groupBox1.Controls.Add(this.textBoxClientApp);
|
||||
this.groupBox1.Controls.Add(this.label4);
|
||||
this.groupBox1.Controls.Add(this.textBoxTenant);
|
||||
this.groupBox1.Controls.Add(this.label3);
|
||||
this.groupBox1.Location = new System.Drawing.Point(8, 6);
|
||||
this.groupBox1.Name = "groupBox1";
|
||||
this.groupBox1.Size = new System.Drawing.Size(861, 111);
|
||||
this.groupBox1.TabIndex = 0;
|
||||
this.groupBox1.TabStop = false;
|
||||
this.groupBox1.Text = "Tenant and access properties";
|
||||
//
|
||||
// buttonLogin
|
||||
//
|
||||
this.buttonLogin.Enabled = false;
|
||||
this.buttonLogin.Location = new System.Drawing.Point(458, 22);
|
||||
this.buttonLogin.Name = "buttonLogin";
|
||||
this.buttonLogin.Size = new System.Drawing.Size(75, 23);
|
||||
this.buttonLogin.TabIndex = 6;
|
||||
this.buttonLogin.Text = "Login";
|
||||
this.buttonLogin.UseVisualStyleBackColor = true;
|
||||
this.buttonLogin.Click += new System.EventHandler(this.buttonLogin_Click);
|
||||
//
|
||||
// textBoxClientSecret
|
||||
//
|
||||
this.textBoxClientSecret.Location = new System.Drawing.Point(144, 76);
|
||||
this.textBoxClientSecret.Name = "textBoxClientSecret";
|
||||
this.textBoxClientSecret.Size = new System.Drawing.Size(308, 20);
|
||||
this.textBoxClientSecret.TabIndex = 2;
|
||||
this.textBoxClientSecret.TextChanged += new System.EventHandler(this.textBoxInput_TextChanged);
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(70, 79);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(68, 13);
|
||||
this.label5.TabIndex = 5;
|
||||
this.label5.Text = "Client secret:";
|
||||
//
|
||||
// textBoxClientApp
|
||||
//
|
||||
this.textBoxClientApp.Location = new System.Drawing.Point(144, 50);
|
||||
this.textBoxClientApp.Name = "textBoxClientApp";
|
||||
this.textBoxClientApp.Size = new System.Drawing.Size(308, 20);
|
||||
this.textBoxClientApp.TabIndex = 1;
|
||||
this.textBoxClientApp.TextChanged += new System.EventHandler(this.textBoxInput_TextChanged);
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(31, 53);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(107, 13);
|
||||
this.label4.TabIndex = 4;
|
||||
this.label4.Text = "Client app ID (GUID):";
|
||||
//
|
||||
// textBoxTenant
|
||||
//
|
||||
this.textBoxTenant.Location = new System.Drawing.Point(144, 24);
|
||||
this.textBoxTenant.Name = "textBoxTenant";
|
||||
this.textBoxTenant.Size = new System.Drawing.Size(308, 20);
|
||||
this.textBoxTenant.TabIndex = 0;
|
||||
this.textBoxTenant.TextChanged += new System.EventHandler(this.textBoxInput_TextChanged);
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(33, 27);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(105, 13);
|
||||
this.label3.TabIndex = 3;
|
||||
this.label3.Text = "Tenant (DNS name):";
|
||||
//
|
||||
// groupBoxAccount
|
||||
//
|
||||
this.groupBoxAccount.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.groupBoxAccount.Controls.Add(this.textBoxErrorMessage);
|
||||
this.groupBoxAccount.Controls.Add(this.labelError);
|
||||
this.groupBoxAccount.Controls.Add(this.textBoxDomain);
|
||||
this.groupBoxAccount.Controls.Add(this.textBoxDisplayName);
|
||||
this.groupBoxAccount.Controls.Add(this.label2);
|
||||
this.groupBoxAccount.Controls.Add(this.label1);
|
||||
this.groupBoxAccount.Location = new System.Drawing.Point(8, 123);
|
||||
this.groupBoxAccount.Name = "groupBoxAccount";
|
||||
this.groupBoxAccount.Size = new System.Drawing.Size(861, 341);
|
||||
this.groupBoxAccount.TabIndex = 1;
|
||||
this.groupBoxAccount.TabStop = false;
|
||||
this.groupBoxAccount.Text = "- not logged in -";
|
||||
//
|
||||
// textBoxErrorMessage
|
||||
//
|
||||
this.textBoxErrorMessage.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.textBoxErrorMessage.Location = new System.Drawing.Point(15, 104);
|
||||
this.textBoxErrorMessage.Multiline = true;
|
||||
this.textBoxErrorMessage.Name = "textBoxErrorMessage";
|
||||
this.textBoxErrorMessage.Size = new System.Drawing.Size(841, 231);
|
||||
this.textBoxErrorMessage.TabIndex = 5;
|
||||
this.textBoxErrorMessage.Visible = false;
|
||||
//
|
||||
// labelError
|
||||
//
|
||||
this.labelError.AutoSize = true;
|
||||
this.labelError.ForeColor = System.Drawing.Color.Red;
|
||||
this.labelError.Location = new System.Drawing.Point(13, 88);
|
||||
this.labelError.Name = "labelError";
|
||||
this.labelError.Size = new System.Drawing.Size(77, 13);
|
||||
this.labelError.TabIndex = 4;
|
||||
this.labelError.Text = "Error message:";
|
||||
this.labelError.Visible = false;
|
||||
//
|
||||
// textBoxDomain
|
||||
//
|
||||
this.textBoxDomain.Location = new System.Drawing.Point(144, 50);
|
||||
this.textBoxDomain.Name = "textBoxDomain";
|
||||
this.textBoxDomain.ReadOnly = true;
|
||||
this.textBoxDomain.Size = new System.Drawing.Size(308, 20);
|
||||
this.textBoxDomain.TabIndex = 1;
|
||||
//
|
||||
// textBoxDisplayName
|
||||
//
|
||||
this.textBoxDisplayName.Location = new System.Drawing.Point(144, 25);
|
||||
this.textBoxDisplayName.Name = "textBoxDisplayName";
|
||||
this.textBoxDisplayName.ReadOnly = true;
|
||||
this.textBoxDisplayName.Size = new System.Drawing.Size(308, 20);
|
||||
this.textBoxDisplayName.TabIndex = 0;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(92, 53);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(46, 13);
|
||||
this.label2.TabIndex = 3;
|
||||
this.label2.Text = "Domain:";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(12, 28);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(126, 13);
|
||||
this.label1.TabIndex = 2;
|
||||
this.label1.Text = "Application display name:";
|
||||
//
|
||||
// tabPageTeams
|
||||
//
|
||||
this.tabPageTeams.Controls.Add(this.ctrlTabTeams1);
|
||||
this.tabPageTeams.Location = new System.Drawing.Point(4, 22);
|
||||
this.tabPageTeams.Name = "tabPageTeams";
|
||||
this.tabPageTeams.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabPageTeams.Size = new System.Drawing.Size(872, 467);
|
||||
this.tabPageTeams.TabIndex = 1;
|
||||
this.tabPageTeams.Text = "MS Teams";
|
||||
this.tabPageTeams.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// ctrlTabTeams1
|
||||
//
|
||||
this.ctrlTabTeams1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.ctrlTabTeams1.Location = new System.Drawing.Point(3, 3);
|
||||
this.ctrlTabTeams1.Name = "ctrlTabTeams1";
|
||||
this.ctrlTabTeams1.Size = new System.Drawing.Size(866, 461);
|
||||
this.ctrlTabTeams1.TabIndex = 0;
|
||||
//
|
||||
// tabPageLiam
|
||||
//
|
||||
this.tabPageLiam.Controls.Add(this.ctrlTabLiam1);
|
||||
this.tabPageLiam.Location = new System.Drawing.Point(4, 22);
|
||||
this.tabPageLiam.Name = "tabPageLiam";
|
||||
this.tabPageLiam.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabPageLiam.Size = new System.Drawing.Size(872, 467);
|
||||
this.tabPageLiam.TabIndex = 2;
|
||||
this.tabPageLiam.Text = "LIAM";
|
||||
this.tabPageLiam.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// ctrlTabLiam1
|
||||
//
|
||||
this.ctrlTabLiam1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.ctrlTabLiam1.Location = new System.Drawing.Point(3, 3);
|
||||
this.ctrlTabLiam1.Name = "ctrlTabLiam1";
|
||||
this.ctrlTabLiam1.Size = new System.Drawing.Size(866, 461);
|
||||
this.ctrlTabLiam1.TabIndex = 0;
|
||||
//
|
||||
// frmMain
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(880, 493);
|
||||
this.Controls.Add(this.tabControlLiam);
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.MinimumSize = new System.Drawing.Size(522, 374);
|
||||
this.Name = "frmMain";
|
||||
this.Text = "LIAM test application for MS Teams & Sharepoint";
|
||||
this.Load += new System.EventHandler(this.frmMain_Load);
|
||||
this.tabControlLiam.ResumeLayout(false);
|
||||
this.tabPageLogin.ResumeLayout(false);
|
||||
this.groupBox1.ResumeLayout(false);
|
||||
this.groupBox1.PerformLayout();
|
||||
this.groupBoxAccount.ResumeLayout(false);
|
||||
this.groupBoxAccount.PerformLayout();
|
||||
this.tabPageTeams.ResumeLayout(false);
|
||||
this.tabPageLiam.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TabControl tabControlLiam;
|
||||
private System.Windows.Forms.TabPage tabPageLogin;
|
||||
private System.Windows.Forms.TabPage tabPageTeams;
|
||||
private System.Windows.Forms.GroupBox groupBoxAccount;
|
||||
private System.Windows.Forms.TextBox textBoxDomain;
|
||||
private System.Windows.Forms.TextBox textBoxDisplayName;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.TextBox textBoxErrorMessage;
|
||||
private System.Windows.Forms.Label labelError;
|
||||
private System.Windows.Forms.GroupBox groupBox1;
|
||||
private System.Windows.Forms.TextBox textBoxTenant;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.TextBox textBoxClientApp;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.Button buttonLogin;
|
||||
private System.Windows.Forms.TextBox textBoxClientSecret;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.TabPage tabPageLiam;
|
||||
public ctrlTabLiam ctrlTabTeams1;
|
||||
public ctrlTabLiam ctrlTabLiam1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,152 +1,152 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
250
LiamTestTeams/frmPermissionInput.Designer.cs
generated
250
LiamTestTeams/frmPermissionInput.Designer.cs
generated
@@ -1,126 +1,126 @@
|
||||
|
||||
namespace LiamTestTeams
|
||||
{
|
||||
partial class frmPermissionInput
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.textBoxEmail = new System.Windows.Forms.TextBox();
|
||||
this.buttonOK = new System.Windows.Forms.Button();
|
||||
this.buttonCancel = new System.Windows.Forms.Button();
|
||||
this.comboBoxRole = new System.Windows.Forms.ComboBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(12, 15);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(102, 13);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "User e-mail address:";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(49, 43);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(65, 13);
|
||||
this.label2.TabIndex = 1;
|
||||
this.label2.Text = "Access role:";
|
||||
//
|
||||
// textBoxEmail
|
||||
//
|
||||
this.textBoxEmail.Location = new System.Drawing.Point(120, 12);
|
||||
this.textBoxEmail.Name = "textBoxEmail";
|
||||
this.textBoxEmail.Size = new System.Drawing.Size(139, 20);
|
||||
this.textBoxEmail.TabIndex = 2;
|
||||
this.textBoxEmail.TextChanged += new System.EventHandler(this.textBoxEmail_TextChanged);
|
||||
//
|
||||
// buttonOK
|
||||
//
|
||||
this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||
this.buttonOK.Enabled = false;
|
||||
this.buttonOK.Location = new System.Drawing.Point(52, 81);
|
||||
this.buttonOK.Name = "buttonOK";
|
||||
this.buttonOK.Size = new System.Drawing.Size(75, 23);
|
||||
this.buttonOK.TabIndex = 4;
|
||||
this.buttonOK.Text = "OK";
|
||||
this.buttonOK.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// buttonCancel
|
||||
//
|
||||
this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.buttonCancel.Location = new System.Drawing.Point(157, 81);
|
||||
this.buttonCancel.Name = "buttonCancel";
|
||||
this.buttonCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this.buttonCancel.TabIndex = 5;
|
||||
this.buttonCancel.Text = "Cancel";
|
||||
this.buttonCancel.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// comboBoxRole
|
||||
//
|
||||
this.comboBoxRole.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.comboBoxRole.FormattingEnabled = true;
|
||||
this.comboBoxRole.Location = new System.Drawing.Point(120, 40);
|
||||
this.comboBoxRole.Name = "comboBoxRole";
|
||||
this.comboBoxRole.Size = new System.Drawing.Size(139, 21);
|
||||
this.comboBoxRole.TabIndex = 6;
|
||||
//
|
||||
// frmPermissionInput
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(290, 118);
|
||||
this.Controls.Add(this.comboBoxRole);
|
||||
this.Controls.Add(this.buttonCancel);
|
||||
this.Controls.Add(this.buttonOK);
|
||||
this.Controls.Add(this.textBoxEmail);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.label1);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
|
||||
this.Name = "frmPermissionInput";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Select permission to add";
|
||||
this.Load += new System.EventHandler(this.frmPermissionInput_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Button buttonOK;
|
||||
private System.Windows.Forms.Button buttonCancel;
|
||||
public System.Windows.Forms.TextBox textBoxEmail;
|
||||
public System.Windows.Forms.ComboBox comboBoxRole;
|
||||
}
|
||||
|
||||
namespace LiamTestTeams
|
||||
{
|
||||
partial class frmPermissionInput
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.textBoxEmail = new System.Windows.Forms.TextBox();
|
||||
this.buttonOK = new System.Windows.Forms.Button();
|
||||
this.buttonCancel = new System.Windows.Forms.Button();
|
||||
this.comboBoxRole = new System.Windows.Forms.ComboBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(12, 15);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(102, 13);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "User e-mail address:";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(49, 43);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(65, 13);
|
||||
this.label2.TabIndex = 1;
|
||||
this.label2.Text = "Access role:";
|
||||
//
|
||||
// textBoxEmail
|
||||
//
|
||||
this.textBoxEmail.Location = new System.Drawing.Point(120, 12);
|
||||
this.textBoxEmail.Name = "textBoxEmail";
|
||||
this.textBoxEmail.Size = new System.Drawing.Size(139, 20);
|
||||
this.textBoxEmail.TabIndex = 2;
|
||||
this.textBoxEmail.TextChanged += new System.EventHandler(this.textBoxEmail_TextChanged);
|
||||
//
|
||||
// buttonOK
|
||||
//
|
||||
this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||
this.buttonOK.Enabled = false;
|
||||
this.buttonOK.Location = new System.Drawing.Point(52, 81);
|
||||
this.buttonOK.Name = "buttonOK";
|
||||
this.buttonOK.Size = new System.Drawing.Size(75, 23);
|
||||
this.buttonOK.TabIndex = 4;
|
||||
this.buttonOK.Text = "OK";
|
||||
this.buttonOK.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// buttonCancel
|
||||
//
|
||||
this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.buttonCancel.Location = new System.Drawing.Point(157, 81);
|
||||
this.buttonCancel.Name = "buttonCancel";
|
||||
this.buttonCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this.buttonCancel.TabIndex = 5;
|
||||
this.buttonCancel.Text = "Cancel";
|
||||
this.buttonCancel.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// comboBoxRole
|
||||
//
|
||||
this.comboBoxRole.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.comboBoxRole.FormattingEnabled = true;
|
||||
this.comboBoxRole.Location = new System.Drawing.Point(120, 40);
|
||||
this.comboBoxRole.Name = "comboBoxRole";
|
||||
this.comboBoxRole.Size = new System.Drawing.Size(139, 21);
|
||||
this.comboBoxRole.TabIndex = 6;
|
||||
//
|
||||
// frmPermissionInput
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(290, 118);
|
||||
this.Controls.Add(this.comboBoxRole);
|
||||
this.Controls.Add(this.buttonCancel);
|
||||
this.Controls.Add(this.buttonOK);
|
||||
this.Controls.Add(this.textBoxEmail);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.label1);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
|
||||
this.Name = "frmPermissionInput";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Select permission to add";
|
||||
this.Load += new System.EventHandler(this.frmPermissionInput_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Button buttonOK;
|
||||
private System.Windows.Forms.Button buttonCancel;
|
||||
public System.Windows.Forms.TextBox textBoxEmail;
|
||||
public System.Windows.Forms.ComboBox comboBoxRole;
|
||||
}
|
||||
}
|
||||
@@ -1,43 +1,43 @@
|
||||
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;
|
||||
|
||||
namespace LiamTestTeams
|
||||
{
|
||||
public partial class frmPermissionInput : Form
|
||||
{
|
||||
public frmPermissionInput()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void frmPermissionInput_Load(object sender, EventArgs e)
|
||||
{
|
||||
comboBoxRole.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
private void textBoxEmail_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
bool isValid = false;
|
||||
if (!string.IsNullOrWhiteSpace(textBoxEmail.Text))
|
||||
{
|
||||
try
|
||||
{
|
||||
var mail = new System.Net.Mail.MailAddress(textBoxEmail.Text.Trim());
|
||||
isValid = mail != null;
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
buttonOK.Enabled = isValid;
|
||||
}
|
||||
}
|
||||
}
|
||||
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;
|
||||
|
||||
namespace LiamTestTeams
|
||||
{
|
||||
public partial class frmPermissionInput : Form
|
||||
{
|
||||
public frmPermissionInput()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void frmPermissionInput_Load(object sender, EventArgs e)
|
||||
{
|
||||
comboBoxRole.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
private void textBoxEmail_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
bool isValid = false;
|
||||
if (!string.IsNullOrWhiteSpace(textBoxEmail.Text))
|
||||
{
|
||||
try
|
||||
{
|
||||
var mail = new System.Net.Mail.MailAddress(textBoxEmail.Text.Trim());
|
||||
isValid = mail != null;
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
buttonOK.Enabled = isValid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,120 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
@@ -1,4 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
2f632260cf699d0a9cd328e57cebdb2f7d8a1af17a3b5f120fbbd34441958e98
|
||||
91d3bc253f2f21a167dba8bf982bb9c119f559c938478e5c9b350fbf2271d3ac
|
||||
|
||||
@@ -1,24 +1,48 @@
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\LiamTestTeams.exe.config
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\LiamTestTeams.exe
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\LiamTestTeams.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\LiamBaseClasses.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\LiamHelper.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\LiamMsGraph.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\LiamMsTeams.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\Newtonsoft.Json.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\LiamBaseClasses.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\LiamHelper.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\LiamMsGraph.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\LiamMsTeams.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTestTeams.csproj.AssemblyReference.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTestTeams.csproj.SuggestedBindingRedirects.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTestTeams.exe.config
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTestTeams.ctrlTabLiam.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTestTeams.frmMain.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTestTeams.frmPermissionInput.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTestTeams.Properties.Resources.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTestTeams.csproj.GenerateResource.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTestTeams.csproj.CoreCompileInputs.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTest.67C85597.Up2Date
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTestTeams.exe
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTestTeams.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\LiamTestTeams.exe.config
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\LiamTestTeams.exe
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\LiamTestTeams.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\LiamBaseClasses.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\LiamHelper.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\LiamMsGraph.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\LiamMsTeams.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\Newtonsoft.Json.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\LiamBaseClasses.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\LiamHelper.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\LiamMsGraph.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Debug\LiamMsTeams.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTestTeams.csproj.AssemblyReference.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTestTeams.csproj.SuggestedBindingRedirects.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTestTeams.exe.config
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTestTeams.ctrlTabLiam.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTestTeams.frmMain.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTestTeams.frmPermissionInput.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTestTeams.Properties.Resources.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTestTeams.csproj.GenerateResource.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTestTeams.csproj.CoreCompileInputs.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTest.67C85597.Up2Date
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTestTeams.exe
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Debug\LiamTestTeams.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Debug\LiamTestTeams.exe.config
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Debug\LiamTestTeams.exe
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Debug\LiamTestTeams.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Debug\LiamBaseClasses.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Debug\LiamHelper.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Debug\LiamMsGraph.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Debug\LiamMsTeams.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Debug\Newtonsoft.Json.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Debug\LiamBaseClasses.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Debug\LiamHelper.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Debug\LiamMsGraph.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Debug\LiamMsTeams.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Debug\LiamTestTeams.csproj.AssemblyReference.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Debug\LiamTestTeams.csproj.SuggestedBindingRedirects.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Debug\LiamTestTeams.exe.config
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Debug\LiamTestTeams.ctrlTabLiam.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Debug\LiamTestTeams.frmMain.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Debug\LiamTestTeams.frmPermissionInput.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Debug\LiamTestTeams.Properties.Resources.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Debug\LiamTestTeams.csproj.GenerateResource.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Debug\LiamTestTeams.csproj.CoreCompileInputs.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Debug\LiamTest.67C85597.Up2Date
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Debug\LiamTestTeams.exe
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Debug\LiamTestTeams.pdb
|
||||
|
||||
@@ -1 +1 @@
|
||||
1ca0cc254a718603c74e05772c3db01a91d88ee2c1d09bc07150bf95e8eb18cb
|
||||
1ca0cc254a718603c74e05772c3db01a91d88ee2c1d09bc07150bf95e8eb18cb
|
||||
|
||||
Binary file not shown.
@@ -1,38 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
|
||||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.1" newVersion="5.0.0.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Graph.Core" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.24.0.0" newVersion="1.24.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Identity.Client" publicKeyToken="0a613f4dd989e8ae" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.27.0.0" newVersion="4.27.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
|
||||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.1" newVersion="5.0.0.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Graph.Core" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.24.0.0" newVersion="1.24.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Identity.Client" publicKeyToken="0a613f4dd989e8ae" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.27.0.0" newVersion="4.27.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
1c3a11131b5f22f88eaf2794057b85cc5ec639dab36b37bded2712dd1af36b0c
|
||||
f57db862243b89be45f96e3591eac707e18c5439b022bf606e8f483009487f45
|
||||
|
||||
@@ -1,24 +1,48 @@
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\LiamTestTeams.exe.config
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\LiamTestTeams.exe
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\LiamTestTeams.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\LiamBaseClasses.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\LiamHelper.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\LiamMsGraph.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\LiamMsTeams.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\Newtonsoft.Json.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\LiamBaseClasses.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\LiamHelper.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\LiamMsGraph.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\LiamMsTeams.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTestTeams.csproj.AssemblyReference.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTestTeams.csproj.SuggestedBindingRedirects.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTestTeams.exe.config
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTestTeams.ctrlTabLiam.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTestTeams.frmMain.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTestTeams.frmPermissionInput.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTestTeams.Properties.Resources.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTestTeams.csproj.GenerateResource.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTestTeams.csproj.CoreCompileInputs.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTest.67C85597.Up2Date
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTestTeams.exe
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTestTeams.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\LiamTestTeams.exe.config
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\LiamTestTeams.exe
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\LiamTestTeams.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\LiamBaseClasses.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\LiamHelper.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\LiamMsGraph.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\LiamMsTeams.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\Newtonsoft.Json.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\LiamBaseClasses.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\LiamHelper.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\LiamMsGraph.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\bin\Release\LiamMsTeams.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTestTeams.csproj.AssemblyReference.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTestTeams.csproj.SuggestedBindingRedirects.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTestTeams.exe.config
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTestTeams.ctrlTabLiam.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTestTeams.frmMain.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTestTeams.frmPermissionInput.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTestTeams.Properties.Resources.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTestTeams.csproj.GenerateResource.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTestTeams.csproj.CoreCompileInputs.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTest.67C85597.Up2Date
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTestTeams.exe
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service\LiamTestTeams\obj\Release\LiamTestTeams.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Release\LiamTestTeams.exe.config
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Release\LiamTestTeams.exe
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Release\LiamTestTeams.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Release\LiamBaseClasses.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Release\LiamHelper.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Release\LiamMsGraph.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Release\LiamMsTeams.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Release\Newtonsoft.Json.dll
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Release\LiamBaseClasses.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Release\LiamHelper.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Release\LiamMsGraph.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\bin\Release\LiamMsTeams.pdb
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Release\LiamTestTeams.csproj.AssemblyReference.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Release\LiamTestTeams.csproj.SuggestedBindingRedirects.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Release\LiamTestTeams.exe.config
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Release\LiamTestTeams.ctrlTabLiam.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Release\LiamTestTeams.frmMain.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Release\LiamTestTeams.frmPermissionInput.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Release\LiamTestTeams.Properties.Resources.resources
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Release\LiamTestTeams.csproj.GenerateResource.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Release\LiamTestTeams.csproj.CoreCompileInputs.cache
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Release\LiamTest.67C85597.Up2Date
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Release\LiamTestTeams.exe
|
||||
C:\Workspace\C4IT DEV LIAM WEB Service_git\LiamTestTeams\obj\Release\LiamTestTeams.pdb
|
||||
|
||||
@@ -1 +1 @@
|
||||
1ca0cc254a718603c74e05772c3db01a91d88ee2c1d09bc07150bf95e8eb18cb
|
||||
1ca0cc254a718603c74e05772c3db01a91d88ee2c1d09bc07150bf95e8eb18cb
|
||||
|
||||
Binary file not shown.
@@ -1,38 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
|
||||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.1" newVersion="5.0.0.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Graph.Core" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.24.0.0" newVersion="1.24.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Identity.Client" publicKeyToken="0a613f4dd989e8ae" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.27.0.0" newVersion="4.27.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
|
||||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.1" newVersion="5.0.0.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Graph.Core" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.24.0.0" newVersion="1.24.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Identity.Client" publicKeyToken="0a613f4dd989e8ae" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.27.0.0" newVersion="4.27.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
Binary file not shown.
Reference in New Issue
Block a user