diff --git a/Installer/DBAdminToolkit.Setup.zip b/Installer/DBAdminToolkit.Setup.zip index 9efc3e4..88a77bf 100644 Binary files a/Installer/DBAdminToolkit.Setup.zip and b/Installer/DBAdminToolkit.Setup.zip differ diff --git a/README.md b/README.md index be26a6c..89f121a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ![Dropbox Business Admin Toolkit](https://dl.dropboxusercontent.com/u/354544978/MKTG-DEMO/static/dropbox_s.png) -## Release 5.2.1 +## Release 6.0 ## Features @@ -21,6 +21,9 @@ - [x] Export list of Devices on your Dropbox team - [x] Report on all files in your Dropbox team - [x] Export full team member list with status +- [x] Export team's Paper docs to CSV, as well as bulk download all Paper docs. +- [x] Get teams auditing events, based on timestamp range as well as member filtering on the list. +- [x] Get important team data (reporting data) in Team Health tab. - [x] Manage multiple Dropbox accounts using the Admin Toolkit from a single UI ## Requirements diff --git a/Source/DBAdminToolkit.Setup/DBAdminToolkit.Setup.vdproj b/Source/DBAdminToolkit.Setup/DBAdminToolkit.Setup.vdproj index fb6575e..95a9e31 100644 --- a/Source/DBAdminToolkit.Setup/DBAdminToolkit.Setup.vdproj +++ b/Source/DBAdminToolkit.Setup/DBAdminToolkit.Setup.vdproj @@ -63,6 +63,12 @@ } "Entry" { + "MsmKey" = "8:_518A735363D64D80BAB4864F321FBD02" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_5661ECFE82564529A2FCAA07988A44AF" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -127,7 +133,7 @@ "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } - "Entry" + "Entry" { "MsmKey" = "8:_959030045CBA4F5090FA4DBB6CA51E8F" "OwnerKey" = "8:_UNDEFINED" @@ -136,6 +142,12 @@ "Entry" { "MsmKey" = "8:_98D806DD5327570DE7FD64E4DBD7FD2B" + "OwnerKey" = "8:_29597E39965D4D82B7C1E43E5262B5D8" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_98D806DD5327570DE7FD64E4DBD7FD2B" "OwnerKey" = "8:_4A6B6FBF12AC43BB83F88A643D56B1CE" "MsmSig" = "8:_UNDEFINED" } @@ -165,6 +177,12 @@ } "Entry" { + "MsmKey" = "8:_D47BEE037BE6462101E476EF6120A534" + "OwnerKey" = "8:_4A6B6FBF12AC43BB83F88A643D56B1CE" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_EC168138A82141269980CA0411C5F417" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -178,13 +196,13 @@ "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_29597E39965D4D82B7C1E43E5262B5D8" + "OwnerKey" = "8:_20D2D1C0384C24D624835FDEEA55E755" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_A4152587AA564BE2471A6D4C0F596B87" + "OwnerKey" = "8:_604E624E49524AB483464DD673E08914" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -196,19 +214,25 @@ "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_2E62269EFD269AEF848109100FDA0E52" + "OwnerKey" = "8:_A4152587AA564BE2471A6D4C0F596B87" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_692BA171A886727BC0AB5754FBD09D80" + "OwnerKey" = "8:_D47BEE037BE6462101E476EF6120A534" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_8E616154BC4D8F6BDB3BC1C2BA7CAFB7" + "OwnerKey" = "8:_29597E39965D4D82B7C1E43E5262B5D8" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_98D806DD5327570DE7FD64E4DBD7FD2B" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -220,19 +244,19 @@ "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_98D806DD5327570DE7FD64E4DBD7FD2B" + "OwnerKey" = "8:_8E616154BC4D8F6BDB3BC1C2BA7CAFB7" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_604E624E49524AB483464DD673E08914" + "OwnerKey" = "8:_692BA171A886727BC0AB5754FBD09D80" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_20D2D1C0384C24D624835FDEEA55E755" + "OwnerKey" = "8:_2E62269EFD269AEF848109100FDA0E52" "MsmSig" = "8:_UNDEFINED" } } @@ -337,6 +361,11 @@ "AssemblyAsmDisplayName" = "8:ObjectListView, Version=2.9.0.25611, Culture=neutral, PublicKeyToken=b1c5bf581481bcd4, processorArchitecture=MSIL" "ScatterAssemblies" { + "_20D2D1C0384C24D624835FDEEA55E755" + { + "Name" = "8:ObjectListView.DLL" + "Attributes" = "3:512" + } } "SourcePath" = "8:ObjectListView.DLL" "TargetName" = "8:" @@ -360,7 +389,7 @@ { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:ProviderLauncher, Version=5.1.0.0, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:ProviderLauncher, Version=6.0.0.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { "_29597E39965D4D82B7C1E43E5262B5D8" @@ -394,6 +423,11 @@ "AssemblyAsmDisplayName" = "8:Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL" "ScatterAssemblies" { + "_2E62269EFD269AEF848109100FDA0E52" + { + "Name" = "8:Newtonsoft.Json.DLL" + "Attributes" = "3:512" + } } "SourcePath" = "8:Newtonsoft.Json.DLL" "TargetName" = "8:" @@ -420,6 +454,11 @@ "AssemblyAsmDisplayName" = "8:CustomTabControl, Version=1.0.1.7, Culture=neutral, PublicKeyToken=53c237210c7e462d, processorArchitecture=MSIL" "ScatterAssemblies" { + "_2EEC1DA55561C2D8DA9E1CA61339695B" + { + "Name" = "8:CustomTabControl.DLL" + "Attributes" = "3:512" + } } "SourcePath" = "8:CustomTabControl.DLL" "TargetName" = "8:" @@ -463,7 +502,7 @@ { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:DfBAdminToolkit, Version=5.1.1.0, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:DfBAdminToolkit, Version=6.0.0.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { "_4A6B6FBF12AC43BB83F88A643D56B1CE" @@ -510,6 +549,26 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_518A735363D64D80BAB4864F321FBD02" + { + "SourcePath" = "8:..\\..\\..\\..\\FilterOnMemberEventsTemplate.csv" + "TargetName" = "8:FilterOnMemberEventsTemplate.csv" + "Tag" = "8:" + "Folder" = "8:_DF991A4076234D9C941D22E5025CD05C" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_5661ECFE82564529A2FCAA07988A44AF" { "SourcePath" = "8:..\\DfBAdminToolkit\\app.manifest" @@ -537,6 +596,11 @@ "AssemblyAsmDisplayName" = "8:MRG.Controls.UI, Version=1.0.2601.14400, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { + "_604E624E49524AB483464DD673E08914" + { + "Name" = "8:MRG.Controls.UI.DLL" + "Attributes" = "3:512" + } } "SourcePath" = "8:MRG.Controls.UI.DLL" "TargetName" = "8:" @@ -563,6 +627,11 @@ "AssemblyAsmDisplayName" = "8:RestSharp, Version=105.2.3.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { + "_692BA171A886727BC0AB5754FBD09D80" + { + "Name" = "8:RestSharp.DLL" + "Attributes" = "3:512" + } } "SourcePath" = "8:RestSharp.DLL" "TargetName" = "8:" @@ -713,7 +782,7 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_959030045CBA4F5090FA4DBB6CA51E8F" + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_959030045CBA4F5090FA4DBB6CA51E8F" { "SourcePath" = "8:..\\..\\..\\..\\TeamFolderTemplate.csv" "TargetName" = "8:TeamFolderTemplate.csv" @@ -737,9 +806,14 @@ { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:DfBAdminToolkit.Common, Version=4.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:DfBAdminToolkit.Common, Version=6.0.0.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { + "_98D806DD5327570DE7FD64E4DBD7FD2B" + { + "Name" = "8:DfBAdminToolkit.Common.DLL" + "Attributes" = "3:512" + } } "SourcePath" = "8:DfBAdminToolkit.Common.DLL" "TargetName" = "8:" @@ -766,6 +840,11 @@ "AssemblyAsmDisplayName" = "8:CsvHelper, Version=2.0.0.0, Culture=neutral, PublicKeyToken=8c4959082be5c823, processorArchitecture=MSIL" "ScatterAssemblies" { + "_A4152587AA564BE2471A6D4C0F596B87" + { + "Name" = "8:CsvHelper.DLL" + "Attributes" = "3:512" + } } "SourcePath" = "8:CsvHelper.DLL" "TargetName" = "8:" @@ -856,6 +935,37 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D47BEE037BE6462101E476EF6120A534" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:AquaGauge, Version=1.0.2800.27798, Culture=neutral, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_D47BEE037BE6462101E476EF6120A534" + { + "Name" = "8:AquaGauge.DLL" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:AquaGauge.DLL" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_5574A63BF49B4C69B71A3F07F6F7B807" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_EC168138A82141269980CA0411C5F417" { "SourcePath" = "8:..\\DfBAdminToolkit\\Install Config\\Providers.xml" @@ -955,14 +1065,14 @@ "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:Dropbox Business Admin Toolkit" "ProductCode" = "8:{452CE1DA-DC98-4462-BF82-F383FD02A240}" - "PackageCode" = "8:{4F507568-2104-402C-812B-BF0F65944546}" + "PackageCode" = "8:{183770FB-1641-40A8-96FF-677380BCB4FD}" "UpgradeCode" = "8:{F6F4214B-C1CB-4F20-B1B3-35E1B7262F93}" "AspNetVersion" = "8:4.0.30319.0" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:TRUE" "DetectNewerInstalledVersion" = "11:TRUE" "InstallAllUsers" = "11:FALSE" - "ProductVersion" = "8:5.2.1" + "ProductVersion" = "8:6.0.0" "Manufacturer" = "8:Dropbox Enterprise Services" "ARPHELPTELEPHONE" = "8:" "ARPHELPLINK" = "8:" diff --git a/Source/DfBAdminToolkit.Common/Properties/AssemblyInfo.cs b/Source/DfBAdminToolkit.Common/Properties/AssemblyInfo.cs index edd807f..9708512 100644 --- a/Source/DfBAdminToolkit.Common/Properties/AssemblyInfo.cs +++ b/Source/DfBAdminToolkit.Common/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("5.2.1.0")] -[assembly: AssemblyFileVersion("5.2.1.0")] +[assembly: AssemblyVersion("6.0.0.0")] +[assembly: AssemblyFileVersion("6.0.0.0")] diff --git a/Source/DfBAdminToolkit.Common/Services/MemberServices.cs b/Source/DfBAdminToolkit.Common/Services/MemberServices.cs index 00b1950..6c617a6 100644 --- a/Source/DfBAdminToolkit.Common/Services/MemberServices.cs +++ b/Source/DfBAdminToolkit.Common/Services/MemberServices.cs @@ -7,7 +7,6 @@ using System.IO.Compression; using System.Net; using System.Collections.Generic; - using System.Globalization; public class MemberServices : IMemberServices { @@ -1540,11 +1539,22 @@ public IDataResponse PermDeletePaperDoc(string memberId, string authToken, strin public IDataResponse DownloadPaperDoc(string memberId, string docId, string outputFolder, string fileName, string authToken) { IDataResponse dataResponse = null; + //strip illegal characters from filename + Char[] invalidChars = Path.GetInvalidFileNameChars(); + foreach (char a in fileName) + { + foreach (char c in invalidChars) + { + if (a.CompareTo(c) == 0) + { + fileName = fileName.Replace(a.ToString(), ""); + } + } + } try { if (!string.IsNullOrEmpty(DownloadPaperDocUrl)) { - //string pathString = string.Concat(@"{""path"":""", newPath, @"""}"); string arg = @"{""doc_id"": """ + docId + @""",""export_format"": ""html""}"; string url = string.Format("{0}/{1}/", _baseUrl, _apiVersion); RestClient client = new RestClient(url); @@ -1557,7 +1567,6 @@ public IDataResponse DownloadPaperDoc(string memberId, string docId, string outp //download file by using raw bytes returned byte[] jsonResponseDump = client.DownloadData(request); - string outputPath = Path.Combine(outputFolder, fileName + ".html"); File.WriteAllBytes(outputPath, jsonResponseDump); } diff --git a/Source/DfBAdminToolkit.Common/Utils/FileUtil.cs b/Source/DfBAdminToolkit.Common/Utils/FileUtil.cs index 9ce89ca..57a4124 100644 --- a/Source/DfBAdminToolkit.Common/Utils/FileUtil.cs +++ b/Source/DfBAdminToolkit.Common/Utils/FileUtil.cs @@ -1,4 +1,5 @@ -using System.Configuration; +using System; +using System.Configuration; using System.Linq; using System.Reflection; using System.Collections.Generic; @@ -35,25 +36,37 @@ public static decimal FormatFileSizeMB(decimal size) return newsize; } + public static double FormatFileSizeTB(UInt64 size) + { + //returns in TB to 2 decimal places as a double + ulong limits = 1099511627776; + double newsize = 0; + + newsize = (double)size / limits; + newsize = Math.Round(newsize, 2); + + return newsize; + } + public static string ConvertStateToAbbreviation(string stateName) { stateName = stateName.ToLower(); if (string.IsNullOrEmpty(stateName)) { - return null; + return string.Empty; } else if (stateName.Length == 2) { if (abbrevToState.ContainsKey(stateName.ToUpper())) return abbrevToState[stateName.ToUpper()]; else - return null; + return string.Empty; } else if (stateToAbbrev.ContainsKey(stateName.ToLower())) { return stateToAbbrev[stateName.ToLower()]; } - return null; + return string.Empty; } public static void EncryptAppSettings(string section) diff --git a/Source/DfBAdminToolkit/App.config b/Source/DfBAdminToolkit/App.config index bdcb456..16f3409 100644 --- a/Source/DfBAdminToolkit/App.config +++ b/Source/DfBAdminToolkit/App.config @@ -10,7 +10,7 @@ - + diff --git a/Source/DfBAdminToolkit/ConfigBackup/DfBAdminToolkit.exe.config b/Source/DfBAdminToolkit/ConfigBackup/DfBAdminToolkit.exe.config index 18f4653..c90d535 100644 --- a/Source/DfBAdminToolkit/ConfigBackup/DfBAdminToolkit.exe.config +++ b/Source/DfBAdminToolkit/ConfigBackup/DfBAdminToolkit.exe.config @@ -10,7 +10,7 @@ - + diff --git a/Source/DfBAdminToolkit/DfBAdminToolkit.csproj b/Source/DfBAdminToolkit/DfBAdminToolkit.csproj index c64bfc6..782a267 100644 --- a/Source/DfBAdminToolkit/DfBAdminToolkit.csproj +++ b/Source/DfBAdminToolkit/DfBAdminToolkit.csproj @@ -139,10 +139,12 @@ + + diff --git a/Source/DfBAdminToolkit/ErrorMessages.cs b/Source/DfBAdminToolkit/ErrorMessages.cs index 6acb831..49a86cd 100644 --- a/Source/DfBAdminToolkit/ErrorMessages.cs +++ b/Source/DfBAdminToolkit/ErrorMessages.cs @@ -15,8 +15,7 @@ public static class ErrorMessages public readonly static string FAILED_TO_SUSPEND_MEMBER = "Bad request to the API, possibly due to no permissions on your app to suspend members."; public readonly static string FAILED_TO_UNSUSPEND_MEMBER = "Bad request to the API, possibly due to no permissions on your app to unsuspend members."; public readonly static string FAILED_TO_RECOVER_MEMBER = "Bad request to the API, possibly due to no permissions on your app to recover members."; - public readonly static string FAILED_TO_UPDATE_PROFILE = "Bad request to the API, possibly due to no permissions on your app to update profiles."; - public readonly static string FAILED_TO_DELETE_PAPER = "Bad request to the API, possibly due to no permissions on your app to delete Paper docs."; + public readonly static string FAILED_TO_UPDATE_PROFILE = "Bad request to the API, possibly due to no permissions on your app to update profiles."; public readonly static string USER_NOT_FOUND = "No matching user found. The provided email does not exist on this team."; public readonly static string USER_NOT_IN_TEAM = "The user is not a member of this team."; public readonly static string EMAIL_RESERVED = "Email is already reserved for another user.."; @@ -48,5 +47,9 @@ public static class ErrorMessages public readonly static string FAILED_TO_UPDATE_TEAM_FOLDER_STATUS = "Bad request to the API, possibly due to no permissions on your app to update team folder status."; public readonly static string EXCEL_MISSING = "Excel is not properly installed on your machine."; public readonly static string BAD_CONFIG = "Detected an old or incorrect config file. Click OK to correct this and relaunch the Admin Toolkit (You will to have to replace your security tokens on relaunch)."; + public readonly static string FAILED_TO_GET_PAPER = "Bad request to the API, possibly due to no permissions on your app to get Paper docs."; + public readonly static string FAILED_TO_GET_PAPER_METADATA = "Bad request to the API, possibly due to no permissions on your app to get Paper doc metadata."; + public readonly static string FAILED_TO_DELETE_PAPER = "Bad request to the API, possibly due to no permissions on your app to delete Paper docs."; + public readonly static string FAILED_TO_GET_EVENTS = "Bad request to the API, possibly due to no permissions on your app to get team events."; } } \ No newline at end of file diff --git a/Source/DfBAdminToolkit/Install Config/DfBAdminToolkit.exe.config b/Source/DfBAdminToolkit/Install Config/DfBAdminToolkit.exe.config index 283b11b..0915172 100644 --- a/Source/DfBAdminToolkit/Install Config/DfBAdminToolkit.exe.config +++ b/Source/DfBAdminToolkit/Install Config/DfBAdminToolkit.exe.config @@ -10,7 +10,7 @@ - + diff --git a/Source/DfBAdminToolkit/Model/ITeamHealthModel.cs b/Source/DfBAdminToolkit/Model/ITeamHealthModel.cs index 946f21e..1a4de73 100644 --- a/Source/DfBAdminToolkit/Model/ITeamHealthModel.cs +++ b/Source/DfBAdminToolkit/Model/ITeamHealthModel.cs @@ -23,9 +23,9 @@ public interface ITeamHealthModel string SharedFolders { get; set; } - string ActiveSharedFolders28Day { get; set; } + string ActiveSharedFolders7Day { get; set; } - string ActiveUsers28Day { get; set; } + string ActiveUsers7Day { get; set; } string Adds { get; set; } @@ -33,6 +33,18 @@ public interface ITeamHealthModel string Deletes { get; set; } - string ActiveDevices28Day { get; set; } + string windows { get; set; } + + string macos { get; set; } + + string linux { get; set; } + + string ios { get; set; } + + string android { get; set; } + + string other { get; set; } + + string total { get; set; } } } \ No newline at end of file diff --git a/Source/DfBAdminToolkit/Model/PaperHeaderRecord.cs b/Source/DfBAdminToolkit/Model/PaperHeaderRecord.cs new file mode 100644 index 0000000..f192053 --- /dev/null +++ b/Source/DfBAdminToolkit/Model/PaperHeaderRecord.cs @@ -0,0 +1,34 @@ +using CsvHelper.Configuration; + +namespace DfBAdminToolkit.Model +{ + + public class PaperHeaderRecord + { + public string PaperName { get; set; } + public string PaperId { get; set; } + public string FolderPath { get; set; } + public string Status { get; set; } + public string Owner { get; set; } + public string CreatedDate { get; set; } + public string LastUpdatedDate { get; set; } + public string LastEditor { get; set; } + public string Revision { get; set; } + } + + public class PaperHeaderMap : CsvClassMap + { + public PaperHeaderMap() + { + Map(m => m.PaperName).Name("PaperName"); + Map(m => m.PaperId).Name("PaperId"); + Map(m => m.FolderPath).Name("FolderPath"); + Map(m => m.Status).Name("Status"); + Map(m => m.Owner).Name("Owner"); + Map(m => m.CreatedDate).Name("CreatedDate"); + Map(m => m.LastUpdatedDate).Name("LastUpdatedDate"); + Map(m => m.LastEditor).Name("LastEditor"); + Map(m => m.Revision).Name("Revision"); + } + } +} \ No newline at end of file diff --git a/Source/DfBAdminToolkit/Model/TeamAuditingHeaderMap.cs b/Source/DfBAdminToolkit/Model/TeamAuditingHeaderMap.cs new file mode 100644 index 0000000..1af68ed --- /dev/null +++ b/Source/DfBAdminToolkit/Model/TeamAuditingHeaderMap.cs @@ -0,0 +1,39 @@ +using CsvHelper.Configuration; + +namespace DfBAdminToolkit.Model +{ + public class TeamAuditingHeaderRecord + { + public string Timestamp { get; set; } + public string ActorType { get; set; } + public string Email { get; set; } + public string Context { get; set; } + public string EventType { get; set; } + public string Origin { get; set; } + public string IpAddress { get; set; } + public string City { get; set; } + public string Region { get; set; } + public string Country { get; set; } + public string Participants { get; set; } + public string Assets { get; set; } + } + + public class TeamAuditingHeaderMap : CsvClassMap + { + public TeamAuditingHeaderMap() + { + Map(m => m.Timestamp).Name("Timestamp"); + Map(m => m.ActorType).Name("ActorType"); + Map(m => m.Email).Name("Actor"); + Map(m => m.Context).Name("Context"); + Map(m => m.EventType).Name("EventType"); + Map(m => m.Origin).Name("Origin"); + Map(m => m.IpAddress).Name("IpAddress"); + Map(m => m.City).Name("City"); + Map(m => m.Region).Name("Region"); + Map(m => m.Country).Name("Country"); + Map(m => m.Participants).Name("Participants"); + Map(m => m.Assets).Name("Assets"); + } + } +} \ No newline at end of file diff --git a/Source/DfBAdminToolkit/Model/TeamHealthModel.cs b/Source/DfBAdminToolkit/Model/TeamHealthModel.cs index c1e87d1..a0a2261 100644 --- a/Source/DfBAdminToolkit/Model/TeamHealthModel.cs +++ b/Source/DfBAdminToolkit/Model/TeamHealthModel.cs @@ -26,9 +26,9 @@ public class TeamHealthModel public string SharedFolders { get; set; } //get_activity - public string ActiveSharedFolders28Day { get; set; } + public string ActiveSharedFolders7Day { get; set; } - public string ActiveUsers28Day { get; set; } + public string ActiveUsers7Day { get; set; } public string Adds { get; set; } @@ -37,14 +37,26 @@ public class TeamHealthModel public string Deletes { get; set; } //get_devices - public string ActiveDevices28Day { get; set; } + public string windows { get; set; } + + public string macos { get; set; } + + public string linux { get; set; } + + public string ios { get; set; } + + public string android { get; set; } + + public string other { get; set; } + + public string total { get; set; } public TeamHealthModel() { Initialize(); } public void Initialize() { - AccessToken = ApplicationResource.DefaultProvisionToken; + AccessToken = ApplicationResource.DefaultAccessToken; } public void CleanUp() { diff --git a/Source/DfBAdminToolkit/Presenter/PaperPresenter.cs b/Source/DfBAdminToolkit/Presenter/PaperPresenter.cs index 97671c1..0d0a6d8 100644 --- a/Source/DfBAdminToolkit/Presenter/PaperPresenter.cs +++ b/Source/DfBAdminToolkit/Presenter/PaperPresenter.cs @@ -13,12 +13,12 @@ using System.Linq; using System.Net; using System.Threading; + using System.Threading.Tasks; public class PaperPresenter : PresenterBase, IPaperPresenter { - - IList docIds; + public PaperPresenter(IPaperModel model, IPaperView view) : base(model, view) @@ -46,7 +46,7 @@ protected override void WireViewEvents() view.CommandGetPaper += OnCommandGetPaper; view.CommandDownloadPaper += OnCommandDownloadPaper; view.CommandDeletePaper += OnCommandDeletePaper; - view.CommandExportPaper += OnCommandExportPaper; + view.CommandExportToCSV += OnCommandExportPaper; IsViewEventsWired = true; } } @@ -59,7 +59,7 @@ protected override void UnWireViewEvents() view.CommandGetPaper -= OnCommandGetPaper; view.CommandDownloadPaper -= OnCommandDownloadPaper; view.CommandDeletePaper -= OnCommandDeletePaper; - view.CommandExportPaper -= OnCommandExportPaper; + view.CommandExportToCSV -= OnCommandExportPaper; IsViewEventsWired = false; } } @@ -68,46 +68,71 @@ protected override void CleanUp() { } - public void UpdateSettings() { + public void UpdateSettings() + { OnDataChanged(this, new EventArgs()); } #region REST Service - private void GetPaperDocs(IPaperModel model, IMainPresenter presenter) + private IList GetPaperDocs(IPaperModel model, IMainPresenter presenter, TeamListViewItemModel memberitem) { IMemberServices service = new MemberServices(ApplicationResource.BaseUrl, ApplicationResource.ApiVersion); service.ListPaperDocsUrl = ApplicationResource.ActionListPaperDocs; service.UserAgentVersion = ApplicationResource.UserAgent; string paperAccessToken = ApplicationResource.DefaultAccessToken; - docIds = new List(); - - IList members = SearchOwners(model, presenter); string memberId = string.Empty; - - foreach (var memberitem in members) + IList docIds = new List(); + //foreach (var memberitem in members) + //{ + if (!string.IsNullOrEmpty(memberitem.TeamId)) { - if (!string.IsNullOrEmpty(memberitem.TeamId)) - { - memberId = memberitem.TeamId; - } - IDataResponse response = service.ListPaperDocs(new MemberData() - { - MemberId = memberId - }, paperAccessToken); + memberId = memberitem.TeamId; + } + IDataResponse response = service.ListPaperDocs(new MemberData() + { + MemberId = memberId + }, paperAccessToken); - if (response.StatusCode == HttpStatusCode.OK) + if (response.StatusCode == HttpStatusCode.OK) + { + if (response.Data != null) { - if (response.Data != null) + string data = response.Data.ToString(); + dynamic jsonData = JsonConvert.DeserializeObject(data); + + int resultCount = jsonData["doc_ids"].Count; + for (int i = 0; i < resultCount; i++) { - string data = response.Data.ToString(); - dynamic jsonData = JsonConvert.DeserializeObject(data); + dynamic paperDocId = jsonData["doc_ids"][i]; - int resultCount = jsonData["doc_ids"].Count; - for (int i = 0; i < resultCount; i++) + // update model + PaperListViewItemModel lvItem = new PaperListViewItemModel() { - dynamic paperDocId = jsonData["doc_ids"][i]; + PaperId = paperDocId, + MemberId = memberId, + IsChecked = true + }; + docIds.Add(lvItem); + } + //if the group count is above limit - default 1000 we need to grab the cursor and call continue + string cursor = jsonData["cursor"]["value"]; + bool hasMore = jsonData["has_more"]; + while (hasMore) + { + service.ListPaperDocsUrl = ApplicationResource.ActionListContinuationPaperDocs; + IDataResponse responseCont = service.ListPaperDocs(new MemberData() + { + Cursor = cursor + }, paperAccessToken); + + string dataCont = responseCont.Data.ToString(); + dynamic jsonDataCont = JsonConvert.DeserializeObject(dataCont); + int resultContCount = jsonDataCont["doc_ids"].Count; + for (int i = 0; i < resultContCount; i++) + { + dynamic paperDocId = jsonDataCont["doc_ids"][i]; // update model PaperListViewItemModel lvItem = new PaperListViewItemModel() { @@ -117,39 +142,13 @@ private void GetPaperDocs(IPaperModel model, IMainPresenter presenter) }; docIds.Add(lvItem); } - //if the group count is above limit - default 1000 we need to grab the cursor and call continue - string cursor = jsonData["cursor"]["value"]; - bool hasMore = jsonData["has_more"]; - while (hasMore) - { - service.ListPaperDocsUrl = ApplicationResource.ActionListContinuationPaperDocs; - IDataResponse responseCont = service.ListPaperDocs(new MemberData() - { - Cursor = cursor - }, paperAccessToken); - - string dataCont = responseCont.Data.ToString(); - dynamic jsonDataCont = JsonConvert.DeserializeObject(dataCont); - - int resultContCount = jsonDataCont["doc_ids"].Count; - for (int i = 0; i < resultContCount; i++) - { - dynamic paperDocId = jsonDataCont["doc_ids"][i]; - // update model - PaperListViewItemModel lvItem = new PaperListViewItemModel() - { - PaperId = paperDocId, - MemberId = memberId, - IsChecked = true - }; - docIds.Add(lvItem); - } - hasMore = jsonDataCont["has_more"]; - cursor = jsonDataCont["cursor"]["value"]; - } + hasMore = jsonDataCont["has_more"]; + cursor = jsonDataCont["cursor"]["value"]; } } - } + } + return docIds; + //} } private void GetPaperMetadata(IPaperModel model, IMainPresenter presenter, string docId, string memberId) @@ -164,87 +163,107 @@ private void GetPaperMetadata(IPaperModel model, IMainPresenter presenter, strin serviceFolderInfo.UserAgentVersion = ApplicationResource.UserAgent; string folderPath = @"/"; - //get paper doc folder info to add to listview object - IDataResponse responseFolderInfo = serviceFolderInfo.GetPaperDocFolderInfo(docId, paperAccessToken, memberId); - - if (responseFolderInfo.StatusCode == HttpStatusCode.OK) + try { - if (responseFolderInfo.Data != null) + if (SyncContext != null) { - string data = responseFolderInfo.Data.ToString(); - dynamic jsonData = JsonConvert.DeserializeObject(data); - int resultCount = 0; - - if (data != "{}") + SyncContext.Post(delegate { - resultCount = jsonData["folders"].Count; - for (int i = 0; i < resultCount; i++) - { - dynamic folders = jsonData["folders"][i]; - dynamic folderPathobj = folders["name"]; - string folderPathNext = folderPathobj.Value as string; - folderPath = folderPath + folderPathNext + "/"; - } - } + presenter.UpdateProgressInfo(string.Format("Retrieving Paper doc metadata for id: {0}", docId)); + }, null); } - } - //now get remainder of metadata - IDataResponse response = service.GetPaperMetadata(docId, paperAccessToken, memberId); - if (response.StatusCode == HttpStatusCode.OK) - { - if (response.Data != null) + //get paper doc folder info to add to listview object + IDataResponse responseFolderInfo = serviceFolderInfo.GetPaperDocFolderInfo(docId, paperAccessToken, memberId); + if (responseFolderInfo.StatusCode == HttpStatusCode.OK) { - string data = response.Data.ToString(); - dynamic jsonData = JsonConvert.DeserializeObject(data); - - dynamic paperDocIdobj = jsonData["doc_id"]; - dynamic ownerobj = jsonData["owner"]; - dynamic paperNameobj = jsonData["title"]; - dynamic createdDateobj = jsonData["created_date"]; - dynamic statusobj = jsonData["status"][".tag"]; - dynamic revisionobj = jsonData["revision"]; - dynamic lastUpdatedDateobj = jsonData["last_updated_date"]; - dynamic lastEditorobj = jsonData["last_editor"]; - - string paperDocId = paperDocIdobj.Value as string; - string owner = ownerobj.Value as string; - string paperName = paperNameobj.Value as string; - DateTime createdDate = DateTime.MinValue; - if (createdDateobj != null) - { - createdDate = createdDateobj; - } - string status = statusobj.Value as string; - UInt64 revision = 0; - if (revisionobj != null) + if (responseFolderInfo.Data != null) { - revision = revisionobj; + string data = responseFolderInfo.Data.ToString(); + dynamic jsonData = JsonConvert.DeserializeObject(data); + int resultCount = 0; + + if (data != "{}") + { + resultCount = jsonData["folders"].Count; + for (int i = 0; i < resultCount; i++) + { + dynamic folders = jsonData["folders"][i]; + dynamic folderPathobj = folders["name"]; + string folderPathNext = folderPathobj.Value as string; + folderPath = folderPath + folderPathNext + "/"; + } + } } - DateTime lastUpdatedDate = DateTime.MinValue; - if (lastUpdatedDateobj != null) + } + //now get remainder of metadata + IDataResponse response = service.GetPaperMetadata(docId, paperAccessToken, memberId); + if (response.StatusCode == HttpStatusCode.OK) + { + if (response.Data != null) { - lastUpdatedDate = lastUpdatedDateobj; - } - string lastEditor = lastEditorobj.Value as string; + string data = response.Data.ToString(); + dynamic jsonData = JsonConvert.DeserializeObject(data); - // update model - PaperListViewItemModel lvItem = new PaperListViewItemModel() - { - PaperId = paperDocId, - Owner = owner, - PaperName = paperName, - FolderPath = folderPath, - CreatedDate = createdDate, - Status = status, - Revision = revision, - LastUpdatedDate = lastUpdatedDate, - LastEditor = lastEditor, - MemberId = memberId, - IsChecked = true - }; - model.Paper.Add(lvItem); + dynamic paperDocIdobj = jsonData["doc_id"]; + dynamic ownerobj = jsonData["owner"]; + dynamic paperNameobj = jsonData["title"]; + dynamic createdDateobj = jsonData["created_date"]; + dynamic statusobj = jsonData["status"][".tag"]; + dynamic revisionobj = jsonData["revision"]; + dynamic lastUpdatedDateobj = jsonData["last_updated_date"]; + dynamic lastEditorobj = jsonData["last_editor"]; + + string paperDocId = paperDocIdobj.Value as string; + string owner = ownerobj.Value as string; + string paperName = paperNameobj.Value as string; + DateTime createdDate = DateTime.MinValue; + if (createdDateobj != null) + { + createdDate = createdDateobj; + } + string status = statusobj.Value as string; + UInt64 revision = 0; + if (revisionobj != null) + { + revision = revisionobj; + } + DateTime lastUpdatedDate = DateTime.MinValue; + if (lastUpdatedDateobj != null) + { + lastUpdatedDate = lastUpdatedDateobj; + } + string lastEditor = lastEditorobj.Value as string; + + // update model + PaperListViewItemModel lvItem = new PaperListViewItemModel() + { + PaperId = paperDocId, + Owner = owner, + PaperName = paperName, + FolderPath = folderPath, + CreatedDate = createdDate, + Status = status, + Revision = revision, + LastUpdatedDate = lastUpdatedDate, + LastEditor = lastEditor, + MemberId = memberId, + IsChecked = true + }; + model.Paper.Add(lvItem); + } } } + catch (Exception) + { + // error message. + SyncContext.Post(delegate + { + presenter.ShowErrorMessage(ErrorMessages.FAILED_TO_GET_PAPER_METADATA, ErrorMessages.DLG_DEFAULT_TITLE); + presenter.UpdateProgressInfo(""); + presenter.ActivateSpinner(false); + presenter.EnableControl(true); + }, null); + } } private string DeletePaperDocs(IPaperModel model, IPaperView view, IMainPresenter presenter) @@ -262,47 +281,61 @@ private string DeletePaperDocs(IPaperModel model, IPaperView view, IMainPresente servicePerm.UserAgentVersion = ApplicationResource.UserAgent; IServiceResponse responsePerm = null; - foreach (PaperListViewItemModel item in model.Paper) + try { - if (view.ArchiveSetting && item.IsChecked) + foreach (PaperListViewItemModel item in model.Paper) { - response = service.ArchivePaperDoc(item.MemberId, fileAccessToken, item.PaperId); - - if (response.StatusCode == HttpStatusCode.OK) + if (view.ArchiveSetting && item.IsChecked) { - if (SyncContext != null) + response = service.ArchivePaperDoc(item.MemberId, fileAccessToken, item.PaperId); + + if (response.StatusCode == HttpStatusCode.OK) { - SyncContext.Post(delegate + if (SyncContext != null) { - presenter.UpdateProgressInfo(string.Format("Archived Paper doc [" + item.PaperName + "]")); - }, null); + SyncContext.Post(delegate + { + presenter.UpdateProgressInfo(string.Format("Archived Paper doc [" + item.PaperName + "]")); + }, null); + } + } + else + { + errorMessage = ErrorMessages.FAILED_TO_DELETE_PAPER; } } - else + if (view.PermanentSetting && item.IsChecked) { - errorMessage = ErrorMessages.FAILED_TO_DELETE_PAPER; - } - } - if (view.PermanentSetting && item.IsChecked) - { - responsePerm = servicePerm.PermDeletePaperDoc(item.MemberId, fileAccessToken, item.PaperId); + responsePerm = servicePerm.PermDeletePaperDoc(item.MemberId, fileAccessToken, item.PaperId); - if (responsePerm.StatusCode == HttpStatusCode.OK) - { - if (SyncContext != null) + if (responsePerm.StatusCode == HttpStatusCode.OK) { - SyncContext.Post(delegate + if (SyncContext != null) { - presenter.UpdateProgressInfo(string.Format("Permanently deleted Paper doc [" + item.PaperName + "]")); - }, null); + SyncContext.Post(delegate + { + presenter.UpdateProgressInfo(string.Format("Permanently deleted Paper doc [" + item.PaperName + "]")); + }, null); + } + } + else + { + errorMessage = ErrorMessages.FAILED_TO_DELETE_PAPER; } - } - else - { - errorMessage = ErrorMessages.FAILED_TO_DELETE_PAPER; } } } + catch (Exception) + { + // error message. + SyncContext.Post(delegate + { + presenter.ShowErrorMessage(ErrorMessages.FAILED_TO_DELETE_PAPER, ErrorMessages.DLG_DEFAULT_TITLE); + presenter.UpdateProgressInfo(""); + presenter.ActivateSpinner(false); + presenter.EnableControl(true); + }, null); + } return errorMessage; } @@ -450,9 +483,7 @@ private void OnCommandGetPaper(object sender, System.EventArgs e) { IPaperView view = base._view as IPaperView; IPaperModel model = base._model as IPaperModel; - IMainPresenter presenter = SimpleResolver.Instance.Get(); - // clear existing data first - model.Paper.Clear(); + IMainPresenter presenter = SimpleResolver.Instance.Get(); if (SyncContext != null) { SyncContext.Post(delegate { @@ -471,15 +502,41 @@ private void OnCommandGetPaper(object sender, System.EventArgs e) }, null); } else - { - //get Paper Ids - this.GetPaperDocs(model, presenter); + { + // clear existing data first + model.Paper.Clear(); - //get metadata from ids - foreach (PaperListViewItemModel item in docIds) + //get members first + IList members = SearchOwners(model, presenter); + //get Paper Ids + Parallel.ForEach(members, (member) => { - this.GetPaperMetadata(model, presenter, item.PaperId, item.MemberId); + if (SyncContext != null) + { + SyncContext.Post(delegate + { + presenter.UpdateProgressInfo(string.Format("Retrieving member's Paper docs: {0}", member.Email)); + }, null); + } + IList docIds = new List(); + + docIds = this.GetPaperDocs(model, presenter, member); + + //get metadata from ids + foreach (PaperListViewItemModel item in docIds) + { + this.GetPaperMetadata(model, presenter, item.PaperId, item.MemberId); + } + }); + if (SyncContext != null) + { + SyncContext.Post(delegate + { + presenter.UpdateProgressInfo(string.Format("Sorting Paper docs...")); + }, null); } + // sort by email then by folder path + model.Paper = model.Paper.OrderBy(s => s.Owner).ThenBy(s => s.LastUpdatedDate).ToList(); if (SyncContext != null) { SyncContext.Post(delegate @@ -621,7 +678,6 @@ private void OnCommandExportPaper(object sender, System.EventArgs e) } else { - //this.GetPaperDocs(model, presenter); if (SyncContext != null) { SyncContext.Post(delegate @@ -641,17 +697,23 @@ private void OnCommandExportPaper(object sender, System.EventArgs e) Delimiter = ",", Encoding = System.Text.Encoding.UTF8 }; - config.RegisterClassMap(new TeamFoldersHeaderMap()); + config.RegisterClassMap(new PaperHeaderMap()); int total = model.Paper.Count; using (CsvWriter writer = new CsvWriter(new StreamWriter(sPath), config)) { - writer.WriteHeader(); + writer.WriteHeader(); int count = 0; foreach (var item in model.Paper) { writer.WriteField(item.PaperName); writer.WriteField(item.PaperId); + writer.WriteField(item.FolderPath); writer.WriteField(item.Status); + writer.WriteField(item.Owner); + writer.WriteField(item.CreatedDate.ToString()); + writer.WriteField(item.LastUpdatedDate.ToString()); + writer.WriteField(item.LastEditor); + writer.WriteField(item.Revision.ToString()); count++; if (SyncContext != null) { diff --git a/Source/DfBAdminToolkit/Presenter/ProvisioningPresenter.cs b/Source/DfBAdminToolkit/Presenter/ProvisioningPresenter.cs index f9d8de8..f5cf9fd 100644 --- a/Source/DfBAdminToolkit/Presenter/ProvisioningPresenter.cs +++ b/Source/DfBAdminToolkit/Presenter/ProvisioningPresenter.cs @@ -73,40 +73,53 @@ protected override void UnWireViewEvents() { protected override void CleanUp() { } - public bool LoadInputFile(IProvisioningModel model, IMainPresenter presenter) { + public bool LoadInputFile(IProvisioningModel model, IMainPresenter presenter) + { bool loaded = true; - try { + try + { FileInfo fInfo = new FileInfo(model.InputFilePath); if (fInfo.Exists) { // try load. model.Members.Clear(); - CsvConfiguration config = new CsvConfiguration() { + CsvConfiguration config = new CsvConfiguration() + { HasHeaderRecord = false }; - using (CsvReader reader = new CsvReader(new StreamReader(fInfo.FullName), config)) { - while (reader.Read()) { - try { - MemberListViewItemModel lvItem = new MemberListViewItemModel() { + using (CsvReader reader = new CsvReader(new StreamReader(fInfo.FullName), config)) + { + while (reader.Read()) + { + try + { + MemberListViewItemModel lvItem = new MemberListViewItemModel() + { Email = reader.GetField(0), FirstName = reader.GetField(1), LastName = reader.GetField(2), IsChecked = true }; model.Members.Add(lvItem); - } catch { + } + catch + { throw new InvalidDataException(ErrorMessages.INVALID_CSV_DATA); } } - if (model.Members.Any()) { + if (model.Members.Any()) + { loaded = true; } } } else { throw new InvalidDataException(ErrorMessages.MISSING_CSV_FILE); } - } catch (Exception) { + } + catch (Exception) + { // error message. - SyncContext.Post(delegate { + SyncContext.Post(delegate + { presenter.ShowErrorMessage(ErrorMessages.INVALID_CSV_DATA, ErrorMessages.DLG_DEFAULT_TITLE); presenter.UpdateProgressInfo(""); presenter.ActivateSpinner(false); @@ -174,7 +187,8 @@ public bool LoadUpdateInputFile(IProvisioningModel model, IMainPresenter present return loaded; } - public void UpdateSettings() { + public void UpdateSettings() + { OnDataChanged(this, new EventArgs()); } diff --git a/Source/DfBAdminToolkit/Presenter/TeamAuditingPresenter.cs b/Source/DfBAdminToolkit/Presenter/TeamAuditingPresenter.cs index 897e6da..923f110 100644 --- a/Source/DfBAdminToolkit/Presenter/TeamAuditingPresenter.cs +++ b/Source/DfBAdminToolkit/Presenter/TeamAuditingPresenter.cs @@ -23,7 +23,8 @@ public TeamAuditingPresenter(ITeamAuditingModel model, ITeamAuditingView view) public int EventCount { get; set; } - List members = new List(); + List members; + List newAudit; protected override void Initialize() { @@ -46,6 +47,8 @@ protected override void WireViewEvents() view.DataChanged += DataChanged; view.CommandLoadTeamEvents += OnCommandLoadEvents; view.CommandLoadCSV += OnCommandLoadCSV; + view.CommandExportToCSV += OnCommandExportEvents; + view.CommandFilterMembers += OnCommandFilterMembers; IsViewEventsWired = true; } } @@ -58,6 +61,8 @@ protected override void UnWireViewEvents() view.DataChanged -= DataChanged; view.CommandLoadTeamEvents -= OnCommandLoadEvents; view.CommandLoadCSV -= OnCommandLoadCSV; + view.CommandExportToCSV -= OnCommandExportEvents; + view.CommandFilterMembers -= OnCommandFilterMembers; IsViewEventsWired = false; } } @@ -88,7 +93,8 @@ private void GetEvents(ITeamAuditingModel model, ITeamAuditingView view, IMainPr if (SyncContext != null) { - SyncContext.Post(delegate { + SyncContext.Post(delegate + { presenter.UpdateProgressInfo("Gathering events..."); }, null); } @@ -107,7 +113,7 @@ private void GetEvents(ITeamAuditingModel model, ITeamAuditingView view, IMainPr dynamic timestampObj = events["timestamp"]; //go through event categories and compare to combobox filter - int eventCategoryCount = events["event_categories"].Count; + int eventCategoryCount = events["event_categories"].Count; for (int i2 = 0; i2 < eventCategoryCount; i2++) { dynamic eventCategories = events["event_categories"][i2]; @@ -119,73 +125,172 @@ private void GetEvents(ITeamAuditingModel model, ITeamAuditingView view, IMainPr inCategories = true; } } - - dynamic actorType = events["actor"][".tag"]; - string actorTypeString = actorType.Value as string; + dynamic actorType = null; + string actorTypeString = string.Empty; + if (events["actor"][".tag"] != null) + { + actorType = events["actor"][".tag"]; + actorTypeString = actorType.Value as string; + } dynamic emailObj = null; - + string email = string.Empty; if (actorTypeString == "user") { - emailObj = events["actor"]["user"]["email"]; + //non team member check first + if (events["actor"]["user"][".tag"] != null) + { + emailObj = "Non Team Member"; + email = emailObj; + } + //team member + if (events["actor"]["user"]["email"] != null) + { + emailObj = events["actor"]["user"]["email"]; + email = emailObj.Value as string; + } } if (actorTypeString == "admin") { emailObj = events["actor"]["app"]["display_name"]; + email = emailObj; } if (actorTypeString == "app") { emailObj = events["actor"]["app"]["display_name"]; + email = emailObj; } if (actorTypeString == "reseller") { emailObj = events["actor"]["reseller"]["reseller_name"]; + email = emailObj; } - if (actorTypeString == "Dropbox") + if (actorTypeString == "dropbox") { emailObj = "Dropbox"; + email = emailObj; } - dynamic contextTypeObj = events["context"][".tag"]; - string contextTypeString = contextTypeObj.Value as string; + dynamic contextTypeObj = null; + string contextTypeString = string.Empty; dynamic contextObj = null; string context = string.Empty; - - if (contextTypeString == "team_member" || contextTypeString == "non_team_member") + if (events["context"][".tag"] != null) { - contextObj = events["context"]["email"]; - context = contextObj.Value as string; + contextTypeObj = events["context"][".tag"]; + contextTypeString = contextTypeObj.Value as string; + + if (contextTypeString == "team_member") + { + contextObj = events["context"]["email"]; + context = contextObj.Value as string; + } + if (contextTypeString == "non_team_member") + { + contextObj = "Non-Team Member"; + context = contextObj; + } + if (contextTypeString == "team") + { + contextObj = "Team"; + context = contextObj; + } } - if (contextTypeString == "team") + dynamic eventTypeObj = null; + dynamic originObj = null; + dynamic ipAddressObj = null; + dynamic cityObj = null; + dynamic regionObj = null; + dynamic countryObj = null; + string eventType = string.Empty; + string origin = string.Empty; + string ipAddress = string.Empty; + string city = string.Empty; + string region = string.Empty; + string country = string.Empty; + if (events["event_type"][".tag"] != null) { - contextObj = "Team"; - context = contextObj; + eventTypeObj = events["event_type"][".tag"]; + eventType = eventTypeObj.Value as string; + } - dynamic eventTypeObj = events["event_type"][".tag"]; - dynamic originObj = events["origin"]["access_method"][".tag"]; - dynamic ipAddressObj = events["origin"]["geo_location"]["ip_address"]; - dynamic cityObj = events["origin"]["geo_location"]["city"]; - dynamic regionObj = events["origin"]["geo_location"]["region"]; - dynamic countryObj = events["origin"]["geo_location"]["country"]; + if (events["origin"] != null) + { + if (events["origin"]["access_method"] != null) + { + originObj = events["origin"]["access_method"][".tag"]; + origin = originObj.Value as string; + if (origin == "end_user") + { + originObj = events["origin"]["access_method"]["end_user"][".tag"]; + origin = origin + "[" + originObj.Value as string + "]"; + } + } + if (events["origin"]["geo_location"] != null) + { + if (events["origin"]["geo_location"]["ip_address"] != null) + { + ipAddressObj = events["origin"]["geo_location"]["ip_address"]; + ipAddress = ipAddressObj.Value as string; + } + if (events["origin"]["geo_location"]["city"] != null) + { + cityObj = events["origin"]["geo_location"]["city"]; + city = cityObj.Value as string; + } + if (events["origin"]["geo_location"]["region"] != null) + { + regionObj = events["origin"]["geo_location"]["region"]; + region = regionObj.Value as string; + } + if (events["origin"]["geo_location"]["country"] != null) + { + countryObj = events["origin"]["geo_location"]["country"]; + country = countryObj.Value as string; + } + } + } string participants = string.Empty; + dynamic participantsObj = null; if (events["participants"] != null) { int participantsCount = events["participants"].Count; dynamic participantsCatObj = null; - string participantsCategory = string.Empty; - dynamic participantsObj = null; - + string participantsCategory = string.Empty; + if (participantsCount > 0) { participantsCatObj = events["participants"][0][".tag"]; participantsCategory = participantsCatObj.Value as string; + dynamic participantsTypeObj = null; + string participantsType = string.Empty; if (participantsCategory == "user") { - if (events["participants"][0]["user"]["email"] != null) + if (events["participants"][0]["user"][".tag"] != null) { - participantsObj = events["participants"][0]["user"]["email"]; - participants = participantsObj.Value as string; - } + participantsTypeObj = events["participants"][0]["user"][".tag"]; + participantsType = participantsTypeObj.Value as string; + //non team member + if (participantsType == "non_team_member") + { + if (events["participants"][0]["user"]["display_name"] != null) + { + participantsObj = events["participants"][0]["user"]["display_name"]; + participants = participantsObj.Value as string; + } + if (events["participants"][0]["user"]["email"] != null) + { + participantsObj = events["participants"][0]["user"]["email"]; + participants = participantsObj.Value as string; + } + } + //team member + if (events["participants"][0]["user"]["email"] != null) + { + participantsObj = events["participants"][0]["user"]["email"]; + participants = participantsObj.Value as string; + } + } } if (participantsCategory == "group") { @@ -193,24 +298,32 @@ private void GetEvents(ITeamAuditingModel model, ITeamAuditingView view, IMainPr { participantsObj = events["participants"][0]["display_name"]; participants = participantsObj.Value as string; - } + } } } } string assets = string.Empty; + dynamic assetsObj = null; if (events["assets"] != null) { int assetsCount = events["assets"].Count; dynamic assetsCatObj = null; string assetsCat = string.Empty; - dynamic assetsObj = null; - + if (assetsCount > 0) { assetsCatObj = events["assets"][0][".tag"]; assetsCat = assetsCatObj.Value as string; - if (assetsCat == "file" || assetsCat == "folder") + if (assetsCat == "file") + { + if (events["assets"][0]["path"]["contextual"] != null) + { + assetsObj = events["assets"][0]["path"]["contextual"]; + assets = assetsObj.Value as string; + } + } + if (assetsCat == "folder") { if (events["assets"][0]["display_name"] != null) { @@ -236,35 +349,28 @@ private void GetEvents(ITeamAuditingModel model, ITeamAuditingView view, IMainPr } } } - //render to use DateTime timestamp = DateTime.MinValue; if (timestampObj != null) { timestamp = timestampObj; } - string email = emailObj; - string eventType = eventTypeObj.Value as string; - string origin = originObj.Value as string; - string ipAddress = ipAddressObj.Value as string; - string city = cityObj.Value as string; - string region = regionObj.Value as string; - - if (region != "Unknown") + + + if (region != "Unknown" || region != "") { region = FileUtil.ConvertStateToAbbreviation(region); } - string country = countryObj.Value as string; - // update model based on category - if (eventCategory == "All Events") + // update model based on category + if (eventCategory == "All Events") { TeamAuditingListViewItemModel lvItem = new TeamAuditingListViewItemModel() { Timestamp = timestamp, ActorType = actorTypeString, Email = email, - Context = context, + Context = context, EventType = eventType, Origin = origin, IpAddress = ipAddress, @@ -335,72 +441,171 @@ private void GetEvents(ITeamAuditingModel model, ITeamAuditingView view, IMainPr inCategories = true; } } - - dynamic actorType = events["actor"][".tag"]; - string actorTypeString = actorType.Value as string; + dynamic actorType = null; + string actorTypeString = string.Empty; + if (events["actor"][".tag"] != null) + { + actorType = events["actor"][".tag"]; + actorTypeString = actorType.Value as string; + } dynamic emailObj = null; - + string email = string.Empty; if (actorTypeString == "user") { - emailObj = events["actor"]["user"]["email"]; + //non team member check first + if (events["actor"]["user"][".tag"] != null) + { + emailObj = "Non Team Member"; + email = emailObj; + } + //team member + if (events["actor"]["user"]["email"] != null) + { + emailObj = events["actor"]["user"]["email"]; + email = emailObj.Value as string; + } } if (actorTypeString == "admin") { emailObj = events["actor"]["app"]["display_name"]; + email = emailObj; } if (actorTypeString == "app") { emailObj = events["actor"]["app"]["display_name"]; + email = emailObj; } if (actorTypeString == "reseller") { emailObj = events["actor"]["reseller"]["reseller_name"]; + email = emailObj; } - if (actorTypeString == "Dropbox") + if (actorTypeString == "dropbox") { emailObj = "Dropbox"; + email = emailObj; } - dynamic contextTypeObj = events["context"][".tag"]; - string contextTypeString = contextTypeObj.Value as string; + dynamic contextTypeObj = null; + string contextTypeString = string.Empty; dynamic contextObj = null; string context = string.Empty; - - if (contextTypeString == "team_member" || contextTypeString == "non_team_member") + if (events["context"][".tag"] != null) { - contextObj = events["context"]["email"]; - context = contextObj.Value as string; + contextTypeObj = events["context"][".tag"]; + contextTypeString = contextTypeObj.Value as string; + + if (contextTypeString == "team_member") + { + contextObj = events["context"]["email"]; + context = contextObj.Value as string; + } + if (contextTypeString == "non_team_member") + { + contextObj = "Non-Team Member"; + context = contextObj; + } + if (contextTypeString == "team") + { + contextObj = "Team"; + context = contextObj; + } } - if (contextTypeString == "team") + dynamic eventTypeObj = null; + dynamic originObj = null; + dynamic ipAddressObj = null; + dynamic cityObj = null; + dynamic regionObj = null; + dynamic countryObj = null; + string eventType = string.Empty; + string origin = string.Empty; + string ipAddress = string.Empty; + string city = string.Empty; + string region = string.Empty; + string country = string.Empty; + if (events["event_type"][".tag"] != null) { - contextObj = "Team"; - context = contextObj; + eventTypeObj = events["event_type"][".tag"]; + eventType = eventTypeObj.Value as string; + } - dynamic eventTypeObj = events["event_type"][".tag"]; - dynamic originObj = events["origin"]["access_method"][".tag"]; - dynamic ipAddressObj = events["origin"]["geo_location"]["ip_address"]; - dynamic cityObj = events["origin"]["geo_location"]["city"]; - dynamic regionObj = events["origin"]["geo_location"]["region"]; - dynamic countryObj = events["origin"]["geo_location"]["country"]; + if (events["origin"] != null) + { + if (events["origin"]["access_method"] != null) + { + originObj = events["origin"]["access_method"][".tag"]; + origin = originObj.Value as string; + if (origin == "end_user") + { + originObj = events["origin"]["access_method"]["end_user"][".tag"]; + origin = origin + "[" + originObj.Value as string + "]"; + } + } + if (events["origin"]["geo_location"] != null) + { + if (events["origin"]["geo_location"]["ip_address"] != null) + { + ipAddressObj = events["origin"]["geo_location"]["ip_address"]; + ipAddress = ipAddressObj.Value as string; + } + if (events["origin"]["geo_location"]["city"] != null) + { + cityObj = events["origin"]["geo_location"]["city"]; + city = cityObj.Value as string; + } + if (events["origin"]["geo_location"]["region"] != null) + { + regionObj = events["origin"]["geo_location"]["region"]; + region = regionObj.Value as string; + } + if (events["origin"]["geo_location"]["country"] != null) + { + countryObj = events["origin"]["geo_location"]["country"]; + country = countryObj.Value as string; + } + } + } string participants = string.Empty; + dynamic participantsObj = null; if (events["participants"] != null) { int participantsCount = events["participants"].Count; dynamic participantsCatObj = null; string participantsCategory = string.Empty; - dynamic participantsObj = null; if (participantsCount > 0) { participantsCatObj = events["participants"][0][".tag"]; participantsCategory = participantsCatObj.Value as string; + dynamic participantsTypeObj = null; + string participantsType = string.Empty; if (participantsCategory == "user") { - if (events["participants"][0]["user"]["email"] != null) + if (events["participants"][0]["user"][".tag"] != null) { - participantsObj = events["participants"][0]["user"]["email"]; - participants = participantsObj.Value as string; + participantsTypeObj = events["participants"][0]["user"][".tag"]; + participantsType = participantsTypeObj.Value as string; + //non team member + if (participantsType == "non_team_member") + { + if (events["participants"][0]["user"]["display_name"] != null) + { + participantsObj = events["participants"][0]["user"]["display_name"]; + participants = participantsObj.Value as string; + } + if (events["participants"][0]["user"]["email"] != null) + { + participantsObj = events["participants"][0]["user"]["email"]; + participants = participantsObj.Value as string; + } + } + //team member + if (events["participants"][0]["user"]["email"] != null) + { + participantsObj = events["participants"][0]["user"]["email"]; + participants = participantsObj.Value as string; + } } } if (participantsCategory == "group") @@ -414,19 +619,27 @@ private void GetEvents(ITeamAuditingModel model, ITeamAuditingView view, IMainPr } } string assets = string.Empty; + dynamic assetsObj = null; if (events["assets"] != null) { int assetsCount = events["assets"].Count; dynamic assetsCatObj = null; string assetsCat = string.Empty; - dynamic assetsObj = null; if (assetsCount > 0) { assetsCatObj = events["assets"][0][".tag"]; assetsCat = assetsCatObj.Value as string; - if (assetsCat == "file" || assetsCat == "folder") + if (assetsCat == "file") + { + if (events["assets"][0]["path"]["contextual"] != null) + { + assetsObj = events["assets"][0]["path"]["contextual"]; + assets = assetsObj.Value as string; + } + } + if (assetsCat == "folder") { if (events["assets"][0]["display_name"] != null) { @@ -458,18 +671,12 @@ private void GetEvents(ITeamAuditingModel model, ITeamAuditingView view, IMainPr { timestamp = timestampObj; } - string email = emailObj; - string eventType = eventTypeObj.Value as string; - string origin = originObj.Value as string; - string ipAddress = ipAddressObj.Value as string; - string city = cityObj.Value as string; - string region = regionObj.Value as string; - if (region != "Unknown") + + if (region != "Unknown" || region != "") { region = FileUtil.ConvertStateToAbbreviation(region); } - string country = countryObj.Value as string; // update model based on category if (eventCategory == "All Events") @@ -520,11 +727,11 @@ private void GetEvents(ITeamAuditingModel model, ITeamAuditingView view, IMainPr } } - public List LoadMemberInputFile(List members, ITeamAuditingModel model, IMainPresenter presenter) + public List LoadMemberInputFile(List members, ITeamAuditingView view, ITeamAuditingModel model, IMainPresenter presenter) { try { - FileInfo fInfo = new FileInfo(model.MemberInputFilePath); + FileInfo fInfo = new FileInfo(view.TeamAuditingInputFilePath); if (fInfo.Exists) { // try load. @@ -540,8 +747,7 @@ public List LoadMemberInputFile(List(0), - MemberId = reader.GetField(1) + Email = reader.GetField(0) }; members.Add(lvItem); } @@ -559,10 +765,10 @@ public List LoadMemberInputFile(List(); if (SyncContext != null) { - SyncContext.Post(delegate { + SyncContext.Post(delegate + { presenter.EnableControl(false); presenter.ActivateSpinner(true); - presenter.UpdateProgressInfo("Loading team folders input File..."); + presenter.UpdateProgressInfo("Gathering events..."); }, null); } Thread teameventsLoad = new Thread(() => { @@ -594,7 +801,8 @@ private void OnCommandLoadEvents(object sender, EventArgs e) this.GetEvents(model, view, presenter); if (SyncContext != null) { - SyncContext.Post(delegate { + SyncContext.Post(delegate + { // update result and update view. view.RenderTeamAuditingList(model.TeamAuditing); presenter.UpdateProgressInfo("Events loaded [" + EventCount.ToString() + "]"); @@ -614,7 +822,8 @@ private void OnCommandLoadCSV(object sender, EventArgs e) IMainPresenter presenter = SimpleResolver.Instance.Get(); if (SyncContext != null) { - SyncContext.Post(delegate { + SyncContext.Post(delegate + { presenter.EnableControl(false); presenter.ActivateSpinner(true); presenter.UpdateProgressInfo("Loading members input file to list..."); @@ -623,12 +832,13 @@ private void OnCommandLoadCSV(object sender, EventArgs e) Thread groupsLoad = new Thread(() => { if (!string.IsNullOrEmpty(model.AccessToken)) { - members.Clear(); - members = this.LoadMemberInputFile(members, model, presenter); + members = new List(); + members = this.LoadMemberInputFile(members, view, model, presenter); if (SyncContext != null) { - SyncContext.Post(delegate { - presenter.UpdateProgressInfo("Members CSV Loaded"); + SyncContext.Post(delegate + { + presenter.UpdateProgressInfo("Members CSV file loaded. Press Filter to filter events."); presenter.ActivateSpinner(false); presenter.EnableControl(true); }, null); @@ -638,7 +848,41 @@ private void OnCommandLoadCSV(object sender, EventArgs e) groupsLoad.Start(); } - private void DataChanged(object sender, System.EventArgs e) { + private void OnCommandFilterMembers(object sender, EventArgs e) + { + ITeamAuditingView view = base._view as ITeamAuditingView; + ITeamAuditingModel model = base._model as ITeamAuditingModel; + IMainPresenter presenter = SimpleResolver.Instance.Get(); + if (SyncContext != null) + { + SyncContext.Post(delegate + { + presenter.EnableControl(false); + presenter.ActivateSpinner(true); + presenter.UpdateProgressInfo("Filtering listview based on members..."); + }, null); + } + Thread filtermembers = new Thread(() => { + if (!string.IsNullOrEmpty(model.AccessToken)) + { + if (SyncContext != null) + { + SyncContext.Post(delegate + { + newAudit = new List(); + newAudit = view.RenderTeamAuditingFilteredMemberList(members, model.TeamAuditing, newAudit); + presenter.UpdateProgressInfo("Filtering complete."); + presenter.ActivateSpinner(false); + presenter.EnableControl(true); + }, null); + } + } + }); + filtermembers.Start(); + } + + private void DataChanged(object sender, System.EventArgs e) + { ITeamAuditingView view = base._view as ITeamAuditingView; ITeamAuditingModel model = base._model as ITeamAuditingModel; PresenterBase.SetModelPropertiesFromView( @@ -646,6 +890,135 @@ private void DataChanged(object sender, System.EventArgs e) { ); } + private void OnCommandExportEvents(object sender, System.EventArgs e) + { + ITeamAuditingView view = base._view as ITeamAuditingView; + ITeamAuditingModel model = base._model as ITeamAuditingModel; + IMainPresenter presenter = SimpleResolver.Instance.Get(); + + if (SyncContext != null) + { + SyncContext.Post(delegate + { + presenter.EnableControl(false); + presenter.ActivateSpinner(true); + presenter.UpdateProgressInfo("Processing..."); + }, null); + } + Thread exporteventstocsv = new Thread(() => { + if (string.IsNullOrEmpty(model.AccessToken)) + { + SyncContext.Post(delegate + { + presenter.EnableControl(true); + presenter.ActivateSpinner(false); + presenter.UpdateProgressInfo(""); + }, null); + } + else + { + if (SyncContext != null) + { + SyncContext.Post(delegate + { + PresenterBase.SetViewPropertiesFromModel( + ref view, model + ); + string sPath = string.Empty; + + if (model.TeamAuditing.Count > 0) + { + //create CSV file in My Documents folder + sPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\TeamAuditingEventsExport.csv"; + CsvConfiguration config = new CsvConfiguration() + { + HasHeaderRecord = true, + Delimiter = ",", + Encoding = System.Text.Encoding.UTF8 + }; + config.RegisterClassMap(new TeamAuditingHeaderMap()); + int total = model.TeamAuditing.Count; + using (CsvWriter writer = new CsvWriter(new StreamWriter(sPath), config)) + { + writer.WriteHeader(); + int count = 0; + if (view.TeamAuditingInputFilePath.Contains(".csv")) + { + foreach (var item in newAudit) + { + writer.WriteField(item.Timestamp.ToString()); + writer.WriteField(item.ActorType); + writer.WriteField(item.Email); + writer.WriteField(item.Context); + writer.WriteField(item.EventType); + writer.WriteField(item.Origin); + writer.WriteField(item.IpAddress); + writer.WriteField(item.City); + writer.WriteField(item.Region); + writer.WriteField(item.Country); + writer.WriteField(item.Participants); + writer.WriteField(item.Assets); + count++; + if (SyncContext != null) + { + SyncContext.Post(delegate + { + presenter.UpdateProgressInfo(string.Format("Writing Record: {0}/{1}", (count), total)); + }, null); + } + writer.NextRecord(); + } + } + if (!view.TeamAuditingInputFilePath.Contains(".csv")) + { + foreach (var item in model.TeamAuditing) + { + writer.WriteField(item.Timestamp.ToString()); + writer.WriteField(item.ActorType); + writer.WriteField(item.Email); + writer.WriteField(item.Context); + writer.WriteField(item.EventType); + writer.WriteField(item.Origin); + writer.WriteField(item.IpAddress); + writer.WriteField(item.City); + writer.WriteField(item.Region); + writer.WriteField(item.Country); + writer.WriteField(item.Participants); + writer.WriteField(item.Assets); + count++; + if (SyncContext != null) + { + SyncContext.Post(delegate + { + presenter.UpdateProgressInfo(string.Format("Writing Record: {0}/{1}", (count), total)); + }, null); + } + writer.NextRecord(); + } + } + + } + if (SyncContext != null) + { + SyncContext.Post(delegate + { + presenter.UpdateProgressInfo("Completed. Exported file located at " + sPath); + }, null); + } + } + if (model.TeamAuditing.Count == 0) + { + presenter.UpdateProgressInfo("No events were chosen to export."); + } + presenter.ActivateSpinner(false); + presenter.EnableControl(true); + }, null); + } + } + }); + exporteventstocsv.Start(); + } + #endregion Events } } \ No newline at end of file diff --git a/Source/DfBAdminToolkit/Presenter/TeamHealthPresenter.cs b/Source/DfBAdminToolkit/Presenter/TeamHealthPresenter.cs index 9b4d7f9..e6cbaff 100644 --- a/Source/DfBAdminToolkit/Presenter/TeamHealthPresenter.cs +++ b/Source/DfBAdminToolkit/Presenter/TeamHealthPresenter.cs @@ -71,10 +71,16 @@ private void RefreshHealth(ITeamHealthModel model, IMainPresenter presenter) int adds = 0; int edits = 0; int deletes = 0; - int activeSharedFolders28Day = 0; - int activeUsers28Day = 0; + int activeSharedFolders7Day = 0; + int activeUsers7Day = 0; string devicesStartDate = string.Empty; - int activeDevices28Day = 0; + int windows = 0; + int macos = 0; + int linux = 0; + int ios = 0; + int android = 0; + int other = 0; + int total = 0; string storageStartDate = string.Empty; UInt64 totalStorage = 0; UInt64 sharedStorage = 0; @@ -126,34 +132,34 @@ private void RefreshHealth(ITeamHealthModel model, IMainPresenter presenter) activityStartDate = jsonData["start_date"]; if (jsonData["adds"][0] != null) { - int addsCount = (jsonData["adds"].Count) - 1; + int addsCount = (jsonData["adds"].Count) - 2; adds = jsonData["adds"][addsCount]; } if (jsonData["edits"][0] != null) { - int editsCount = (jsonData["edits"].Count) - 1; + int editsCount = (jsonData["edits"].Count) - 2; edits = jsonData["edits"][editsCount]; } if (jsonData["deletes"][0] != null) { - int deletesCount = (jsonData["deletes"].Count) - 1; + int deletesCount = (jsonData["deletes"].Count) - 2; deletes = jsonData["deletes"][deletesCount]; } - if (jsonData["active_shared_folders_28_day"][0] != null) + if (jsonData["active_shared_folders_7_day"][0] != null) { - int activeSharedCount = (jsonData["active_shared_folders_28_day"].Count) - 1; - activeSharedFolders28Day = jsonData["active_shared_folders_28_day"][activeSharedCount]; + int activeSharedCount = (jsonData["active_shared_folders_7_day"].Count) - 2; + activeSharedFolders7Day = jsonData["active_shared_folders_7_day"][activeSharedCount]; } - if (jsonData["active_users_28_day"][0] != null) + if (jsonData["active_users_7_day"][0] != null) { - int activeUsers = (jsonData["active_users_28_day"].Count) - 1; - activeUsers28Day = jsonData["active_users_28_day"][activeUsers]; + int activeUsers = (jsonData["active_users_7_day"].Count) - 2; + activeUsers7Day = jsonData["active_users_7_day"][activeUsers]; } model.Adds = adds.ToString(); model.Edits = edits.ToString(); model.Deletes = deletes.ToString(); - model.ActiveSharedFolders28Day = activeSharedFolders28Day.ToString(); - model.ActiveUsers28Day = activeUsers28Day.ToString(); + model.ActiveSharedFolders7Day = activeSharedFolders7Day.ToString(); + model.ActiveUsers7Day = activeUsers7Day.ToString(); } } if (responseDevices.StatusCode == HttpStatusCode.OK) @@ -164,8 +170,51 @@ private void RefreshHealth(ITeamHealthModel model, IMainPresenter presenter) dynamic jsonData = JsonConvert.DeserializeObject(data); devicesStartDate = jsonData["start_date"]; - //activeDevices28Day = jsonData["active_28_day"]; //breakdown for devices - model.ActiveDevices28Day = activeDevices28Day.ToString(); + if (jsonData["active_7_day"] != null) + { + if (jsonData["active_7_day"]["windows"][0] != null) + { + int windowsUsers = (jsonData["active_7_day"]["windows"].Count) - 2; + windows = jsonData["active_7_day"]["windows"][windowsUsers]; + } + if (jsonData["active_7_day"]["macos"][0] != null) + { + int macosUsers = (jsonData["active_7_day"]["macos"].Count) - 2; + macos = jsonData["active_7_day"]["macos"][macosUsers]; + } + if (jsonData["active_7_day"]["linux"][0] != null) + { + int linuxUsers = (jsonData["active_7_day"]["linux"].Count) - 2; + linux = jsonData["active_7_day"]["linux"][linuxUsers]; + } + if (jsonData["active_7_day"]["ios"][0] != null) + { + int iosUsers = (jsonData["active_7_day"]["ios"].Count) - 2; + ios = jsonData["active_7_day"]["ios"][iosUsers]; + } + if (jsonData["active_7_day"]["android"][0] != null) + { + int androidUsers = (jsonData["active_7_day"]["android"].Count) - 2; + android = jsonData["active_7_day"]["android"][androidUsers]; + } + if (jsonData["active_7_day"]["other"][0] != null) + { + int otherUsers = (jsonData["active_7_day"]["other"].Count) - 2; + other = jsonData["active_7_day"]["other"][otherUsers]; + } + if (jsonData["active_7_day"]["total"][0] != null) + { + int totalUsers = (jsonData["active_7_day"]["total"].Count) - 2; + total = jsonData["active_7_day"]["total"][totalUsers]; + } + } + model.windows = windows.ToString(); + model.macos = macos.ToString(); + model.linux = linux.ToString(); + model.ios = ios.ToString(); + model.android = android.ToString(); + model.other = other.ToString(); + model.total = total.ToString(); } } if (responseStorage.StatusCode == HttpStatusCode.OK) @@ -176,26 +225,33 @@ private void RefreshHealth(ITeamHealthModel model, IMainPresenter presenter) dynamic jsonData = JsonConvert.DeserializeObject(data); storageStartDate = jsonData["start_date"]; - if (jsonData["total_usage"] != null) + if (jsonData["total_usage"][0] != null) { - totalStorage = jsonData["total_usage"][0]; + int totalCount = (jsonData["total_usage"].Count) - 2; + totalStorage = jsonData["total_usage"][totalCount]; + double totalStorageDec = FileUtil.FormatFileSizeTB(totalStorage); + model.TotalUsage = totalStorageDec.ToString() + " TB"; } - if (jsonData["shared_usage"] != null) + if (jsonData["shared_usage"][0] != null) { - sharedStorage = jsonData["shared_usage"][0]; + int sharedCount = (jsonData["shared_usage"].Count) - 2; + sharedStorage = jsonData["shared_usage"][sharedCount]; + double sharedStorageDec = FileUtil.FormatFileSizeTB(sharedStorage); + model.SharedUsage = sharedStorageDec.ToString() + " TB"; } - if (jsonData["unshared_usage"] != null) + if (jsonData["unshared_usage"][0] != null) { - unsharedStorage = jsonData["unshared_usage"][0]; + int unsharedCount = (jsonData["unshared_usage"].Count) - 2; + unsharedStorage = jsonData["unshared_usage"][unsharedCount]; + double unsharedStorageDec = FileUtil.FormatFileSizeTB(unsharedStorage); + model.UnsharedUsage = unsharedStorageDec.ToString() + " TB"; } - if (jsonData["shared_folders"] != null) + if (jsonData["shared_folders"][0] != null) { - sharedFolders = jsonData["shared_folders"][0]; - } - model.TotalUsage = totalStorage.ToString(); - model.SharedUsage = sharedStorage.ToString(); - model.UnsharedUsage = unsharedStorage.ToString(); - model.SharedFolders = sharedFolders.ToString(); + int sharedFolderCount = (jsonData["shared_folders"].Count) - 2; + sharedFolders = jsonData["shared_folders"][sharedFolderCount]; + model.SharedFolders = sharedFolders.ToString(); + } } } model.RefreshDateTime = DateTime.Now; diff --git a/Source/DfBAdminToolkit/Properties/AssemblyInfo.cs b/Source/DfBAdminToolkit/Properties/AssemblyInfo.cs index db2211c..6bd79ed 100644 --- a/Source/DfBAdminToolkit/Properties/AssemblyInfo.cs +++ b/Source/DfBAdminToolkit/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("5.2.1.0")] -[assembly: AssemblyFileVersion("5.2.1.0")] +[assembly: AssemblyVersion("6.0.0.0")] +[assembly: AssemblyFileVersion("6.0.0.0")] diff --git a/Source/DfBAdminToolkit/Templates/FilterOnMemberEventsTemplatte.csv b/Source/DfBAdminToolkit/Templates/FilterOnMemberEventsTemplatte.csv new file mode 100644 index 0000000..0332c97 --- /dev/null +++ b/Source/DfBAdminToolkit/Templates/FilterOnMemberEventsTemplatte.csv @@ -0,0 +1,3 @@ +user1@dropbox.com +user2@dropbox.com +user3@dropbox.com diff --git a/Source/DfBAdminToolkit/Tooltips.cs b/Source/DfBAdminToolkit/Tooltips.cs index 0862843..8458ff9 100644 --- a/Source/DfBAdminToolkit/Tooltips.cs +++ b/Source/DfBAdminToolkit/Tooltips.cs @@ -6,5 +6,17 @@ public static class Tooltips public static readonly string PROVISION_USER_MGMT_ADMIN = "User can do most user provisioning, de-provisioning and management."; public static readonly string PROVISION_SUPPORT_ADMIN = "User can do a limited set of common support tasks for existing users."; public static readonly string PROVISION_TEAM_ADMIN = "User is administrator of the team - has all permissions."; + + public static readonly string TOTAL_USAGE = " Sum of the shared, unshared, and datastore usages (TB). Stats shown reflect last logged day in Dropbox"; + public static readonly string SHARED_USAGE = "Combined size (TB) of team members shared folders."; + public static readonly string UNSHARED_USAGE = "Combined size (TB) of team members' root namespaces."; + public static readonly string SHARED_FOLDERS = "Number of shared folders owned by team members."; + public static readonly string ACTIVE_SHARED_FOLDERS = "Number of shared folders with some activity in the last week."; + public static readonly string ACTIVE_USERS = "Number of users who have been active in the last week."; + public static readonly string FILE_ADDS = "Total number of adds (files and folders) by team members. ."; + public static readonly string FILE_DELETES = " Total number of deletes (files and folders) by team members."; + public static readonly string FILE_EDITS = "Number of edits (files and folders) by team members. If the same user edits the same file multiple times this is counted as a single edit."; + public static readonly string ACTIVE_DEVICES = "Report of the number of devices active in the last 7 days. Stats shown reflect last logged day in Dropbox."; + public static readonly string USERS = "Total users provioned against total number of licenses."; } } \ No newline at end of file diff --git a/Source/DfBAdminToolkit/View/IPaperView.cs b/Source/DfBAdminToolkit/View/IPaperView.cs index 1f88ee4..ecbd594 100644 --- a/Source/DfBAdminToolkit/View/IPaperView.cs +++ b/Source/DfBAdminToolkit/View/IPaperView.cs @@ -11,7 +11,7 @@ public interface IPaperView event EventHandler CommandGetPaper; event EventHandler CommandDownloadPaper; event EventHandler CommandDeletePaper; - event EventHandler CommandExportPaper; + event EventHandler CommandExportToCSV; string AccessToken { get; set; } diff --git a/Source/DfBAdminToolkit/View/ITeamAuditingView.cs b/Source/DfBAdminToolkit/View/ITeamAuditingView.cs index 21ee6a6..e91693f 100644 --- a/Source/DfBAdminToolkit/View/ITeamAuditingView.cs +++ b/Source/DfBAdminToolkit/View/ITeamAuditingView.cs @@ -9,6 +9,8 @@ public interface ITeamAuditingView { event EventHandler CommandLoadTeamEvents; event EventHandler CommandLoadCSV; + event EventHandler CommandExportToCSV; + event EventHandler CommandFilterMembers; string AccessToken { get; set; } @@ -18,10 +20,12 @@ public interface ITeamAuditingView void RefreshAccessToken(); - string TeamHealthInputFilePath { get; set; } + string TeamAuditingInputFilePath { get; set; } string EventCategory { get; set; } void RenderTeamAuditingList(List TeamAuditing); + + List RenderTeamAuditingFilteredMemberList(List members, List TeamAuditing, List newAudit); } } \ No newline at end of file diff --git a/Source/DfBAdminToolkit/View/MainView.cs b/Source/DfBAdminToolkit/View/MainView.cs index 1979475..3fb40db 100644 --- a/Source/DfBAdminToolkit/View/MainView.cs +++ b/Source/DfBAdminToolkit/View/MainView.cs @@ -30,11 +30,11 @@ public partial class MainView : Form, IMainView Provisioning = 2, Groups = 3, TeamFolders = 4, - //Paper = 5, - Devices = 5, - //TeamAuditing = 7, - //TeamHealth = 8, - DataMigration = 6 + Paper = 5, + Devices = 6, + TeamAuditing = 7, + TeamHealth = 8, + DataMigration = 9 } #endregion Runtime components @@ -180,14 +180,14 @@ private void InitializeRuntimeComponent() Padding = new Padding(5, 3, 5, 3), UseVisualStyleBackColor = true }); - //_tabPages.Add(new TabPage() - //{ - // Name = "tabPage_Paper", - // Text = "Paper", - // Dock = DockStyle.Fill, - // Padding = new Padding(5, 3, 5, 3), - // UseVisualStyleBackColor = true - //}); + _tabPages.Add(new TabPage() + { + Name = "tabPage_Paper", + Text = "Paper", + Dock = DockStyle.Fill, + Padding = new Padding(5, 3, 5, 3), + UseVisualStyleBackColor = true + }); _tabPages.Add(new TabPage() { Name = "tabPage_Devices", Text = "Devices", @@ -195,22 +195,22 @@ private void InitializeRuntimeComponent() Padding = new Padding(5, 3, 5, 3), UseVisualStyleBackColor = true }); - //_tabPages.Add(new TabPage() - //{ - // Name = "tabPage_TeamAuditing", - // Text = "Team Auditing", - // Dock = DockStyle.Fill, - // Padding = new Padding(5, 3, 5, 3), - // UseVisualStyleBackColor = true - //}); - //_tabPages.Add(new TabPage() - //{ - // Name = "tabPage_TeamHealth", - // Text = "Team Health", - // Dock = DockStyle.Fill, - // Padding = new Padding(5, 3, 5, 3), - // UseVisualStyleBackColor = true - //}); + _tabPages.Add(new TabPage() + { + Name = "tabPage_TeamAuditing", + Text = "Team Auditing", + Dock = DockStyle.Fill, + Padding = new Padding(5, 3, 5, 3), + UseVisualStyleBackColor = true + }); + _tabPages.Add(new TabPage() + { + Name = "tabPage_TeamHealth", + Text = "Team Health", + Dock = DockStyle.Fill, + Padding = new Padding(5, 3, 5, 3), + UseVisualStyleBackColor = true + }); _tabPages.Add(new TabPage() { Name = "tabPage_DataMigration", Text = "Team Content", @@ -335,10 +335,10 @@ private void RegisterTabPages() { _tabPages[(int)TabIndex.Provisioning].Controls.Add(CreateProvisionView()); _tabPages[(int)TabIndex.Groups].Controls.Add(CreateGroupsView()); _tabPages[(int)TabIndex.TeamFolders].Controls.Add(CreateTeamFoldersView()); - //_tabPages[(int)TabIndex.Paper].Controls.Add(CreatePaperView()); + _tabPages[(int)TabIndex.Paper].Controls.Add(CreatePaperView()); _tabPages[(int)TabIndex.Devices].Controls.Add(CreateDevicesView()); - //_tabPages[(int)TabIndex.TeamAuditing].Controls.Add(CreateTeamAuditingView()); - //_tabPages[(int)TabIndex.TeamHealth].Controls.Add(CreateTeamHealthView()); + _tabPages[(int)TabIndex.TeamAuditing].Controls.Add(CreateTeamAuditingView()); + _tabPages[(int)TabIndex.TeamHealth].Controls.Add(CreateTeamHealthView()); _tabPages[(int)TabIndex.DataMigration].Controls.Add(CreateDataMigrationView()); _tabControl.Controls.Add(_tabPages[(int)TabIndex.TextSearch]); @@ -346,10 +346,10 @@ private void RegisterTabPages() { _tabControl.Controls.Add(_tabPages[(int)TabIndex.Provisioning]); _tabControl.Controls.Add(_tabPages[(int)TabIndex.Groups]); _tabControl.Controls.Add(_tabPages[(int)TabIndex.TeamFolders]); - //_tabControl.Controls.Add(_tabPages[(int)TabIndex.Paper]); + _tabControl.Controls.Add(_tabPages[(int)TabIndex.Paper]); _tabControl.Controls.Add(_tabPages[(int)TabIndex.Devices]); - //_tabControl.Controls.Add(_tabPages[(int)TabIndex.TeamAuditing]); - //_tabControl.Controls.Add(_tabPages[(int)TabIndex.TeamHealth]); + _tabControl.Controls.Add(_tabPages[(int)TabIndex.TeamAuditing]); + _tabControl.Controls.Add(_tabPages[(int)TabIndex.TeamHealth]); _tabControl.Controls.Add(_tabPages[(int)TabIndex.DataMigration]); // select first tab @@ -408,16 +408,16 @@ private TeamFoldersView CreateTeamFoldersView() return view as TeamFoldersView; } - //private PaperView CreatePaperView() - //{ - // IPaperModel model = new PaperModel(); - // IPaperView view = new PaperView(); - // IPaperPresenter presenter = SimpleResolver.Instance.Get( - // new object[] { model, view } - // ); - // view.ShowView(); - // return view as PaperView; - //} + private PaperView CreatePaperView() + { + IPaperModel model = new PaperModel(); + IPaperView view = new PaperView(); + IPaperPresenter presenter = SimpleResolver.Instance.Get( + new object[] { model, view } + ); + view.ShowView(); + return view as PaperView; + } private DevicesView CreateDevicesView() { IDevicesModel model = new DevicesModel(); @@ -429,27 +429,27 @@ private DevicesView CreateDevicesView() { return view as DevicesView; } - //private TeamHealthView CreateTeamHealthView() - //{ - // ITeamHealthModel model = new TeamHealthModel(); - // ITeamHealthView view = new TeamHealthView(); - // ITeamHealthPresenter presenter = SimpleResolver.Instance.Get( - // new object[] { model, view } - // ); - // view.ShowView(); - // return view as TeamHealthView; - //} - - //private TeamAuditingView CreateTeamAuditingView() - //{ - // ITeamAuditingModel model = new TeamAuditingModel(); - // ITeamAuditingView view = new TeamAuditingView(); - // ITeamAuditingPresenter presenter = SimpleResolver.Instance.Get( - // new object[] { model, view } - // ); - // view.ShowView(); - // return view as TeamAuditingView; - //} + private TeamHealthView CreateTeamHealthView() + { + ITeamHealthModel model = new TeamHealthModel(); + ITeamHealthView view = new TeamHealthView(); + ITeamHealthPresenter presenter = SimpleResolver.Instance.Get( + new object[] { model, view } + ); + view.ShowView(); + return view as TeamHealthView; + } + + private TeamAuditingView CreateTeamAuditingView() + { + ITeamAuditingModel model = new TeamAuditingModel(); + ITeamAuditingView view = new TeamAuditingView(); + ITeamAuditingPresenter presenter = SimpleResolver.Instance.Get( + new object[] { model, view } + ); + view.ShowView(); + return view as TeamAuditingView; + } private DataMigrationView CreateDataMigrationView() { IDataMigrationModel model = new DataMigrationModel(); diff --git a/Source/DfBAdminToolkit/View/PaperView.cs b/Source/DfBAdminToolkit/View/PaperView.cs index 1613685..bd4b642 100644 --- a/Source/DfBAdminToolkit/View/PaperView.cs +++ b/Source/DfBAdminToolkit/View/PaperView.cs @@ -14,7 +14,7 @@ public partial class PaperView : Form, IPaperView public event EventHandler CommandGetPaper; public event EventHandler CommandDeletePaper; public event EventHandler CommandDownloadPaper; - public event EventHandler CommandExportPaper; + public event EventHandler CommandExportToCSV; public SynchronizationContext SyncContext { get; set; } @@ -72,6 +72,7 @@ public void WireComponentEvents() this.buttonEx_PaperDownload.Click += buttonEx_PaperDownload_Click; this.buttonEx_PaperDelete.Click += buttonEx_PaperDelete_Click; this.buttonEx_PaperDownloadFolder.Click += buttonEx_PaperDownloadFolder_Click; + this.buttonEx_ExportToCSV.Click += buttonEx_ExportToCSV_Click; this.radioButton_Archive.CheckedChanged += radioButton_Archive_CheckedChanged; this.radioButton_Permanent.CheckedChanged += radioButton_Permanent_CheckedChanged; this.textBoxPaper.TextChanged += TextBox_textBoxPaper_TextChanged; @@ -108,9 +109,14 @@ public void Initialize() Paper = new List(); this.buttonEx_PaperLoadPaper.Enabled = true; this.buttonEx_PaperDownload.Enabled = false; + this.textBoxPaper.Enabled = false; + this.buttonEx_ExportToCSV.Enabled = false; + this.buttonEx_PaperDelete.Enabled = false; //set default for radio buttons this.radioButton_Archive.Checked = true; + this.radioButton_Archive.Enabled = false; + this.radioButton_Permanent.Enabled = false; } private void InitializeOLVMembers() @@ -232,6 +238,10 @@ private void buttonEx_PaperLoadPaper_Click(object sender, EventArgs e) { CommandGetPaper(sender, e); } + this.buttonEx_ExportToCSV.Enabled = true; + this.buttonEx_PaperDelete.Enabled = true; + this.radioButton_Archive.Enabled = true; + this.radioButton_Permanent.Enabled = true; } private void buttonEx_PaperDelete_Click(object sender, EventArgs e) @@ -264,6 +274,16 @@ private void buttonEx_PaperDownloadFolder_Click(object sender, EventArgs e) textBoxPaper.Text = outputFolderDlg.SelectedPath; OutputFolder = outputFolderDlg.SelectedPath; this.EnableDownloadButton(true); + this.textBoxPaper.Enabled = true; + } + } + + private void buttonEx_ExportToCSV_Click(object sender, EventArgs e) + { + InvokeDataChanged(sender, e); + if (CommandExportToCSV != null) + { + CommandExportToCSV(sender, e); } } diff --git a/Source/DfBAdminToolkit/View/PaperView.designer.cs b/Source/DfBAdminToolkit/View/PaperView.designer.cs index 0723839..0a163af 100644 --- a/Source/DfBAdminToolkit/View/PaperView.designer.cs +++ b/Source/DfBAdminToolkit/View/PaperView.designer.cs @@ -33,15 +33,14 @@ private void InitializeComponent() this.components = new System.ComponentModel.Container(); DfBAdminToolkit.Common.Component.Office2010White office2010White1 = new DfBAdminToolkit.Common.Component.Office2010White(); DfBAdminToolkit.Common.Component.Office2010Blue office2010Blue1 = new DfBAdminToolkit.Common.Component.Office2010Blue(); - this.tableLayoutPanel_TeamFolders = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel_TeamFoldersCommandGroup = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel_TeamFoldersAccessToken = new System.Windows.Forms.TableLayoutPanel(); + this.tableLayoutPanel_Paper = new System.Windows.Forms.TableLayoutPanel(); + this.tableLayoutPanelPaperCommandGroup = new System.Windows.Forms.TableLayoutPanel(); + this.tableLayoutPanel_PaperAccessToken = new System.Windows.Forms.TableLayoutPanel(); this.label_TeamFoldersAccessToken = new System.Windows.Forms.Label(); this.textBox_PaperAccessToken = new DfBAdminToolkit.Common.Component.TextBoxEx(this.components); - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel_TeamFoldersSendEmailGroup = new System.Windows.Forms.TableLayoutPanel(); + this.tableLayoutPanel_PaperLoadGroup = new System.Windows.Forms.TableLayoutPanel(); this.buttonEx_PaperLoadPaper = new DfBAdminToolkit.Common.Component.ButtonEx(); - this.tableLayoutPanel_TeamFoldersMembersGroup = new System.Windows.Forms.TableLayoutPanel(); + this.tableLayoutPanel_PaperMembersGroup = new System.Windows.Forms.TableLayoutPanel(); this.objectListView_PaperMembers = new BrightIdeasSoftware.ObjectListView(); this.olvColumnPaper_PaperName = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn())); this.olvColumnPaper_PaperId = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn())); @@ -52,78 +51,78 @@ private void InitializeComponent() this.olvColumnPaper_LastUpdatedDate = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn())); this.olvColumnPaper_LastEditor = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn())); this.olvColumnPaper_Revision = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn())); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup = new System.Windows.Forms.TableLayoutPanel(); + this.tableLayoutPanel_PaperCommandGroup = new System.Windows.Forms.TableLayoutPanel(); + this.buttonEx_ExportToCSV = new DfBAdminToolkit.Common.Component.ButtonEx(); this.buttonEx_PaperDownloadFolder = new System.Windows.Forms.Button(); this.textBoxPaper = new System.Windows.Forms.TextBox(); this.buttonEx_PaperDelete = new DfBAdminToolkit.Common.Component.ButtonEx(); this.buttonEx_PaperDownload = new DfBAdminToolkit.Common.Component.ButtonEx(); this.radioButton_Permanent = new System.Windows.Forms.RadioButton(); this.radioButton_Archive = new System.Windows.Forms.RadioButton(); - this.tableLayoutPanel_TeamFolders.SuspendLayout(); - this.tableLayoutPanel_TeamFoldersCommandGroup.SuspendLayout(); - this.tableLayoutPanel_TeamFoldersAccessToken.SuspendLayout(); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.SuspendLayout(); - this.tableLayoutPanel_TeamFoldersMembersGroup.SuspendLayout(); + this.tableLayoutPanel_Paper.SuspendLayout(); + this.tableLayoutPanelPaperCommandGroup.SuspendLayout(); + this.tableLayoutPanel_PaperAccessToken.SuspendLayout(); + this.tableLayoutPanel_PaperLoadGroup.SuspendLayout(); + this.tableLayoutPanel_PaperMembersGroup.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.objectListView_PaperMembers)).BeginInit(); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.SuspendLayout(); + this.tableLayoutPanel_PaperCommandGroup.SuspendLayout(); this.SuspendLayout(); // - // tableLayoutPanel_TeamFolders - // - this.tableLayoutPanel_TeamFolders.ColumnCount = 1; - this.tableLayoutPanel_TeamFolders.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel_TeamFolders.Controls.Add(this.tableLayoutPanel_TeamFoldersCommandGroup, 0, 0); - this.tableLayoutPanel_TeamFolders.Controls.Add(this.tableLayoutPanel_TeamFoldersMembersGroup, 0, 2); - this.tableLayoutPanel_TeamFolders.Controls.Add(this.tableLayoutPanel_TeamFoldersProvisionCommandGroup, 0, 3); - this.tableLayoutPanel_TeamFolders.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel_TeamFolders.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tableLayoutPanel_TeamFolders.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel_TeamFolders.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.tableLayoutPanel_TeamFolders.Name = "tableLayoutPanel_TeamFolders"; - this.tableLayoutPanel_TeamFolders.RowCount = 4; - this.tableLayoutPanel_TeamFolders.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 108F)); - this.tableLayoutPanel_TeamFolders.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 12F)); - this.tableLayoutPanel_TeamFolders.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel_TeamFolders.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 62F)); - this.tableLayoutPanel_TeamFolders.Size = new System.Drawing.Size(1070, 669); - this.tableLayoutPanel_TeamFolders.TabIndex = 1; - // - // tableLayoutPanel_TeamFoldersCommandGroup - // - this.tableLayoutPanel_TeamFoldersCommandGroup.ColumnCount = 4; - this.tableLayoutPanel_TeamFoldersCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel_TeamFoldersCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 12F)); - this.tableLayoutPanel_TeamFoldersCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 99F)); - this.tableLayoutPanel_TeamFoldersCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel_TeamFoldersCommandGroup.Controls.Add(this.tableLayoutPanel_TeamFoldersAccessToken, 3, 0); - this.tableLayoutPanel_TeamFoldersCommandGroup.Controls.Add(this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup, 0, 1); - this.tableLayoutPanel_TeamFoldersCommandGroup.Controls.Add(this.tableLayoutPanel_TeamFoldersSendEmailGroup, 3, 1); - this.tableLayoutPanel_TeamFoldersCommandGroup.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel_TeamFoldersCommandGroup.Location = new System.Drawing.Point(4, 5); - this.tableLayoutPanel_TeamFoldersCommandGroup.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.tableLayoutPanel_TeamFoldersCommandGroup.Name = "tableLayoutPanel_TeamFoldersCommandGroup"; - this.tableLayoutPanel_TeamFoldersCommandGroup.RowCount = 2; - this.tableLayoutPanel_TeamFoldersCommandGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 42F)); - this.tableLayoutPanel_TeamFoldersCommandGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 46F)); - this.tableLayoutPanel_TeamFoldersCommandGroup.Size = new System.Drawing.Size(1062, 98); - this.tableLayoutPanel_TeamFoldersCommandGroup.TabIndex = 0; - // - // tableLayoutPanel_TeamFoldersAccessToken - // - this.tableLayoutPanel_TeamFoldersAccessToken.ColumnCount = 2; - this.tableLayoutPanel_TeamFoldersAccessToken.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 135F)); - this.tableLayoutPanel_TeamFoldersAccessToken.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel_TeamFoldersAccessToken.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 30F)); - this.tableLayoutPanel_TeamFoldersAccessToken.Controls.Add(this.label_TeamFoldersAccessToken, 0, 0); - this.tableLayoutPanel_TeamFoldersAccessToken.Controls.Add(this.textBox_PaperAccessToken, 1, 0); - this.tableLayoutPanel_TeamFoldersAccessToken.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel_TeamFoldersAccessToken.Location = new System.Drawing.Point(588, 2); - this.tableLayoutPanel_TeamFoldersAccessToken.Margin = new System.Windows.Forms.Padding(2); - this.tableLayoutPanel_TeamFoldersAccessToken.Name = "tableLayoutPanel_TeamFoldersAccessToken"; - this.tableLayoutPanel_TeamFoldersAccessToken.RowCount = 1; - this.tableLayoutPanel_TeamFoldersAccessToken.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel_TeamFoldersAccessToken.Size = new System.Drawing.Size(472, 38); - this.tableLayoutPanel_TeamFoldersAccessToken.TabIndex = 0; + // tableLayoutPanel_Paper + // + this.tableLayoutPanel_Paper.ColumnCount = 1; + this.tableLayoutPanel_Paper.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel_Paper.Controls.Add(this.tableLayoutPanelPaperCommandGroup, 0, 0); + this.tableLayoutPanel_Paper.Controls.Add(this.tableLayoutPanel_PaperMembersGroup, 0, 2); + this.tableLayoutPanel_Paper.Controls.Add(this.tableLayoutPanel_PaperCommandGroup, 0, 3); + this.tableLayoutPanel_Paper.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel_Paper.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tableLayoutPanel_Paper.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel_Paper.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.tableLayoutPanel_Paper.Name = "tableLayoutPanel_Paper"; + this.tableLayoutPanel_Paper.RowCount = 4; + this.tableLayoutPanel_Paper.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 108F)); + this.tableLayoutPanel_Paper.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 12F)); + this.tableLayoutPanel_Paper.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel_Paper.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 62F)); + this.tableLayoutPanel_Paper.Size = new System.Drawing.Size(1070, 669); + this.tableLayoutPanel_Paper.TabIndex = 1; + // + // tableLayoutPanelPaperCommandGroup + // + this.tableLayoutPanelPaperCommandGroup.ColumnCount = 4; + this.tableLayoutPanelPaperCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanelPaperCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 12F)); + this.tableLayoutPanelPaperCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 99F)); + this.tableLayoutPanelPaperCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanelPaperCommandGroup.Controls.Add(this.tableLayoutPanel_PaperAccessToken, 3, 0); + this.tableLayoutPanelPaperCommandGroup.Controls.Add(this.tableLayoutPanel_PaperLoadGroup, 3, 1); + this.tableLayoutPanelPaperCommandGroup.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanelPaperCommandGroup.Location = new System.Drawing.Point(4, 5); + this.tableLayoutPanelPaperCommandGroup.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.tableLayoutPanelPaperCommandGroup.Name = "tableLayoutPanelPaperCommandGroup"; + this.tableLayoutPanelPaperCommandGroup.RowCount = 2; + this.tableLayoutPanelPaperCommandGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 42F)); + this.tableLayoutPanelPaperCommandGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 46F)); + this.tableLayoutPanelPaperCommandGroup.Size = new System.Drawing.Size(1062, 98); + this.tableLayoutPanelPaperCommandGroup.TabIndex = 0; + // + // tableLayoutPanel_PaperAccessToken + // + this.tableLayoutPanel_PaperAccessToken.ColumnCount = 2; + this.tableLayoutPanel_PaperAccessToken.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 135F)); + this.tableLayoutPanel_PaperAccessToken.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel_PaperAccessToken.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableLayoutPanel_PaperAccessToken.Controls.Add(this.label_TeamFoldersAccessToken, 0, 0); + this.tableLayoutPanel_PaperAccessToken.Controls.Add(this.textBox_PaperAccessToken, 1, 0); + this.tableLayoutPanel_PaperAccessToken.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel_PaperAccessToken.Location = new System.Drawing.Point(588, 2); + this.tableLayoutPanel_PaperAccessToken.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.tableLayoutPanel_PaperAccessToken.Name = "tableLayoutPanel_PaperAccessToken"; + this.tableLayoutPanel_PaperAccessToken.RowCount = 1; + this.tableLayoutPanel_PaperAccessToken.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel_PaperAccessToken.Size = new System.Drawing.Size(472, 38); + this.tableLayoutPanel_PaperAccessToken.TabIndex = 0; // // label_TeamFoldersAccessToken // @@ -149,36 +148,21 @@ private void InitializeComponent() this.textBox_PaperAccessToken.TabIndex = 1; this.textBox_PaperAccessToken.Visible = false; // - // tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup - // - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.ColumnCount = 3; - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 240F)); - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 54F)); - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.Location = new System.Drawing.Point(4, 47); - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.Name = "tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup"; - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.RowCount = 1; - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.Size = new System.Drawing.Size(467, 46); - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.TabIndex = 2; - // - // tableLayoutPanel_TeamFoldersSendEmailGroup - // - this.tableLayoutPanel_TeamFoldersSendEmailGroup.ColumnCount = 3; - this.tableLayoutPanel_TeamFoldersSendEmailGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12.93534F)); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 38.57143F)); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 48.57143F)); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.Controls.Add(this.buttonEx_PaperLoadPaper, 2, 0); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel_TeamFoldersSendEmailGroup.Location = new System.Drawing.Point(590, 47); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.Name = "tableLayoutPanel_TeamFoldersSendEmailGroup"; - this.tableLayoutPanel_TeamFoldersSendEmailGroup.RowCount = 1; - this.tableLayoutPanel_TeamFoldersSendEmailGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 48F)); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.Size = new System.Drawing.Size(468, 46); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.TabIndex = 3; + // tableLayoutPanel_PaperLoadGroup + // + this.tableLayoutPanel_PaperLoadGroup.ColumnCount = 3; + this.tableLayoutPanel_PaperLoadGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12.93534F)); + this.tableLayoutPanel_PaperLoadGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 38.57143F)); + this.tableLayoutPanel_PaperLoadGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 48.57143F)); + this.tableLayoutPanel_PaperLoadGroup.Controls.Add(this.buttonEx_PaperLoadPaper, 2, 0); + this.tableLayoutPanel_PaperLoadGroup.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel_PaperLoadGroup.Location = new System.Drawing.Point(590, 47); + this.tableLayoutPanel_PaperLoadGroup.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.tableLayoutPanel_PaperLoadGroup.Name = "tableLayoutPanel_PaperLoadGroup"; + this.tableLayoutPanel_PaperLoadGroup.RowCount = 1; + this.tableLayoutPanel_PaperLoadGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 48F)); + this.tableLayoutPanel_PaperLoadGroup.Size = new System.Drawing.Size(468, 46); + this.tableLayoutPanel_PaperLoadGroup.TabIndex = 3; // // buttonEx_PaperLoadPaper // @@ -210,19 +194,19 @@ private void InitializeComponent() this.buttonEx_PaperLoadPaper.Theme = DfBAdminToolkit.Common.Component.Theme.MSOffice2010_White; this.buttonEx_PaperLoadPaper.UseVisualStyleBackColor = true; // - // tableLayoutPanel_TeamFoldersMembersGroup + // tableLayoutPanel_PaperMembersGroup // - this.tableLayoutPanel_TeamFoldersMembersGroup.ColumnCount = 1; - this.tableLayoutPanel_TeamFoldersMembersGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel_TeamFoldersMembersGroup.Controls.Add(this.objectListView_PaperMembers, 0, 0); - this.tableLayoutPanel_TeamFoldersMembersGroup.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel_TeamFoldersMembersGroup.Location = new System.Drawing.Point(4, 125); - this.tableLayoutPanel_TeamFoldersMembersGroup.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.tableLayoutPanel_TeamFoldersMembersGroup.Name = "tableLayoutPanel_TeamFoldersMembersGroup"; - this.tableLayoutPanel_TeamFoldersMembersGroup.RowCount = 1; - this.tableLayoutPanel_TeamFoldersMembersGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel_TeamFoldersMembersGroup.Size = new System.Drawing.Size(1062, 477); - this.tableLayoutPanel_TeamFoldersMembersGroup.TabIndex = 1; + this.tableLayoutPanel_PaperMembersGroup.ColumnCount = 1; + this.tableLayoutPanel_PaperMembersGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel_PaperMembersGroup.Controls.Add(this.objectListView_PaperMembers, 0, 0); + this.tableLayoutPanel_PaperMembersGroup.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel_PaperMembersGroup.Location = new System.Drawing.Point(4, 125); + this.tableLayoutPanel_PaperMembersGroup.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.tableLayoutPanel_PaperMembersGroup.Name = "tableLayoutPanel_PaperMembersGroup"; + this.tableLayoutPanel_PaperMembersGroup.RowCount = 1; + this.tableLayoutPanel_PaperMembersGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel_PaperMembersGroup.Size = new System.Drawing.Size(1062, 477); + this.tableLayoutPanel_PaperMembersGroup.TabIndex = 1; // // objectListView_PaperMembers // @@ -330,40 +314,72 @@ private void InitializeComponent() this.olvColumnPaper_Revision.MaximumWidth = 60; this.olvColumnPaper_Revision.Text = "Revision"; // - // tableLayoutPanel_TeamFoldersProvisionCommandGroup - // - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnCount = 9; - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 156F)); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 247F)); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 47F)); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 17F)); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 115F)); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 112F)); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 136F)); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 102F)); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 160F)); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.Controls.Add(this.buttonEx_PaperDownloadFolder, 0, 0); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.Controls.Add(this.textBoxPaper, 0, 0); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.Controls.Add(this.buttonEx_PaperDelete, 4, 0); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.Controls.Add(this.buttonEx_PaperDownload, 0, 0); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.Controls.Add(this.radioButton_Permanent, 6, 0); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.Controls.Add(this.radioButton_Archive, 5, 0); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.Location = new System.Drawing.Point(4, 610); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.Name = "tableLayoutPanel_TeamFoldersProvisionCommandGroup"; - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.RowCount = 1; - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 56F)); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.Size = new System.Drawing.Size(1062, 56); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.TabIndex = 3; + // tableLayoutPanel_PaperCommandGroup + // + this.tableLayoutPanel_PaperCommandGroup.ColumnCount = 10; + this.tableLayoutPanel_PaperCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 140F)); + this.tableLayoutPanel_PaperCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 248F)); + this.tableLayoutPanel_PaperCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 46F)); + this.tableLayoutPanel_PaperCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 16F)); + this.tableLayoutPanel_PaperCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 110F)); + this.tableLayoutPanel_PaperCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 105F)); + this.tableLayoutPanel_PaperCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 138F)); + this.tableLayoutPanel_PaperCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 74F)); + this.tableLayoutPanel_PaperCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 152F)); + this.tableLayoutPanel_PaperCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel_PaperCommandGroup.Controls.Add(this.buttonEx_ExportToCSV, 8, 0); + this.tableLayoutPanel_PaperCommandGroup.Controls.Add(this.buttonEx_PaperDownloadFolder, 2, 0); + this.tableLayoutPanel_PaperCommandGroup.Controls.Add(this.textBoxPaper, 1, 0); + this.tableLayoutPanel_PaperCommandGroup.Controls.Add(this.buttonEx_PaperDelete, 4, 0); + this.tableLayoutPanel_PaperCommandGroup.Controls.Add(this.buttonEx_PaperDownload, 0, 0); + this.tableLayoutPanel_PaperCommandGroup.Controls.Add(this.radioButton_Permanent, 6, 0); + this.tableLayoutPanel_PaperCommandGroup.Controls.Add(this.radioButton_Archive, 5, 0); + this.tableLayoutPanel_PaperCommandGroup.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel_PaperCommandGroup.Location = new System.Drawing.Point(4, 610); + this.tableLayoutPanel_PaperCommandGroup.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.tableLayoutPanel_PaperCommandGroup.Name = "tableLayoutPanel_PaperCommandGroup"; + this.tableLayoutPanel_PaperCommandGroup.RowCount = 1; + this.tableLayoutPanel_PaperCommandGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 55F)); + this.tableLayoutPanel_PaperCommandGroup.Size = new System.Drawing.Size(1062, 56); + this.tableLayoutPanel_PaperCommandGroup.TabIndex = 3; + // + // buttonEx_ExportToCSV + // + office2010Blue1.BorderColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(72)))), ((int)(((byte)(161))))); + office2010Blue1.BorderColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(135)))), ((int)(((byte)(228))))); + office2010Blue1.ButtonMouseOverColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(199)))), ((int)(((byte)(87))))); + office2010Blue1.ButtonMouseOverColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(243)))), ((int)(((byte)(215))))); + office2010Blue1.ButtonMouseOverColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(249)))), ((int)(((byte)(225)))), ((int)(((byte)(137))))); + office2010Blue1.ButtonMouseOverColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(251)))), ((int)(((byte)(249)))), ((int)(((byte)(224))))); + office2010Blue1.ButtonNormalColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(72)))), ((int)(((byte)(161))))); + office2010Blue1.ButtonNormalColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(135)))), ((int)(((byte)(228))))); + office2010Blue1.ButtonNormalColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(41)))), ((int)(((byte)(97)))), ((int)(((byte)(181))))); + office2010Blue1.ButtonNormalColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(62)))), ((int)(((byte)(125)))), ((int)(((byte)(219))))); + office2010Blue1.ButtonSelectedColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(199)))), ((int)(((byte)(87))))); + office2010Blue1.ButtonSelectedColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(243)))), ((int)(((byte)(215))))); + office2010Blue1.ButtonSelectedColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(229)))), ((int)(((byte)(117))))); + office2010Blue1.ButtonSelectedColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(216)))), ((int)(((byte)(107))))); + office2010Blue1.HoverTextColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(57)))), ((int)(((byte)(91))))); + office2010Blue1.SelectedTextColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(57)))), ((int)(((byte)(91))))); + office2010Blue1.TextColor = System.Drawing.Color.White; + this.buttonEx_ExportToCSV.ColorTable = office2010Blue1; + this.buttonEx_ExportToCSV.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonEx_ExportToCSV.Location = new System.Drawing.Point(881, 5); + this.buttonEx_ExportToCSV.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.buttonEx_ExportToCSV.Name = "buttonEx_ExportToCSV"; + this.buttonEx_ExportToCSV.Size = new System.Drawing.Size(144, 46); + this.buttonEx_ExportToCSV.TabIndex = 14; + this.buttonEx_ExportToCSV.Text = "Export To CSV"; + this.buttonEx_ExportToCSV.Theme = DfBAdminToolkit.Common.Component.Theme.MSOffice2010_Blue; + this.buttonEx_ExportToCSV.UseVisualStyleBackColor = true; // // buttonEx_PaperDownloadFolder // this.buttonEx_PaperDownloadFolder.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.buttonEx_PaperDownloadFolder.Location = new System.Drawing.Point(407, 14); + this.buttonEx_PaperDownloadFolder.Location = new System.Drawing.Point(392, 14); this.buttonEx_PaperDownloadFolder.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.buttonEx_PaperDownloadFolder.Name = "buttonEx_PaperDownloadFolder"; - this.buttonEx_PaperDownloadFolder.Size = new System.Drawing.Size(39, 28); + this.buttonEx_PaperDownloadFolder.Size = new System.Drawing.Size(38, 28); this.buttonEx_PaperDownloadFolder.TabIndex = 13; this.buttonEx_PaperDownloadFolder.Text = "..."; this.buttonEx_PaperDownloadFolder.UseVisualStyleBackColor = true; @@ -371,37 +387,20 @@ private void InitializeComponent() // textBoxPaper // this.textBoxPaper.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.textBoxPaper.Location = new System.Drawing.Point(160, 17); + this.textBoxPaper.Location = new System.Drawing.Point(144, 17); this.textBoxPaper.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.textBoxPaper.Name = "textBoxPaper"; - this.textBoxPaper.Size = new System.Drawing.Size(239, 22); + this.textBoxPaper.Size = new System.Drawing.Size(240, 22); this.textBoxPaper.TabIndex = 12; // // buttonEx_PaperDelete // - office2010Blue1.BorderColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(72)))), ((int)(((byte)(161))))); - office2010Blue1.BorderColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(135)))), ((int)(((byte)(228))))); - office2010Blue1.ButtonMouseOverColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(199)))), ((int)(((byte)(87))))); - office2010Blue1.ButtonMouseOverColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(243)))), ((int)(((byte)(215))))); - office2010Blue1.ButtonMouseOverColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(249)))), ((int)(((byte)(225)))), ((int)(((byte)(137))))); - office2010Blue1.ButtonMouseOverColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(251)))), ((int)(((byte)(249)))), ((int)(((byte)(224))))); - office2010Blue1.ButtonNormalColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(72)))), ((int)(((byte)(161))))); - office2010Blue1.ButtonNormalColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(135)))), ((int)(((byte)(228))))); - office2010Blue1.ButtonNormalColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(41)))), ((int)(((byte)(97)))), ((int)(((byte)(181))))); - office2010Blue1.ButtonNormalColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(62)))), ((int)(((byte)(125)))), ((int)(((byte)(219))))); - office2010Blue1.ButtonSelectedColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(199)))), ((int)(((byte)(87))))); - office2010Blue1.ButtonSelectedColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(243)))), ((int)(((byte)(215))))); - office2010Blue1.ButtonSelectedColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(229)))), ((int)(((byte)(117))))); - office2010Blue1.ButtonSelectedColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(216)))), ((int)(((byte)(107))))); - office2010Blue1.HoverTextColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(57)))), ((int)(((byte)(91))))); - office2010Blue1.SelectedTextColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(57)))), ((int)(((byte)(91))))); - office2010Blue1.TextColor = System.Drawing.Color.White; this.buttonEx_PaperDelete.ColorTable = office2010Blue1; this.buttonEx_PaperDelete.Dock = System.Windows.Forms.DockStyle.Fill; - this.buttonEx_PaperDelete.Location = new System.Drawing.Point(471, 5); + this.buttonEx_PaperDelete.Location = new System.Drawing.Point(454, 5); this.buttonEx_PaperDelete.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.buttonEx_PaperDelete.Name = "buttonEx_PaperDelete"; - this.buttonEx_PaperDelete.Size = new System.Drawing.Size(107, 46); + this.buttonEx_PaperDelete.Size = new System.Drawing.Size(102, 46); this.buttonEx_PaperDelete.TabIndex = 11; this.buttonEx_PaperDelete.Text = "Delete Docs"; this.buttonEx_PaperDelete.Theme = DfBAdminToolkit.Common.Component.Theme.MSOffice2010_Blue; @@ -414,7 +413,7 @@ private void InitializeComponent() this.buttonEx_PaperDownload.Location = new System.Drawing.Point(4, 5); this.buttonEx_PaperDownload.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.buttonEx_PaperDownload.Name = "buttonEx_PaperDownload"; - this.buttonEx_PaperDownload.Size = new System.Drawing.Size(148, 46); + this.buttonEx_PaperDownload.Size = new System.Drawing.Size(132, 46); this.buttonEx_PaperDownload.TabIndex = 8; this.buttonEx_PaperDownload.Text = "Download Docs"; this.buttonEx_PaperDownload.Theme = DfBAdminToolkit.Common.Component.Theme.MSOffice2010_Blue; @@ -424,10 +423,10 @@ private void InitializeComponent() // this.radioButton_Permanent.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.radioButton_Permanent.AutoSize = true; - this.radioButton_Permanent.Location = new System.Drawing.Point(698, 19); + this.radioButton_Permanent.Location = new System.Drawing.Point(669, 19); this.radioButton_Permanent.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.radioButton_Permanent.Name = "radioButton_Permanent"; - this.radioButton_Permanent.Size = new System.Drawing.Size(128, 17); + this.radioButton_Permanent.Size = new System.Drawing.Size(130, 17); this.radioButton_Permanent.TabIndex = 9; this.radioButton_Permanent.TabStop = true; this.radioButton_Permanent.Text = "Permanent"; @@ -437,10 +436,10 @@ private void InitializeComponent() // this.radioButton_Archive.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.radioButton_Archive.AutoSize = true; - this.radioButton_Archive.Location = new System.Drawing.Point(586, 19); + this.radioButton_Archive.Location = new System.Drawing.Point(564, 19); this.radioButton_Archive.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.radioButton_Archive.Name = "radioButton_Archive"; - this.radioButton_Archive.Size = new System.Drawing.Size(104, 17); + this.radioButton_Archive.Size = new System.Drawing.Size(97, 17); this.radioButton_Archive.TabIndex = 10; this.radioButton_Archive.TabStop = true; this.radioButton_Archive.Text = "Archived"; @@ -451,37 +450,36 @@ private void InitializeComponent() this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(1070, 669); - this.Controls.Add(this.tableLayoutPanel_TeamFolders); + this.Controls.Add(this.tableLayoutPanel_Paper); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.Name = "PaperView"; this.Text = "TeamFoldersView"; - this.tableLayoutPanel_TeamFolders.ResumeLayout(false); - this.tableLayoutPanel_TeamFoldersCommandGroup.ResumeLayout(false); - this.tableLayoutPanel_TeamFoldersAccessToken.ResumeLayout(false); - this.tableLayoutPanel_TeamFoldersAccessToken.PerformLayout(); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.ResumeLayout(false); - this.tableLayoutPanel_TeamFoldersMembersGroup.ResumeLayout(false); + this.tableLayoutPanel_Paper.ResumeLayout(false); + this.tableLayoutPanelPaperCommandGroup.ResumeLayout(false); + this.tableLayoutPanel_PaperAccessToken.ResumeLayout(false); + this.tableLayoutPanel_PaperAccessToken.PerformLayout(); + this.tableLayoutPanel_PaperLoadGroup.ResumeLayout(false); + this.tableLayoutPanel_PaperMembersGroup.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.objectListView_PaperMembers)).EndInit(); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ResumeLayout(false); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.PerformLayout(); + this.tableLayoutPanel_PaperCommandGroup.ResumeLayout(false); + this.tableLayoutPanel_PaperCommandGroup.PerformLayout(); this.ResumeLayout(false); } #endregion - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel_TeamFolders; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel_TeamFoldersCommandGroup; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel_TeamFoldersAccessToken; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel_Paper; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanelPaperCommandGroup; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel_PaperAccessToken; private System.Windows.Forms.Label label_TeamFoldersAccessToken; private TextBoxEx textBox_PaperAccessToken; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel_TeamFoldersMembersGroup; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel_PaperMembersGroup; private BrightIdeasSoftware.ObjectListView objectListView_PaperMembers; private BrightIdeasSoftware.OLVColumn olvColumnPaper_PaperName; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel_TeamFoldersProvisionCommandGroup; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel_TeamFoldersSendEmailGroup; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel_PaperCommandGroup; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel_PaperLoadGroup; private ButtonEx buttonEx_PaperLoadPaper; private BrightIdeasSoftware.OLVColumn olvColumnPaper_Status; private BrightIdeasSoftware.OLVColumn olvColumnPaper_PaperId; @@ -497,5 +495,6 @@ private void InitializeComponent() private System.Windows.Forms.Button buttonEx_PaperDownloadFolder; private System.Windows.Forms.TextBox textBoxPaper; private BrightIdeasSoftware.OLVColumn olvColumnPaper_FolderPath; + private ButtonEx buttonEx_ExportToCSV; } } \ No newline at end of file diff --git a/Source/DfBAdminToolkit/View/TeamAuditingView.cs b/Source/DfBAdminToolkit/View/TeamAuditingView.cs index 3e1e6fb..036ee74 100644 --- a/Source/DfBAdminToolkit/View/TeamAuditingView.cs +++ b/Source/DfBAdminToolkit/View/TeamAuditingView.cs @@ -2,7 +2,6 @@ { using BrightIdeasSoftware; using Model; - using DfBAdminToolkit.Common.Utils; using System; using System.Collections.Generic; using System.Drawing; @@ -14,9 +13,11 @@ public partial class TeamAuditingView : Form, ITeamAuditingView { public event EventHandler DataChanged; public event EventHandler CommandLoadTeamEvents; - public event EventHandler CommandLoadCSV; + public event EventHandler CommandLoadCSV; + public event EventHandler CommandExportToCSV; + public event EventHandler CommandFilterMembers; - public SynchronizationContext SyncContext { get; set; } + public SynchronizationContext SyncContext { get; set; } public bool ComponentEventsWired { get; set; } @@ -26,9 +27,11 @@ public partial class TeamAuditingView : Form, ITeamAuditingView public DateTime EndTime { get; set; } - public string TeamHealthInputFilePath { get; set; } + public string TeamAuditingInputFilePath { get; set; } - public string EventCategory { get; set; } + public string EventCategory { get; set; } + + List newAudit; public enum OlvMembersIndex : int { @@ -43,7 +46,7 @@ public enum OlvMembersIndex : int Region, Country, Participants, - Assets + Assets } public TeamAuditingView() @@ -53,7 +56,7 @@ public TeamAuditingView() InitializeOLVMembers(); WireComponentEvents(); this.objectListView_TeamAuditingMembers.RebuildColumns(); - } + } ~TeamAuditingView() { @@ -65,8 +68,10 @@ public void WireComponentEvents() if (!ComponentEventsWired) { this.buttonEx_TeamAuditingLoadTeamEvents.Click += buttonEx_TeamAuditingLoadTeamAuditing_Click; - this.buttonEx_TeamAuditingLoadFromCSV.Click += buttonEx_TeamAuditingLoadFromCSV_Click; - this.objectListView_TeamAuditingMembers.ItemChecked += ObjectListView_TeamAuditingMembers_ItemChecked; + this.buttonEx_TeamAuditingLoadFromCSV.Click += buttonEx_TeamAuditingLoadFromCSV_Click; + this.buttonEx_TeamAuditingExportToCSV.Click += buttonEx_TeamAuditingExportToCSV_Click; + this.buttonEx_TeamAuditingFilterMembers.Click += buttonEx_TeamAuditingFilterMembers_Click; + this.objectListView_TeamAuditingMembers.ItemChecked += ObjectListView_TeamAuditingMembers_ItemChecked; this.objectListView_TeamAuditingMembers.HeaderCheckBoxChanging += ObjectListView_TeamAuditingMembers_HeaderCheckBoxChanging; ComponentEventsWired = true; } @@ -77,8 +82,10 @@ public void UnWireComponentEvents() if (ComponentEventsWired) { this.buttonEx_TeamAuditingLoadTeamEvents.Click -= buttonEx_TeamAuditingLoadTeamAuditing_Click; - this.buttonEx_TeamAuditingLoadFromCSV.Click -= buttonEx_TeamAuditingLoadFromCSV_Click; - this.objectListView_TeamAuditingMembers.ItemChecked -= ObjectListView_TeamAuditingMembers_ItemChecked; + this.buttonEx_TeamAuditingLoadFromCSV.Click -= buttonEx_TeamAuditingLoadFromCSV_Click; + this.buttonEx_TeamAuditingExportToCSV.Click -= buttonEx_TeamAuditingExportToCSV_Click; + this.buttonEx_TeamAuditingFilterMembers.Click -= buttonEx_TeamAuditingFilterMembers_Click; + this.objectListView_TeamAuditingMembers.ItemChecked -= ObjectListView_TeamAuditingMembers_ItemChecked; this.objectListView_TeamAuditingMembers.HeaderCheckBoxChanging -= ObjectListView_TeamAuditingMembers_HeaderCheckBoxChanging; ComponentEventsWired = false; } @@ -91,21 +98,23 @@ public void Initialize() TopLevel = false; Dock = DockStyle.Fill; this.comboBox_EventCategory.Text = "All Events"; - EventCategory = comboBox_EventCategory.Text; - - // Initialize From picker to yesterday and set format - dateTimePickerFrom.Format = DateTimePickerFormat.Custom; - dateTimePickerFrom.CustomFormat = "MM-dd-yyyy hh:mm:ss"; - DateTime resultFrom = DateTime.Now.Subtract(TimeSpan.FromDays(1)); - dateTimePickerFrom.Value = resultFrom; - StartTime = resultFrom; - //set To picker to now and set format. - dateTimePickerTo.Format = DateTimePickerFormat.Custom; - dateTimePickerTo.CustomFormat = "MM-dd-yyyy hh:mm:ss"; - DateTime resultTo = DateTime.Now; - dateTimePickerTo.Value = resultTo; - EndTime = resultTo; - } + EventCategory = comboBox_EventCategory.Text; + + // Initialize From picker to yesterday and set format + dateTimePickerFrom.Format = DateTimePickerFormat.Custom; + dateTimePickerFrom.CustomFormat = "MM-dd-yyyy hh:mm:ss"; + DateTime resultFrom = DateTime.Now.Subtract(TimeSpan.FromDays(1)); + dateTimePickerFrom.Value = resultFrom; + StartTime = resultFrom; + //set To picker to now and set format. + dateTimePickerTo.Format = DateTimePickerFormat.Custom; + dateTimePickerTo.CustomFormat = "MM-dd-yyyy hh:mm:ss"; + DateTime resultTo = DateTime.Now; + dateTimePickerTo.Value = resultTo; + EndTime = resultTo; + + buttonEx_TeamAuditingExportToCSV.Enabled = false; + } private void InitializeOLVMembers() { @@ -178,12 +187,12 @@ private void InitializeOLVMembers() { return (model != null) ? model.Participants : string.Empty; }; - olv.GetColumn((int)OlvMembersIndex.Assets).AspectGetter - = delegate (TeamAuditingListViewItemModel model) - { - return (model != null) ? model.Assets : string.Empty; - }; - } + olv.GetColumn((int)OlvMembersIndex.Assets).AspectGetter + = delegate (TeamAuditingListViewItemModel model) + { + return (model != null) ? model.Assets : string.Empty; + }; + } public void ShowView() { @@ -211,6 +220,27 @@ public void RenderTeamAuditingList(List TeamAudit } } + public List RenderTeamAuditingFilteredMemberList(List members, List TeamAuditing, List newAudit) + { + if (textBoxTeamAuditing.Text != "Upload Member(s) Filter File...") + { + foreach (TeamAuditingListViewItemModel item in TeamAuditing) + { + foreach (MemberListViewItemModel member in members) + if (member.Email == item.Email) + { + newAudit.Add(item); + } + } + this.objectListView_TeamAuditingMembers.SetObjects(newAudit); + if (this.objectListView_TeamAuditingMembers.GetItemCount() == this.objectListView_TeamAuditingMembers.CheckedObjects.Count) + { + this.objectListView_TeamAuditingMembers.CheckHeaderCheckBox(olvColumnTeamAuditing_Timestamp); + } + } + return newAudit; + } + private void UncheckHeaderCheckbox(ObjectListView olv, OLVColumn col) { // unbind event temporarily and uncheck header box @@ -230,18 +260,47 @@ private void buttonEx_TeamAuditingLoadTeamAuditing_Click(object sender, EventArg { CommandLoadTeamEvents(sender, e); } + this.buttonEx_TeamAuditingExportToCSV.Enabled = true; + } + + private void buttonEx_TeamAuditingLoadFromCSV_Click(object sender, EventArgs e) + { + OpenFileDialog inputFile = new OpenFileDialog(); + inputFile.Title = "Please select a CSV file"; + inputFile.Filter = "CSV File|*.csv"; + DialogResult result = inputFile.ShowDialog(); + + if (result == DialogResult.OK) + { + textBoxTeamAuditing.Text = inputFile.FileName; + TeamAuditingInputFilePath = inputFile.FileName; + InvokeDataChanged(sender, e); + if (CommandLoadCSV != null) + { + CommandLoadCSV(sender, e); + } + } } - private void buttonEx_TeamAuditingLoadFromCSV_Click(object sender, EventArgs e) - { - InvokeDataChanged(sender, e); - if (CommandLoadCSV != null) - { - CommandLoadCSV(sender, e); - } - } + private void buttonEx_TeamAuditingExportToCSV_Click(object sender, EventArgs e) + { + InvokeDataChanged(sender, e); + if (CommandExportToCSV != null) + { + CommandExportToCSV(sender, e); + } + } - private void TextBox_TeamAuditingAccessToken_TextChanged(object sender, EventArgs e) + private void buttonEx_TeamAuditingFilterMembers_Click(object sender, EventArgs e) + { + InvokeDataChanged(sender, e); + if (CommandFilterMembers != null) + { + CommandFilterMembers(sender, e); + } + } + + private void TextBox_TeamAuditingAccessToken_TextChanged(object sender, EventArgs e) { AccessToken = this.textBox_TeamAuditingAccessToken.Text; } @@ -291,11 +350,11 @@ private void dateTimePickerTo_ValueChanged(object sender, EventArgs e) EndTime = dateTimePickerTo.Value; } - private void comboBox_EventCategory_SelectedIndexChanged(object sender, EventArgs e) - { - EventCategory = comboBox_EventCategory.Text; - } + private void comboBox_EventCategory_SelectedIndexChanged(object sender, EventArgs e) + { + EventCategory = comboBox_EventCategory.Text; + } - #endregion Events - } + #endregion Events + } } \ No newline at end of file diff --git a/Source/DfBAdminToolkit/View/TeamAuditingView.designer.cs b/Source/DfBAdminToolkit/View/TeamAuditingView.designer.cs index c91c68e..d609e51 100644 --- a/Source/DfBAdminToolkit/View/TeamAuditingView.designer.cs +++ b/Source/DfBAdminToolkit/View/TeamAuditingView.designer.cs @@ -31,22 +31,25 @@ protected override void Dispose(bool disposing) private void InitializeComponent() { this.components = new System.ComponentModel.Container(); - DfBAdminToolkit.Common.Component.Office2010White office2010White3 = new DfBAdminToolkit.Common.Component.Office2010White(); - DfBAdminToolkit.Common.Component.Office2010Blue office2010Blue3 = new DfBAdminToolkit.Common.Component.Office2010Blue(); + DfBAdminToolkit.Common.Component.Office2010White office2010White1 = new DfBAdminToolkit.Common.Component.Office2010White(); + DfBAdminToolkit.Common.Component.Office2010Blue office2010Blue1 = new DfBAdminToolkit.Common.Component.Office2010Blue(); this.tableLayoutPanel_TeamFolders = new System.Windows.Forms.TableLayoutPanel(); this.tableLayoutPanel_TeamFoldersCommandGroup = new System.Windows.Forms.TableLayoutPanel(); this.tableLayoutPanel_TeamFoldersAccessToken = new System.Windows.Forms.TableLayoutPanel(); this.label_TeamFoldersAccessToken = new System.Windows.Forms.Label(); this.textBox_TeamAuditingAccessToken = new DfBAdminToolkit.Common.Component.TextBoxEx(this.components); this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup = new System.Windows.Forms.TableLayoutPanel(); + this.buttonEx_TeamAuditingFilterMembers = new System.Windows.Forms.Button(); this.textBoxTeamAuditing = new System.Windows.Forms.TextBox(); this.buttonEx_TeamAuditingLoadFromCSV = new System.Windows.Forms.Button(); this.tableLayoutPanel_TeamFoldersSendEmailGroup = new System.Windows.Forms.TableLayoutPanel(); + this.label2 = new System.Windows.Forms.Label(); this.buttonEx_TeamAuditingLoadTeamEvents = new DfBAdminToolkit.Common.Component.ButtonEx(); this.dateTimePickerTo = new System.Windows.Forms.DateTimePicker(); this.dateTimePickerFrom = new System.Windows.Forms.DateTimePicker(); this.comboBox_EventCategory = new System.Windows.Forms.ComboBox(); this.label_Categories = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); this.tableLayoutPanel_TeamFoldersMembersGroup = new System.Windows.Forms.TableLayoutPanel(); this.objectListView_TeamAuditingMembers = new BrightIdeasSoftware.ObjectListView(); this.olvColumnTeamAuditing_Timestamp = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn())); @@ -63,8 +66,6 @@ private void InitializeComponent() this.olvColumnTeamAuditing_Assets = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn())); this.tableLayoutPanel_TeamFoldersProvisionCommandGroup = new System.Windows.Forms.TableLayoutPanel(); this.buttonEx_TeamAuditingExportToCSV = new DfBAdminToolkit.Common.Component.ButtonEx(); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); this.tableLayoutPanel_TeamFolders.SuspendLayout(); this.tableLayoutPanel_TeamFoldersCommandGroup.SuspendLayout(); this.tableLayoutPanel_TeamFoldersAccessToken.SuspendLayout(); @@ -85,21 +86,22 @@ private void InitializeComponent() this.tableLayoutPanel_TeamFolders.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel_TeamFolders.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.tableLayoutPanel_TeamFolders.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel_TeamFolders.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.tableLayoutPanel_TeamFolders.Name = "tableLayoutPanel_TeamFolders"; this.tableLayoutPanel_TeamFolders.RowCount = 4; - this.tableLayoutPanel_TeamFolders.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 73F)); - this.tableLayoutPanel_TeamFolders.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 5F)); + this.tableLayoutPanel_TeamFolders.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 112F)); + this.tableLayoutPanel_TeamFolders.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 8F)); this.tableLayoutPanel_TeamFolders.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel_TeamFolders.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 40F)); - this.tableLayoutPanel_TeamFolders.Size = new System.Drawing.Size(713, 435); + this.tableLayoutPanel_TeamFolders.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 62F)); + this.tableLayoutPanel_TeamFolders.Size = new System.Drawing.Size(1070, 669); this.tableLayoutPanel_TeamFolders.TabIndex = 1; // // tableLayoutPanel_TeamFoldersCommandGroup // this.tableLayoutPanel_TeamFoldersCommandGroup.ColumnCount = 4; this.tableLayoutPanel_TeamFoldersCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel_TeamFoldersCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 63F)); - this.tableLayoutPanel_TeamFoldersCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 190F)); + this.tableLayoutPanel_TeamFoldersCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel_TeamFoldersCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 285F)); this.tableLayoutPanel_TeamFoldersCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); this.tableLayoutPanel_TeamFoldersCommandGroup.Controls.Add(this.tableLayoutPanel_TeamFoldersAccessToken, 3, 0); this.tableLayoutPanel_TeamFoldersCommandGroup.Controls.Add(this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup, 0, 1); @@ -109,38 +111,40 @@ private void InitializeComponent() this.tableLayoutPanel_TeamFoldersCommandGroup.Controls.Add(this.label_Categories, 1, 0); this.tableLayoutPanel_TeamFoldersCommandGroup.Controls.Add(this.label1, 1, 1); this.tableLayoutPanel_TeamFoldersCommandGroup.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel_TeamFoldersCommandGroup.Location = new System.Drawing.Point(3, 3); + this.tableLayoutPanel_TeamFoldersCommandGroup.Location = new System.Drawing.Point(4, 5); + this.tableLayoutPanel_TeamFoldersCommandGroup.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.tableLayoutPanel_TeamFoldersCommandGroup.Name = "tableLayoutPanel_TeamFoldersCommandGroup"; this.tableLayoutPanel_TeamFoldersCommandGroup.RowCount = 2; this.tableLayoutPanel_TeamFoldersCommandGroup.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel_TeamFoldersCommandGroup.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel_TeamFoldersCommandGroup.Size = new System.Drawing.Size(707, 67); + this.tableLayoutPanel_TeamFoldersCommandGroup.Size = new System.Drawing.Size(1062, 102); this.tableLayoutPanel_TeamFoldersCommandGroup.TabIndex = 0; // // tableLayoutPanel_TeamFoldersAccessToken // this.tableLayoutPanel_TeamFoldersAccessToken.ColumnCount = 2; - this.tableLayoutPanel_TeamFoldersAccessToken.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 90F)); + this.tableLayoutPanel_TeamFoldersAccessToken.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 135F)); this.tableLayoutPanel_TeamFoldersAccessToken.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel_TeamFoldersAccessToken.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel_TeamFoldersAccessToken.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 30F)); this.tableLayoutPanel_TeamFoldersAccessToken.Controls.Add(this.label_TeamFoldersAccessToken, 0, 0); this.tableLayoutPanel_TeamFoldersAccessToken.Controls.Add(this.textBox_TeamAuditingAccessToken, 1, 0); this.tableLayoutPanel_TeamFoldersAccessToken.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel_TeamFoldersAccessToken.Location = new System.Drawing.Point(446, 1); - this.tableLayoutPanel_TeamFoldersAccessToken.Margin = new System.Windows.Forms.Padding(1); + this.tableLayoutPanel_TeamFoldersAccessToken.Location = new System.Drawing.Point(670, 2); + this.tableLayoutPanel_TeamFoldersAccessToken.Margin = new System.Windows.Forms.Padding(2); this.tableLayoutPanel_TeamFoldersAccessToken.Name = "tableLayoutPanel_TeamFoldersAccessToken"; this.tableLayoutPanel_TeamFoldersAccessToken.RowCount = 1; this.tableLayoutPanel_TeamFoldersAccessToken.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel_TeamFoldersAccessToken.Size = new System.Drawing.Size(260, 25); + this.tableLayoutPanel_TeamFoldersAccessToken.Size = new System.Drawing.Size(390, 46); this.tableLayoutPanel_TeamFoldersAccessToken.TabIndex = 0; // // label_TeamFoldersAccessToken // this.label_TeamFoldersAccessToken.AutoSize = true; this.label_TeamFoldersAccessToken.Dock = System.Windows.Forms.DockStyle.Fill; - this.label_TeamFoldersAccessToken.Location = new System.Drawing.Point(3, 0); + this.label_TeamFoldersAccessToken.Location = new System.Drawing.Point(4, 0); + this.label_TeamFoldersAccessToken.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label_TeamFoldersAccessToken.Name = "label_TeamFoldersAccessToken"; - this.label_TeamFoldersAccessToken.Size = new System.Drawing.Size(84, 25); + this.label_TeamFoldersAccessToken.Size = new System.Drawing.Size(127, 46); this.label_TeamFoldersAccessToken.TabIndex = 0; this.label_TeamFoldersAccessToken.Text = "Access Token"; this.label_TeamFoldersAccessToken.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; @@ -150,44 +154,61 @@ private void InitializeComponent() // this.textBox_TeamAuditingAccessToken.Dock = System.Windows.Forms.DockStyle.Fill; this.textBox_TeamAuditingAccessToken.FileFilter = null; - this.textBox_TeamAuditingAccessToken.Location = new System.Drawing.Point(93, 3); + this.textBox_TeamAuditingAccessToken.Location = new System.Drawing.Point(139, 5); + this.textBox_TeamAuditingAccessToken.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.textBox_TeamAuditingAccessToken.Name = "textBox_TeamAuditingAccessToken"; - this.textBox_TeamAuditingAccessToken.Size = new System.Drawing.Size(164, 22); + this.textBox_TeamAuditingAccessToken.Size = new System.Drawing.Size(247, 22); this.textBox_TeamAuditingAccessToken.TabIndex = 1; this.textBox_TeamAuditingAccessToken.Visible = false; // // tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup // - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.ColumnCount = 3; - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 155F)); - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 41F)); - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 58F)); + this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.ColumnCount = 4; + this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 252F)); + this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 42F)); + this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 80F)); + this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 87F)); + this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.Controls.Add(this.buttonEx_TeamAuditingFilterMembers, 2, 0); this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.Controls.Add(this.textBoxTeamAuditing, 0, 0); this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.Controls.Add(this.buttonEx_TeamAuditingLoadFromCSV, 1, 0); this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.Location = new System.Drawing.Point(3, 30); + this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.Location = new System.Drawing.Point(4, 55); + this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.Name = "tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup"; this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.RowCount = 1; this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.Size = new System.Drawing.Size(186, 34); + this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.Size = new System.Drawing.Size(313, 52); this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.TabIndex = 2; // + // buttonEx_TeamAuditingFilterMembers + // + this.buttonEx_TeamAuditingFilterMembers.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.buttonEx_TeamAuditingFilterMembers.Location = new System.Drawing.Point(298, 6); + this.buttonEx_TeamAuditingFilterMembers.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.buttonEx_TeamAuditingFilterMembers.Name = "buttonEx_TeamAuditingFilterMembers"; + this.buttonEx_TeamAuditingFilterMembers.Size = new System.Drawing.Size(72, 40); + this.buttonEx_TeamAuditingFilterMembers.TabIndex = 10; + this.buttonEx_TeamAuditingFilterMembers.Text = "Filter"; + this.buttonEx_TeamAuditingFilterMembers.UseVisualStyleBackColor = true; + // // textBoxTeamAuditing // this.textBoxTeamAuditing.AcceptsTab = true; - this.textBoxTeamAuditing.Dock = System.Windows.Forms.DockStyle.Bottom; - this.textBoxTeamAuditing.Location = new System.Drawing.Point(3, 9); + this.textBoxTeamAuditing.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxTeamAuditing.Location = new System.Drawing.Point(4, 15); + this.textBoxTeamAuditing.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.textBoxTeamAuditing.Name = "textBoxTeamAuditing"; - this.textBoxTeamAuditing.Size = new System.Drawing.Size(149, 22); + this.textBoxTeamAuditing.Size = new System.Drawing.Size(244, 22); this.textBoxTeamAuditing.TabIndex = 8; - this.textBoxTeamAuditing.Text = "Select Member File..."; + this.textBoxTeamAuditing.Text = "Upload Member(s) Filter File..."; // // buttonEx_TeamAuditingLoadFromCSV // - this.buttonEx_TeamAuditingLoadFromCSV.Dock = System.Windows.Forms.DockStyle.Bottom; - this.buttonEx_TeamAuditingLoadFromCSV.Location = new System.Drawing.Point(158, 5); + this.buttonEx_TeamAuditingLoadFromCSV.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.buttonEx_TeamAuditingLoadFromCSV.Location = new System.Drawing.Point(256, 6); + this.buttonEx_TeamAuditingLoadFromCSV.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.buttonEx_TeamAuditingLoadFromCSV.Name = "buttonEx_TeamAuditingLoadFromCSV"; - this.buttonEx_TeamAuditingLoadFromCSV.Size = new System.Drawing.Size(35, 26); + this.buttonEx_TeamAuditingLoadFromCSV.Size = new System.Drawing.Size(34, 40); this.buttonEx_TeamAuditingLoadFromCSV.TabIndex = 9; this.buttonEx_TeamAuditingLoadFromCSV.Text = "..."; this.buttonEx_TeamAuditingLoadFromCSV.UseVisualStyleBackColor = true; @@ -195,44 +216,57 @@ private void InitializeComponent() // tableLayoutPanel_TeamFoldersSendEmailGroup // this.tableLayoutPanel_TeamFoldersSendEmailGroup.ColumnCount = 3; - this.tableLayoutPanel_TeamFoldersSendEmailGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 30F)); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 158F)); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 70F)); + this.tableLayoutPanel_TeamFoldersSendEmailGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 45F)); + this.tableLayoutPanel_TeamFoldersSendEmailGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 237F)); + this.tableLayoutPanel_TeamFoldersSendEmailGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 105F)); this.tableLayoutPanel_TeamFoldersSendEmailGroup.Controls.Add(this.label2, 0, 0); this.tableLayoutPanel_TeamFoldersSendEmailGroup.Controls.Add(this.buttonEx_TeamAuditingLoadTeamEvents, 2, 0); this.tableLayoutPanel_TeamFoldersSendEmailGroup.Controls.Add(this.dateTimePickerTo, 1, 0); this.tableLayoutPanel_TeamFoldersSendEmailGroup.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel_TeamFoldersSendEmailGroup.Location = new System.Drawing.Point(448, 30); + this.tableLayoutPanel_TeamFoldersSendEmailGroup.Location = new System.Drawing.Point(672, 55); + this.tableLayoutPanel_TeamFoldersSendEmailGroup.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.tableLayoutPanel_TeamFoldersSendEmailGroup.Name = "tableLayoutPanel_TeamFoldersSendEmailGroup"; this.tableLayoutPanel_TeamFoldersSendEmailGroup.RowCount = 1; - this.tableLayoutPanel_TeamFoldersSendEmailGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 34F)); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.Size = new System.Drawing.Size(256, 34); + this.tableLayoutPanel_TeamFoldersSendEmailGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 52F)); + this.tableLayoutPanel_TeamFoldersSendEmailGroup.Size = new System.Drawing.Size(386, 52); this.tableLayoutPanel_TeamFoldersSendEmailGroup.TabIndex = 3; // + // label2 + // + this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(4, 19); + this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(37, 13); + this.label2.TabIndex = 9; + this.label2.Text = "To:"; + // // buttonEx_TeamAuditingLoadTeamEvents // this.buttonEx_TeamAuditingLoadTeamEvents.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - office2010White3.BorderColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(72)))), ((int)(((byte)(161))))); - office2010White3.BorderColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(135)))), ((int)(((byte)(228))))); - office2010White3.ButtonMouseOverColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(199)))), ((int)(((byte)(87))))); - office2010White3.ButtonMouseOverColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(243)))), ((int)(((byte)(215))))); - office2010White3.ButtonMouseOverColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(249)))), ((int)(((byte)(225)))), ((int)(((byte)(137))))); - office2010White3.ButtonMouseOverColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(251)))), ((int)(((byte)(249)))), ((int)(((byte)(224))))); - office2010White3.ButtonNormalColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(154)))), ((int)(((byte)(154)))), ((int)(((byte)(154))))); - office2010White3.ButtonNormalColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); - office2010White3.ButtonNormalColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235))))); - office2010White3.ButtonNormalColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); - office2010White3.ButtonSelectedColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(199)))), ((int)(((byte)(87))))); - office2010White3.ButtonSelectedColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(243)))), ((int)(((byte)(215))))); - office2010White3.ButtonSelectedColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(229)))), ((int)(((byte)(117))))); - office2010White3.ButtonSelectedColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(216)))), ((int)(((byte)(107))))); - office2010White3.HoverTextColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(57)))), ((int)(((byte)(91))))); - office2010White3.SelectedTextColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(57)))), ((int)(((byte)(91))))); - office2010White3.TextColor = System.Drawing.Color.Black; - this.buttonEx_TeamAuditingLoadTeamEvents.ColorTable = office2010White3; - this.buttonEx_TeamAuditingLoadTeamEvents.Location = new System.Drawing.Point(191, 5); + office2010White1.BorderColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(72)))), ((int)(((byte)(161))))); + office2010White1.BorderColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(135)))), ((int)(((byte)(228))))); + office2010White1.ButtonMouseOverColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(199)))), ((int)(((byte)(87))))); + office2010White1.ButtonMouseOverColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(243)))), ((int)(((byte)(215))))); + office2010White1.ButtonMouseOverColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(249)))), ((int)(((byte)(225)))), ((int)(((byte)(137))))); + office2010White1.ButtonMouseOverColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(251)))), ((int)(((byte)(249)))), ((int)(((byte)(224))))); + office2010White1.ButtonNormalColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(154)))), ((int)(((byte)(154)))), ((int)(((byte)(154))))); + office2010White1.ButtonNormalColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + office2010White1.ButtonNormalColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235))))); + office2010White1.ButtonNormalColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + office2010White1.ButtonSelectedColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(199)))), ((int)(((byte)(87))))); + office2010White1.ButtonSelectedColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(243)))), ((int)(((byte)(215))))); + office2010White1.ButtonSelectedColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(229)))), ((int)(((byte)(117))))); + office2010White1.ButtonSelectedColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(216)))), ((int)(((byte)(107))))); + office2010White1.HoverTextColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(57)))), ((int)(((byte)(91))))); + office2010White1.SelectedTextColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(57)))), ((int)(((byte)(91))))); + office2010White1.TextColor = System.Drawing.Color.Black; + this.buttonEx_TeamAuditingLoadTeamEvents.ColorTable = office2010White1; + this.buttonEx_TeamAuditingLoadTeamEvents.Location = new System.Drawing.Point(286, 7); + this.buttonEx_TeamAuditingLoadTeamEvents.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.buttonEx_TeamAuditingLoadTeamEvents.Name = "buttonEx_TeamAuditingLoadTeamEvents"; - this.buttonEx_TeamAuditingLoadTeamEvents.Size = new System.Drawing.Size(64, 24); + this.buttonEx_TeamAuditingLoadTeamEvents.Size = new System.Drawing.Size(97, 37); this.buttonEx_TeamAuditingLoadTeamEvents.TabIndex = 4; this.buttonEx_TeamAuditingLoadTeamEvents.Text = "Load"; this.buttonEx_TeamAuditingLoadTeamEvents.Theme = DfBAdminToolkit.Common.Component.Theme.MSOffice2010_White; @@ -241,18 +275,20 @@ private void InitializeComponent() // dateTimePickerTo // this.dateTimePickerTo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.dateTimePickerTo.Location = new System.Drawing.Point(33, 6); + this.dateTimePickerTo.Location = new System.Drawing.Point(49, 15); + this.dateTimePickerTo.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.dateTimePickerTo.Name = "dateTimePickerTo"; - this.dateTimePickerTo.Size = new System.Drawing.Size(152, 22); + this.dateTimePickerTo.Size = new System.Drawing.Size(229, 22); this.dateTimePickerTo.TabIndex = 6; this.dateTimePickerTo.ValueChanged += new System.EventHandler(this.dateTimePickerTo_ValueChanged); // // dateTimePickerFrom // this.dateTimePickerFrom.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.dateTimePickerFrom.Location = new System.Drawing.Point(258, 36); + this.dateTimePickerFrom.Location = new System.Drawing.Point(387, 70); + this.dateTimePickerFrom.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.dateTimePickerFrom.Name = "dateTimePickerFrom"; - this.dateTimePickerFrom.Size = new System.Drawing.Size(172, 22); + this.dateTimePickerFrom.Size = new System.Drawing.Size(277, 22); this.dateTimePickerFrom.TabIndex = 5; this.dateTimePickerFrom.ValueChanged += new System.EventHandler(this.dateTimePickerFrom_ValueChanged); // @@ -293,10 +329,9 @@ private void InitializeComponent() "Team_Policies", "Team_Profile", "TFA"}); - this.comboBox_EventCategory.Location = new System.Drawing.Point(257, 3); - this.comboBox_EventCategory.Margin = new System.Windows.Forms.Padding(2); + this.comboBox_EventCategory.Location = new System.Drawing.Point(386, 14); this.comboBox_EventCategory.Name = "comboBox_EventCategory"; - this.comboBox_EventCategory.Size = new System.Drawing.Size(186, 21); + this.comboBox_EventCategory.Size = new System.Drawing.Size(279, 21); this.comboBox_EventCategory.TabIndex = 6; this.comboBox_EventCategory.SelectedIndexChanged += new System.EventHandler(this.comboBox_EventCategory_SelectedIndexChanged); // @@ -304,24 +339,36 @@ private void InitializeComponent() // this.label_Categories.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.label_Categories.AutoSize = true; - this.label_Categories.Location = new System.Drawing.Point(194, 7); - this.label_Categories.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label_Categories.Location = new System.Drawing.Point(324, 18); this.label_Categories.Name = "label_Categories"; - this.label_Categories.Size = new System.Drawing.Size(59, 13); + this.label_Categories.Size = new System.Drawing.Size(56, 13); this.label_Categories.TabIndex = 7; this.label_Categories.Text = "Category:"; // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(325, 74); + this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(54, 13); + this.label1.TabIndex = 8; + this.label1.Text = "From:"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // // tableLayoutPanel_TeamFoldersMembersGroup // this.tableLayoutPanel_TeamFoldersMembersGroup.ColumnCount = 1; this.tableLayoutPanel_TeamFoldersMembersGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel_TeamFoldersMembersGroup.Controls.Add(this.objectListView_TeamAuditingMembers, 0, 0); this.tableLayoutPanel_TeamFoldersMembersGroup.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel_TeamFoldersMembersGroup.Location = new System.Drawing.Point(3, 81); + this.tableLayoutPanel_TeamFoldersMembersGroup.Location = new System.Drawing.Point(4, 125); + this.tableLayoutPanel_TeamFoldersMembersGroup.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.tableLayoutPanel_TeamFoldersMembersGroup.Name = "tableLayoutPanel_TeamFoldersMembersGroup"; this.tableLayoutPanel_TeamFoldersMembersGroup.RowCount = 1; this.tableLayoutPanel_TeamFoldersMembersGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel_TeamFoldersMembersGroup.Size = new System.Drawing.Size(707, 311); + this.tableLayoutPanel_TeamFoldersMembersGroup.Size = new System.Drawing.Size(1062, 477); this.tableLayoutPanel_TeamFoldersMembersGroup.TabIndex = 1; // // objectListView_TeamAuditingMembers @@ -361,10 +408,11 @@ private void InitializeComponent() this.objectListView_TeamAuditingMembers.HasCollapsibleGroups = false; this.objectListView_TeamAuditingMembers.HighlightBackgroundColor = System.Drawing.Color.Empty; this.objectListView_TeamAuditingMembers.HighlightForegroundColor = System.Drawing.Color.Empty; - this.objectListView_TeamAuditingMembers.Location = new System.Drawing.Point(3, 3); + this.objectListView_TeamAuditingMembers.Location = new System.Drawing.Point(4, 5); + this.objectListView_TeamAuditingMembers.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.objectListView_TeamAuditingMembers.Name = "objectListView_TeamAuditingMembers"; this.objectListView_TeamAuditingMembers.ShowGroups = false; - this.objectListView_TeamAuditingMembers.Size = new System.Drawing.Size(701, 305); + this.objectListView_TeamAuditingMembers.Size = new System.Drawing.Size(1054, 467); this.objectListView_TeamAuditingMembers.Sorting = System.Windows.Forms.SortOrder.Descending; this.objectListView_TeamAuditingMembers.TabIndex = 1; this.objectListView_TeamAuditingMembers.UseCompatibleStateImageBehavior = false; @@ -460,82 +508,63 @@ private void InitializeComponent() // tableLayoutPanel_TeamFoldersProvisionCommandGroup // this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnCount = 9; + this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 144F)); this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 96F)); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 64F)); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 76F)); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 25F)); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 120F)); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 64F)); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 114F)); + this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 38F)); + this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 180F)); + this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 96F)); + this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 30F)); this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 132F)); + this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 250F)); this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.Controls.Add(this.buttonEx_TeamAuditingExportToCSV, 9, 0); this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.Location = new System.Drawing.Point(3, 397); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.Location = new System.Drawing.Point(4, 610); + this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.Name = "tableLayoutPanel_TeamFoldersProvisionCommandGroup"; this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.RowCount = 1; - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F)); - this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.Size = new System.Drawing.Size(707, 36); + this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 56F)); + this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.Size = new System.Drawing.Size(1062, 56); this.tableLayoutPanel_TeamFoldersProvisionCommandGroup.TabIndex = 3; // // buttonEx_TeamAuditingExportToCSV // - office2010Blue3.BorderColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(72)))), ((int)(((byte)(161))))); - office2010Blue3.BorderColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(135)))), ((int)(((byte)(228))))); - office2010Blue3.ButtonMouseOverColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(199)))), ((int)(((byte)(87))))); - office2010Blue3.ButtonMouseOverColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(243)))), ((int)(((byte)(215))))); - office2010Blue3.ButtonMouseOverColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(249)))), ((int)(((byte)(225)))), ((int)(((byte)(137))))); - office2010Blue3.ButtonMouseOverColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(251)))), ((int)(((byte)(249)))), ((int)(((byte)(224))))); - office2010Blue3.ButtonNormalColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(72)))), ((int)(((byte)(161))))); - office2010Blue3.ButtonNormalColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(135)))), ((int)(((byte)(228))))); - office2010Blue3.ButtonNormalColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(41)))), ((int)(((byte)(97)))), ((int)(((byte)(181))))); - office2010Blue3.ButtonNormalColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(62)))), ((int)(((byte)(125)))), ((int)(((byte)(219))))); - office2010Blue3.ButtonSelectedColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(199)))), ((int)(((byte)(87))))); - office2010Blue3.ButtonSelectedColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(243)))), ((int)(((byte)(215))))); - office2010Blue3.ButtonSelectedColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(229)))), ((int)(((byte)(117))))); - office2010Blue3.ButtonSelectedColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(216)))), ((int)(((byte)(107))))); - office2010Blue3.HoverTextColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(57)))), ((int)(((byte)(91))))); - office2010Blue3.SelectedTextColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(57)))), ((int)(((byte)(91))))); - office2010Blue3.TextColor = System.Drawing.Color.White; - this.buttonEx_TeamAuditingExportToCSV.ColorTable = office2010Blue3; + office2010Blue1.BorderColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(72)))), ((int)(((byte)(161))))); + office2010Blue1.BorderColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(135)))), ((int)(((byte)(228))))); + office2010Blue1.ButtonMouseOverColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(199)))), ((int)(((byte)(87))))); + office2010Blue1.ButtonMouseOverColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(243)))), ((int)(((byte)(215))))); + office2010Blue1.ButtonMouseOverColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(249)))), ((int)(((byte)(225)))), ((int)(((byte)(137))))); + office2010Blue1.ButtonMouseOverColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(251)))), ((int)(((byte)(249)))), ((int)(((byte)(224))))); + office2010Blue1.ButtonNormalColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(72)))), ((int)(((byte)(161))))); + office2010Blue1.ButtonNormalColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(135)))), ((int)(((byte)(228))))); + office2010Blue1.ButtonNormalColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(41)))), ((int)(((byte)(97)))), ((int)(((byte)(181))))); + office2010Blue1.ButtonNormalColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(62)))), ((int)(((byte)(125)))), ((int)(((byte)(219))))); + office2010Blue1.ButtonSelectedColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(199)))), ((int)(((byte)(87))))); + office2010Blue1.ButtonSelectedColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(243)))), ((int)(((byte)(215))))); + office2010Blue1.ButtonSelectedColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(229)))), ((int)(((byte)(117))))); + office2010Blue1.ButtonSelectedColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(216)))), ((int)(((byte)(107))))); + office2010Blue1.HoverTextColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(57)))), ((int)(((byte)(91))))); + office2010Blue1.SelectedTextColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(57)))), ((int)(((byte)(91))))); + office2010Blue1.TextColor = System.Drawing.Color.White; + this.buttonEx_TeamAuditingExportToCSV.ColorTable = office2010Blue1; this.buttonEx_TeamAuditingExportToCSV.Dock = System.Windows.Forms.DockStyle.Fill; - this.buttonEx_TeamAuditingExportToCSV.Location = new System.Drawing.Point(578, 3); + this.buttonEx_TeamAuditingExportToCSV.Location = new System.Drawing.Point(816, 5); + this.buttonEx_TeamAuditingExportToCSV.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.buttonEx_TeamAuditingExportToCSV.Name = "buttonEx_TeamAuditingExportToCSV"; - this.buttonEx_TeamAuditingExportToCSV.Size = new System.Drawing.Size(126, 30); + this.buttonEx_TeamAuditingExportToCSV.Size = new System.Drawing.Size(242, 46); this.buttonEx_TeamAuditingExportToCSV.TabIndex = 12; - this.buttonEx_TeamAuditingExportToCSV.Text = "Export Team Folders "; + this.buttonEx_TeamAuditingExportToCSV.Text = "Export Selected Items TO CSV"; this.buttonEx_TeamAuditingExportToCSV.Theme = DfBAdminToolkit.Common.Component.Theme.MSOffice2010_Blue; this.buttonEx_TeamAuditingExportToCSV.UseVisualStyleBackColor = true; // - // label1 - // - this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(220, 45); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(35, 13); - this.label1.TabIndex = 8; - this.label1.Text = "From:"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label2 - // - this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(3, 10); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(24, 13); - this.label2.TabIndex = 9; - this.label2.Text = "To:"; - // // TeamAuditingView // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(713, 435); + this.ClientSize = new System.Drawing.Size(1070, 669); this.Controls.Add(this.tableLayoutPanel_TeamFolders); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.Name = "TeamAuditingView"; this.Text = "TeamFoldersView"; this.tableLayoutPanel_TeamFolders.ResumeLayout(false); @@ -588,5 +617,6 @@ private void InitializeComponent() private BrightIdeasSoftware.OLVColumn olvColumnTEamAuditing_Country; private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button buttonEx_TeamAuditingFilterMembers; } } \ No newline at end of file diff --git a/Source/DfBAdminToolkit/View/TeamHealthView.cs b/Source/DfBAdminToolkit/View/TeamHealthView.cs index f475497..4e06a8f 100644 --- a/Source/DfBAdminToolkit/View/TeamHealthView.cs +++ b/Source/DfBAdminToolkit/View/TeamHealthView.cs @@ -8,6 +8,7 @@ using System.Linq; using System.Threading; using System.Windows.Forms; + using System.Windows.Forms.DataVisualization.Charting; public partial class TeamHealthView : Form, ITeamHealthView { @@ -24,6 +25,7 @@ public TeamHealthView() { InitializeComponent(); Initialize(); + InitRoleTooltips(); WireComponentEvents(); } @@ -60,6 +62,33 @@ public void Initialize() this.aquaGaugeUsers.Visible = false; } + private void InitRoleTooltips() + { + //create tooltips for the health stat items + ToolTip ttTotalUsage = new ToolTip(); + ToolTip ttSharedUsage = new ToolTip(); + ToolTip ttUnsharedUsage = new ToolTip(); + ToolTip ttSharedFolders = new ToolTip(); + ToolTip ttActiveSharedFolders = new ToolTip(); + ToolTip ttActiveUsers = new ToolTip(); + ToolTip ttAdds = new ToolTip(); + ToolTip ttEdits = new ToolTip(); + ToolTip ttDeletes = new ToolTip(); + ToolTip ttActiveDevices = new ToolTip(); + ToolTip ttUsers = new ToolTip(); + ttTotalUsage.SetToolTip(this.labelTotalUsage, Tooltips.TOTAL_USAGE); + ttSharedUsage.SetToolTip(this.labelSharedUsage, Tooltips.SHARED_USAGE); + ttUnsharedUsage.SetToolTip(this.labelUnsharedUsage, Tooltips.UNSHARED_USAGE); + ttSharedFolders.SetToolTip(this.labelSharedFolders, Tooltips.SHARED_FOLDERS); + ttActiveUsers.SetToolTip(this.labelActiveUsers, Tooltips.ACTIVE_USERS); + ttActiveSharedFolders.SetToolTip(this.labelActiveShared, Tooltips.ACTIVE_SHARED_FOLDERS); + ttAdds.SetToolTip(this.labelAdds, Tooltips.FILE_ADDS); + ttEdits.SetToolTip(this.labelEdits, Tooltips.FILE_EDITS); + ttDeletes.SetToolTip(this.labelDeletes, Tooltips.FILE_DELETES); + ttActiveDevices.SetToolTip(this.chartPieDevices, Tooltips.ACTIVE_DEVICES); + ttUsers.SetToolTip(this.aquaGaugeUsers, Tooltips.USERS); + } + public void ShowView() { this.Show(); @@ -80,13 +109,98 @@ public void RefreshAccessToken() public void LoadViewHealthItems(ITeamHealthModel model) { //populate view controls for everything in model - labelRefreshDateTime.Text = "Last refresh: " + model.RefreshDateTime.ToString(); - labelTeamName.Text = model.TeamName; + labelRefreshDateTime.Text = "Last Refresh: " + model.RefreshDateTime.ToString(); + labelTeamName.Text = "Team: " + model.TeamName; + labelLicenses.Text = "Total Licenses: " + model.LicensedUsers; + labelProvisioned.Text = "Total Provisioned: " + model.ProvisionedUsers; + tableLayoutPanelStats.Visible = true; + //load users gauge with data this.aquaGaugeUsers.Visible = true; aquaGaugeUsers.MinValue = 0; aquaGaugeUsers.MaxValue = (float)Convert.ToDouble(model.LicensedUsers); aquaGaugeUsers.Value = (float)Convert.ToDouble(model.ProvisionedUsers); + + //load 3D pie chart with Active Devices info + chartPieDevices.Series.Clear(); + chartPieDevices.Palette = ChartColorPalette.Bright; + chartPieDevices.BackColor = Color.Transparent; + chartPieDevices.Titles.Clear(); + chartPieDevices.Titles.Add("Active Devices In Past Week: " + model.total); + chartPieDevices.ChartAreas[0].BackColor = Color.Transparent; + chartPieDevices.ChartAreas[0].Area3DStyle.Enable3D = true; + chartPieDevices.ChartAreas[0].Area3DStyle.WallWidth = 0; + Series seriesDevices = new Series + { + Name = "Devices", + IsVisibleInLegend = true, + Color = Color.Green, + Font = new Font(Font.Name, 7, FontStyle.Regular), + ChartType = SeriesChartType.Pie + }; + chartPieDevices.Series.Add(seriesDevices); + //pie chart model values here + seriesDevices.Points.Add(Convert.ToDouble(model.windows)); + seriesDevices.Points.Add(Convert.ToDouble(model.macos)); + seriesDevices.Points.Add(Convert.ToDouble(model.linux)); + seriesDevices.Points.Add(Convert.ToDouble(model.ios)); + seriesDevices.Points.Add(Convert.ToDouble(model.android)); + seriesDevices.Points.Add(Convert.ToDouble(model.other)); + + var p1 = seriesDevices.Points[0]; + if (model.windows != "0") + { + p1.AxisLabel = model.windows + "%"; + } + p1.LegendText = "Windows OS"; + + var p2 = seriesDevices.Points[1]; + if (model.macos != "0") + { + p2.AxisLabel = model.macos + "%"; + } + p2.LegendText = "Mac OS"; + + var p3 = seriesDevices.Points[2]; + if (model.linux != "0") + { + p3.AxisLabel = model.linux + "%"; + } + p3.LegendText = "Linux"; + + var p4 = seriesDevices.Points[3]; + if (model.ios != "0") + { + p4.AxisLabel = model.ios + "%"; + } + p4.LegendText = "iOS"; + + var p5 = seriesDevices.Points[4]; + if (model.android != "0") + { + p5.AxisLabel = model.android + "%"; + } + p5.LegendText = "Android"; + + var p6 = seriesDevices.Points[5]; + if (model.other != "0") + { + p6.AxisLabel = model.other + "%"; + } + p6.LegendText = "Other"; + + chartPieDevices.Invalidate(); + + //Misc stats + labelActiveShared.Text = model.ActiveSharedFolders7Day; + labelActiveUsers.Text = model.ActiveUsers7Day; + labelAdds.Text = model.Adds; + labelDeletes.Text = model.Deletes; + labelEdits.Text = model.Edits; + labelSharedFolders.Text = model.SharedFolders; + labelSharedUsage.Text = model.SharedUsage; + labelTotalUsage.Text = model.TotalUsage; + labelUnsharedUsage.Text = model.UnsharedUsage; } #endregion Slots @@ -116,5 +230,6 @@ private void InvokeDataChanged(object sender, EventArgs e) } #endregion Events + } } \ No newline at end of file diff --git a/Source/DfBAdminToolkit/View/TeamHealthView.designer.cs b/Source/DfBAdminToolkit/View/TeamHealthView.designer.cs index 47260ab..289744d 100644 --- a/Source/DfBAdminToolkit/View/TeamHealthView.designer.cs +++ b/Source/DfBAdminToolkit/View/TeamHealthView.designer.cs @@ -31,143 +31,274 @@ protected override void Dispose(bool disposing) private void InitializeComponent() { this.components = new System.ComponentModel.Container(); - DfBAdminToolkit.Common.Component.Office2010White office2010White1 = new DfBAdminToolkit.Common.Component.Office2010White(); System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend(); System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series(); - this.tableLayoutPanel_TeamFolders = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel_TeamFoldersCommandGroup = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel_TeamFoldersAccessToken = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel_TeamFoldersSendEmailGroup = new System.Windows.Forms.TableLayoutPanel(); + DfBAdminToolkit.Common.Component.Office2010White office2010White1 = new DfBAdminToolkit.Common.Component.Office2010White(); + System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea2 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); + System.Windows.Forms.DataVisualization.Charting.Legend legend2 = new System.Windows.Forms.DataVisualization.Charting.Legend(); + System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series(); + this.tableLayoutPanel_TeamHealth = new System.Windows.Forms.TableLayoutPanel(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.chart1 = new System.Windows.Forms.DataVisualization.Charting.Chart(); + this.tableLayoutPanel_TeamHealthCommandGroup = new System.Windows.Forms.TableLayoutPanel(); + this.tableLayoutPanel_TeamHealthAccessToken = new System.Windows.Forms.TableLayoutPanel(); + this.textBox_TeamHealthAccessToken = new DfBAdminToolkit.Common.Component.TextBoxEx(this.components); + this.tableLayoutPanel_TeamHealthUsersGroup = new System.Windows.Forms.TableLayoutPanel(); + this.labelLicenses = new System.Windows.Forms.Label(); + this.labelProvisioned = new System.Windows.Forms.Label(); + this.tableLayoutPanel_TeamHealthSendEmailGroup = new System.Windows.Forms.TableLayoutPanel(); + this.buttonEx_TeamHealthRefresh = new DfBAdminToolkit.Common.Component.ButtonEx(); this.labelRefreshDateTime = new System.Windows.Forms.Label(); this.labelTeamName = new System.Windows.Forms.Label(); this.tableLayoutPanel_TeamFoldersMembersGroup = new System.Windows.Forms.TableLayoutPanel(); this.tableLayoutPanelGauge = new System.Windows.Forms.TableLayoutPanel(); this.aquaGaugeUsers = new AquaControls.AquaGauge(); - this.textBox_TeamHealthAccessToken = new DfBAdminToolkit.Common.Component.TextBoxEx(this.components); - this.buttonEx_TeamHealthRefresh = new DfBAdminToolkit.Common.Component.ButtonEx(); - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); this.chartPieDevices = new System.Windows.Forms.DataVisualization.Charting.Chart(); - this.tableLayoutPanel_TeamFolders.SuspendLayout(); - this.tableLayoutPanel_TeamFoldersCommandGroup.SuspendLayout(); - this.tableLayoutPanel_TeamFoldersAccessToken.SuspendLayout(); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.SuspendLayout(); + this.tableLayoutPanelStats = new System.Windows.Forms.TableLayoutPanel(); + this.labelTotalUsage = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.labelSharedUsage = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.labelUnsharedUsage = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.labelSharedFolders = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.labelActiveShared = new System.Windows.Forms.Label(); + this.label11 = new System.Windows.Forms.Label(); + this.labelActiveUsers = new System.Windows.Forms.Label(); + this.label13 = new System.Windows.Forms.Label(); + this.labelAdds = new System.Windows.Forms.Label(); + this.label15 = new System.Windows.Forms.Label(); + this.labelEdits = new System.Windows.Forms.Label(); + this.label17 = new System.Windows.Forms.Label(); + this.labelDeletes = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.tableLayoutPanel_TeamHealth.SuspendLayout(); + this.tableLayoutPanel2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.chart1)).BeginInit(); + this.tableLayoutPanel_TeamHealthCommandGroup.SuspendLayout(); + this.tableLayoutPanel_TeamHealthAccessToken.SuspendLayout(); + this.tableLayoutPanel_TeamHealthUsersGroup.SuspendLayout(); + this.tableLayoutPanel_TeamHealthSendEmailGroup.SuspendLayout(); this.tableLayoutPanelGauge.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.chartPieDevices)).BeginInit(); + this.tableLayoutPanelStats.SuspendLayout(); this.SuspendLayout(); // - // tableLayoutPanel_TeamFolders - // - this.tableLayoutPanel_TeamFolders.ColumnCount = 1; - this.tableLayoutPanel_TeamFolders.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel_TeamFolders.Controls.Add(this.tableLayoutPanel_TeamFoldersCommandGroup, 0, 0); - this.tableLayoutPanel_TeamFolders.Controls.Add(this.tableLayoutPanel_TeamFoldersMembersGroup, 0, 2); - this.tableLayoutPanel_TeamFolders.Controls.Add(this.tableLayoutPanelGauge, 0, 1); - this.tableLayoutPanel_TeamFolders.Controls.Add(this.tableLayoutPanel1, 0, 3); - this.tableLayoutPanel_TeamFolders.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel_TeamFolders.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tableLayoutPanel_TeamFolders.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel_TeamFolders.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.tableLayoutPanel_TeamFolders.Name = "tableLayoutPanel_TeamFolders"; - this.tableLayoutPanel_TeamFolders.RowCount = 5; - this.tableLayoutPanel_TeamFolders.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 108F)); - this.tableLayoutPanel_TeamFolders.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 460F)); - this.tableLayoutPanel_TeamFolders.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel_TeamFolders.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 12F)); - this.tableLayoutPanel_TeamFolders.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 12F)); - this.tableLayoutPanel_TeamFolders.Size = new System.Drawing.Size(1070, 669); - this.tableLayoutPanel_TeamFolders.TabIndex = 1; - // - // tableLayoutPanel_TeamFoldersCommandGroup - // - this.tableLayoutPanel_TeamFoldersCommandGroup.ColumnCount = 4; - this.tableLayoutPanel_TeamFoldersCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel_TeamFoldersCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 62F)); - this.tableLayoutPanel_TeamFoldersCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 50F)); - this.tableLayoutPanel_TeamFoldersCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel_TeamFoldersCommandGroup.Controls.Add(this.tableLayoutPanel_TeamFoldersAccessToken, 3, 0); - this.tableLayoutPanel_TeamFoldersCommandGroup.Controls.Add(this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup, 0, 1); - this.tableLayoutPanel_TeamFoldersCommandGroup.Controls.Add(this.tableLayoutPanel_TeamFoldersSendEmailGroup, 3, 1); - this.tableLayoutPanel_TeamFoldersCommandGroup.Controls.Add(this.labelTeamName, 0, 0); - this.tableLayoutPanel_TeamFoldersCommandGroup.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel_TeamFoldersCommandGroup.Location = new System.Drawing.Point(4, 5); - this.tableLayoutPanel_TeamFoldersCommandGroup.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.tableLayoutPanel_TeamFoldersCommandGroup.Name = "tableLayoutPanel_TeamFoldersCommandGroup"; - this.tableLayoutPanel_TeamFoldersCommandGroup.RowCount = 2; - this.tableLayoutPanel_TeamFoldersCommandGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 46F)); - this.tableLayoutPanel_TeamFoldersCommandGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 46F)); - this.tableLayoutPanel_TeamFoldersCommandGroup.Size = new System.Drawing.Size(1062, 98); - this.tableLayoutPanel_TeamFoldersCommandGroup.TabIndex = 0; - // - // tableLayoutPanel_TeamFoldersAccessToken - // - this.tableLayoutPanel_TeamFoldersAccessToken.ColumnCount = 2; - this.tableLayoutPanel_TeamFoldersAccessToken.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 135F)); - this.tableLayoutPanel_TeamFoldersAccessToken.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel_TeamFoldersAccessToken.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 30F)); - this.tableLayoutPanel_TeamFoldersAccessToken.Controls.Add(this.textBox_TeamHealthAccessToken, 1, 0); - this.tableLayoutPanel_TeamFoldersAccessToken.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel_TeamFoldersAccessToken.Location = new System.Drawing.Point(589, 2); - this.tableLayoutPanel_TeamFoldersAccessToken.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.tableLayoutPanel_TeamFoldersAccessToken.Name = "tableLayoutPanel_TeamFoldersAccessToken"; - this.tableLayoutPanel_TeamFoldersAccessToken.RowCount = 1; - this.tableLayoutPanel_TeamFoldersAccessToken.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel_TeamFoldersAccessToken.Size = new System.Drawing.Size(471, 42); - this.tableLayoutPanel_TeamFoldersAccessToken.TabIndex = 0; - // - // tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup - // - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.ColumnCount = 3; - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 150F)); - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 144F)); - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.Location = new System.Drawing.Point(4, 51); - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.Name = "tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup"; - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.RowCount = 1; - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.Size = new System.Drawing.Size(467, 42); - this.tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup.TabIndex = 2; - // - // tableLayoutPanel_TeamFoldersSendEmailGroup - // - this.tableLayoutPanel_TeamFoldersSendEmailGroup.ColumnCount = 3; - this.tableLayoutPanel_TeamFoldersSendEmailGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 2.572347F)); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 48.55305F)); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 48.57143F)); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.Controls.Add(this.buttonEx_TeamHealthRefresh, 2, 0); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.Controls.Add(this.labelRefreshDateTime, 1, 0); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel_TeamFoldersSendEmailGroup.Location = new System.Drawing.Point(591, 51); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.Name = "tableLayoutPanel_TeamFoldersSendEmailGroup"; - this.tableLayoutPanel_TeamFoldersSendEmailGroup.RowCount = 1; - this.tableLayoutPanel_TeamFoldersSendEmailGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 48F)); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.Size = new System.Drawing.Size(467, 42); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.TabIndex = 3; + // tableLayoutPanel_TeamHealth + // + this.tableLayoutPanel_TeamHealth.ColumnCount = 1; + this.tableLayoutPanel_TeamHealth.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel_TeamHealth.Controls.Add(this.tableLayoutPanel2, 0, 4); + this.tableLayoutPanel_TeamHealth.Controls.Add(this.tableLayoutPanel_TeamHealthCommandGroup, 0, 0); + this.tableLayoutPanel_TeamHealth.Controls.Add(this.tableLayoutPanel_TeamFoldersMembersGroup, 0, 2); + this.tableLayoutPanel_TeamHealth.Controls.Add(this.tableLayoutPanelGauge, 0, 1); + this.tableLayoutPanel_TeamHealth.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel_TeamHealth.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tableLayoutPanel_TeamHealth.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel_TeamHealth.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.tableLayoutPanel_TeamHealth.Name = "tableLayoutPanel_TeamHealth"; + this.tableLayoutPanel_TeamHealth.RowCount = 5; + this.tableLayoutPanel_TeamHealth.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 120F)); + this.tableLayoutPanel_TeamHealth.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 458F)); + this.tableLayoutPanel_TeamHealth.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel_TeamHealth.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 12F)); + this.tableLayoutPanel_TeamHealth.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 12F)); + this.tableLayoutPanel_TeamHealth.Size = new System.Drawing.Size(1070, 669); + this.tableLayoutPanel_TeamHealth.TabIndex = 1; + // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single; + this.tableLayoutPanel2.ColumnCount = 2; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 49.62853F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.37147F)); + this.tableLayoutPanel2.Controls.Add(this.chart1, 1, 0); + this.tableLayoutPanel2.Location = new System.Drawing.Point(4, 662); + this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 1; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(674, 2); + this.tableLayoutPanel2.TabIndex = 6; + // + // chart1 + // + this.chart1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.chart1.BackColor = System.Drawing.Color.Transparent; + this.chart1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.chart1.BackImageAlignment = System.Windows.Forms.DataVisualization.Charting.ChartImageAlignmentStyle.Center; + this.chart1.BorderlineColor = System.Drawing.Color.Black; + this.chart1.BorderSkin.BackColor = System.Drawing.Color.Transparent; + this.chart1.BorderSkin.PageColor = System.Drawing.Color.Transparent; + chartArea1.BackColor = System.Drawing.Color.Transparent; + chartArea1.Name = "ChartArea1"; + this.chart1.ChartAreas.Add(chartArea1); + legend1.Name = "Legend1"; + this.chart1.Legends.Add(legend1); + this.chart1.Location = new System.Drawing.Point(338, 4); + this.chart1.Name = "chart1"; + this.chart1.Palette = System.Windows.Forms.DataVisualization.Charting.ChartColorPalette.Bright; + series1.ChartArea = "ChartArea1"; + series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Pie; + series1.Legend = "Legend1"; + series1.Name = "pieDevices"; + this.chart1.Series.Add(series1); + this.chart1.Size = new System.Drawing.Size(332, 1); + this.chart1.TabIndex = 1; + this.chart1.Text = "Devices"; + // + // tableLayoutPanel_TeamHealthCommandGroup + // + this.tableLayoutPanel_TeamHealthCommandGroup.ColumnCount = 4; + this.tableLayoutPanel_TeamHealthCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 58.12854F)); + this.tableLayoutPanel_TeamHealthCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 2F)); + this.tableLayoutPanel_TeamHealthCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 2F)); + this.tableLayoutPanel_TeamHealthCommandGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 41.87146F)); + this.tableLayoutPanel_TeamHealthCommandGroup.Controls.Add(this.tableLayoutPanel_TeamHealthAccessToken, 3, 0); + this.tableLayoutPanel_TeamHealthCommandGroup.Controls.Add(this.tableLayoutPanel_TeamHealthUsersGroup, 0, 1); + this.tableLayoutPanel_TeamHealthCommandGroup.Controls.Add(this.tableLayoutPanel_TeamHealthSendEmailGroup, 3, 1); + this.tableLayoutPanel_TeamHealthCommandGroup.Controls.Add(this.labelTeamName, 0, 0); + this.tableLayoutPanel_TeamHealthCommandGroup.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel_TeamHealthCommandGroup.Location = new System.Drawing.Point(4, 5); + this.tableLayoutPanel_TeamHealthCommandGroup.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.tableLayoutPanel_TeamHealthCommandGroup.Name = "tableLayoutPanel_TeamHealthCommandGroup"; + this.tableLayoutPanel_TeamHealthCommandGroup.RowCount = 2; + this.tableLayoutPanel_TeamHealthCommandGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 60F)); + this.tableLayoutPanel_TeamHealthCommandGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 60F)); + this.tableLayoutPanel_TeamHealthCommandGroup.Size = new System.Drawing.Size(1062, 110); + this.tableLayoutPanel_TeamHealthCommandGroup.TabIndex = 0; + // + // tableLayoutPanel_TeamHealthAccessToken + // + this.tableLayoutPanel_TeamHealthAccessToken.ColumnCount = 2; + this.tableLayoutPanel_TeamHealthAccessToken.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 135F)); + this.tableLayoutPanel_TeamHealthAccessToken.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel_TeamHealthAccessToken.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableLayoutPanel_TeamHealthAccessToken.Controls.Add(this.textBox_TeamHealthAccessToken, 1, 0); + this.tableLayoutPanel_TeamHealthAccessToken.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel_TeamHealthAccessToken.Location = new System.Drawing.Point(620, 2); + this.tableLayoutPanel_TeamHealthAccessToken.Margin = new System.Windows.Forms.Padding(2); + this.tableLayoutPanel_TeamHealthAccessToken.Name = "tableLayoutPanel_TeamHealthAccessToken"; + this.tableLayoutPanel_TeamHealthAccessToken.RowCount = 1; + this.tableLayoutPanel_TeamHealthAccessToken.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel_TeamHealthAccessToken.Size = new System.Drawing.Size(440, 56); + this.tableLayoutPanel_TeamHealthAccessToken.TabIndex = 0; + // + // textBox_TeamHealthAccessToken + // + this.textBox_TeamHealthAccessToken.Dock = System.Windows.Forms.DockStyle.Fill; + this.textBox_TeamHealthAccessToken.FileFilter = null; + this.textBox_TeamHealthAccessToken.Location = new System.Drawing.Point(139, 5); + this.textBox_TeamHealthAccessToken.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.textBox_TeamHealthAccessToken.Name = "textBox_TeamHealthAccessToken"; + this.textBox_TeamHealthAccessToken.Size = new System.Drawing.Size(297, 22); + this.textBox_TeamHealthAccessToken.TabIndex = 1; + this.textBox_TeamHealthAccessToken.Visible = false; + // + // tableLayoutPanel_TeamHealthUsersGroup + // + this.tableLayoutPanel_TeamHealthUsersGroup.ColumnCount = 2; + this.tableLayoutPanel_TeamHealthUsersGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 45F)); + this.tableLayoutPanel_TeamHealthUsersGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 55F)); + this.tableLayoutPanel_TeamHealthUsersGroup.Controls.Add(this.labelLicenses, 0, 0); + this.tableLayoutPanel_TeamHealthUsersGroup.Controls.Add(this.labelProvisioned, 1, 0); + this.tableLayoutPanel_TeamHealthUsersGroup.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel_TeamHealthUsersGroup.Location = new System.Drawing.Point(4, 65); + this.tableLayoutPanel_TeamHealthUsersGroup.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.tableLayoutPanel_TeamHealthUsersGroup.Name = "tableLayoutPanel_TeamHealthUsersGroup"; + this.tableLayoutPanel_TeamHealthUsersGroup.RowCount = 1; + this.tableLayoutPanel_TeamHealthUsersGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel_TeamHealthUsersGroup.Size = new System.Drawing.Size(606, 50); + this.tableLayoutPanel_TeamHealthUsersGroup.TabIndex = 2; + // + // labelLicenses + // + this.labelLicenses.AutoSize = true; + this.labelLicenses.Font = new System.Drawing.Font("Segoe UI", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelLicenses.Location = new System.Drawing.Point(3, 0); + this.labelLicenses.Name = "labelLicenses"; + this.labelLicenses.Size = new System.Drawing.Size(0, 32); + this.labelLicenses.TabIndex = 0; + // + // labelProvisioned + // + this.labelProvisioned.AutoSize = true; + this.labelProvisioned.Font = new System.Drawing.Font("Segoe UI", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelProvisioned.Location = new System.Drawing.Point(275, 0); + this.labelProvisioned.Name = "labelProvisioned"; + this.labelProvisioned.Size = new System.Drawing.Size(0, 32); + this.labelProvisioned.TabIndex = 1; + // + // tableLayoutPanel_TeamHealthSendEmailGroup + // + this.tableLayoutPanel_TeamHealthSendEmailGroup.ColumnCount = 3; + this.tableLayoutPanel_TeamHealthSendEmailGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 1F)); + this.tableLayoutPanel_TeamHealthSendEmailGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 69F)); + this.tableLayoutPanel_TeamHealthSendEmailGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 30F)); + this.tableLayoutPanel_TeamHealthSendEmailGroup.Controls.Add(this.buttonEx_TeamHealthRefresh, 2, 0); + this.tableLayoutPanel_TeamHealthSendEmailGroup.Controls.Add(this.labelRefreshDateTime, 1, 0); + this.tableLayoutPanel_TeamHealthSendEmailGroup.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel_TeamHealthSendEmailGroup.Location = new System.Drawing.Point(622, 65); + this.tableLayoutPanel_TeamHealthSendEmailGroup.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.tableLayoutPanel_TeamHealthSendEmailGroup.Name = "tableLayoutPanel_TeamHealthSendEmailGroup"; + this.tableLayoutPanel_TeamHealthSendEmailGroup.RowCount = 1; + this.tableLayoutPanel_TeamHealthSendEmailGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 51F)); + this.tableLayoutPanel_TeamHealthSendEmailGroup.Size = new System.Drawing.Size(436, 50); + this.tableLayoutPanel_TeamHealthSendEmailGroup.TabIndex = 3; + // + // buttonEx_TeamHealthRefresh + // + this.buttonEx_TeamHealthRefresh.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + office2010White1.BorderColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(72)))), ((int)(((byte)(161))))); + office2010White1.BorderColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(135)))), ((int)(((byte)(228))))); + office2010White1.ButtonMouseOverColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(199)))), ((int)(((byte)(87))))); + office2010White1.ButtonMouseOverColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(243)))), ((int)(((byte)(215))))); + office2010White1.ButtonMouseOverColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(249)))), ((int)(((byte)(225)))), ((int)(((byte)(137))))); + office2010White1.ButtonMouseOverColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(251)))), ((int)(((byte)(249)))), ((int)(((byte)(224))))); + office2010White1.ButtonNormalColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(154)))), ((int)(((byte)(154)))), ((int)(((byte)(154))))); + office2010White1.ButtonNormalColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + office2010White1.ButtonNormalColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235))))); + office2010White1.ButtonNormalColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + office2010White1.ButtonSelectedColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(199)))), ((int)(((byte)(87))))); + office2010White1.ButtonSelectedColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(243)))), ((int)(((byte)(215))))); + office2010White1.ButtonSelectedColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(229)))), ((int)(((byte)(117))))); + office2010White1.ButtonSelectedColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(216)))), ((int)(((byte)(107))))); + office2010White1.HoverTextColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(57)))), ((int)(((byte)(91))))); + office2010White1.SelectedTextColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(57)))), ((int)(((byte)(91))))); + office2010White1.TextColor = System.Drawing.Color.Black; + this.buttonEx_TeamHealthRefresh.ColorTable = office2010White1; + this.buttonEx_TeamHealthRefresh.Location = new System.Drawing.Point(308, 7); + this.buttonEx_TeamHealthRefresh.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.buttonEx_TeamHealthRefresh.Name = "buttonEx_TeamHealthRefresh"; + this.buttonEx_TeamHealthRefresh.Size = new System.Drawing.Size(124, 37); + this.buttonEx_TeamHealthRefresh.TabIndex = 4; + this.buttonEx_TeamHealthRefresh.Text = "Refresh"; + this.buttonEx_TeamHealthRefresh.Theme = DfBAdminToolkit.Common.Component.Theme.MSOffice2010_White; + this.buttonEx_TeamHealthRefresh.UseVisualStyleBackColor = true; // // labelRefreshDateTime // this.labelRefreshDateTime.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.labelRefreshDateTime.AutoSize = true; - this.labelRefreshDateTime.Location = new System.Drawing.Point(16, 17); + this.labelRefreshDateTime.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelRefreshDateTime.Location = new System.Drawing.Point(8, 17); this.labelRefreshDateTime.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.labelRefreshDateTime.Name = "labelRefreshDateTime"; - this.labelRefreshDateTime.Size = new System.Drawing.Size(219, 13); + this.labelRefreshDateTime.Size = new System.Drawing.Size(292, 17); this.labelRefreshDateTime.TabIndex = 5; - this.labelRefreshDateTime.Text = "Last Refresh: Unknown"; + this.labelRefreshDateTime.Text = "Last Refresh: (Click Refresh)"; // // labelTeamName // this.labelTeamName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); this.labelTeamName.AutoSize = true; - this.labelTeamName.Font = new System.Drawing.Font("Segoe UI", 20.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.labelTeamName.Location = new System.Drawing.Point(4, 4); + this.labelTeamName.Font = new System.Drawing.Font("Segoe UI", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelTeamName.Location = new System.Drawing.Point(4, 14); this.labelTeamName.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.labelTeamName.Name = "labelTeamName"; - this.labelTeamName.Size = new System.Drawing.Size(467, 37); + this.labelTeamName.Size = new System.Drawing.Size(606, 32); this.labelTeamName.TabIndex = 4; // // tableLayoutPanel_TeamFoldersMembersGroup @@ -175,155 +306,384 @@ private void InitializeComponent() this.tableLayoutPanel_TeamFoldersMembersGroup.ColumnCount = 1; this.tableLayoutPanel_TeamFoldersMembersGroup.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel_TeamFoldersMembersGroup.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel_TeamFoldersMembersGroup.Location = new System.Drawing.Point(4, 573); + this.tableLayoutPanel_TeamFoldersMembersGroup.Location = new System.Drawing.Point(4, 583); this.tableLayoutPanel_TeamFoldersMembersGroup.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.tableLayoutPanel_TeamFoldersMembersGroup.Name = "tableLayoutPanel_TeamFoldersMembersGroup"; this.tableLayoutPanel_TeamFoldersMembersGroup.RowCount = 1; this.tableLayoutPanel_TeamFoldersMembersGroup.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel_TeamFoldersMembersGroup.Size = new System.Drawing.Size(1062, 67); + this.tableLayoutPanel_TeamFoldersMembersGroup.Size = new System.Drawing.Size(1062, 57); this.tableLayoutPanel_TeamFoldersMembersGroup.TabIndex = 1; // // tableLayoutPanelGauge // - this.tableLayoutPanelGauge.ColumnCount = 2; - this.tableLayoutPanelGauge.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 49.58084F)); - this.tableLayoutPanelGauge.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.41916F)); + this.tableLayoutPanelGauge.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single; + this.tableLayoutPanelGauge.ColumnCount = 3; + this.tableLayoutPanelGauge.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanelGauge.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanelGauge.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); this.tableLayoutPanelGauge.Controls.Add(this.aquaGaugeUsers, 0, 0); this.tableLayoutPanelGauge.Controls.Add(this.chartPieDevices, 1, 0); - this.tableLayoutPanelGauge.Location = new System.Drawing.Point(4, 113); + this.tableLayoutPanelGauge.Controls.Add(this.tableLayoutPanelStats, 2, 0); + this.tableLayoutPanelGauge.Location = new System.Drawing.Point(4, 125); this.tableLayoutPanelGauge.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.tableLayoutPanelGauge.MinimumSize = new System.Drawing.Size(1350, 0); this.tableLayoutPanelGauge.Name = "tableLayoutPanelGauge"; this.tableLayoutPanelGauge.RowCount = 1; - this.tableLayoutPanelGauge.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanelGauge.Size = new System.Drawing.Size(835, 429); + this.tableLayoutPanelGauge.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanelGauge.Size = new System.Drawing.Size(1350, 425); this.tableLayoutPanelGauge.TabIndex = 4; // // aquaGaugeUsers // + this.aquaGaugeUsers.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); this.aquaGaugeUsers.BackColor = System.Drawing.Color.Transparent; - this.aquaGaugeUsers.DialColor = System.Drawing.Color.RoyalBlue; + this.aquaGaugeUsers.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.aquaGaugeUsers.DialColor = System.Drawing.Color.Blue; this.aquaGaugeUsers.DialText = "Users"; + this.aquaGaugeUsers.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.aquaGaugeUsers.Glossiness = 11.36364F; - this.aquaGaugeUsers.Location = new System.Drawing.Point(6, 8); + this.aquaGaugeUsers.Location = new System.Drawing.Point(7, 9); this.aquaGaugeUsers.Margin = new System.Windows.Forms.Padding(6, 8, 6, 8); this.aquaGaugeUsers.MaxValue = 0F; this.aquaGaugeUsers.MinValue = 0F; this.aquaGaugeUsers.Name = "aquaGaugeUsers"; + this.aquaGaugeUsers.NoOfDivisions = 5; this.aquaGaugeUsers.RecommendedValue = 0F; - this.aquaGaugeUsers.Size = new System.Drawing.Size(401, 401); + this.aquaGaugeUsers.Size = new System.Drawing.Size(383, 383); this.aquaGaugeUsers.TabIndex = 0; this.aquaGaugeUsers.ThresholdPercent = 90F; this.aquaGaugeUsers.Value = 0F; // - // textBox_TeamHealthAccessToken + // chartPieDevices // - this.textBox_TeamHealthAccessToken.Dock = System.Windows.Forms.DockStyle.Fill; - this.textBox_TeamHealthAccessToken.FileFilter = null; - this.textBox_TeamHealthAccessToken.Location = new System.Drawing.Point(139, 5); - this.textBox_TeamHealthAccessToken.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.textBox_TeamHealthAccessToken.Name = "textBox_TeamHealthAccessToken"; - this.textBox_TeamHealthAccessToken.Size = new System.Drawing.Size(328, 22); - this.textBox_TeamHealthAccessToken.TabIndex = 1; - this.textBox_TeamHealthAccessToken.Visible = false; + this.chartPieDevices.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.chartPieDevices.BackColor = System.Drawing.Color.Transparent; + this.chartPieDevices.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.chartPieDevices.BackImageAlignment = System.Windows.Forms.DataVisualization.Charting.ChartImageAlignmentStyle.Center; + this.chartPieDevices.BorderlineColor = System.Drawing.Color.Black; + this.chartPieDevices.BorderSkin.BackColor = System.Drawing.Color.Transparent; + this.chartPieDevices.BorderSkin.PageColor = System.Drawing.Color.Transparent; + chartArea2.Area3DStyle.Enable3D = true; + chartArea2.Area3DStyle.WallWidth = 0; + chartArea2.BackColor = System.Drawing.Color.Transparent; + chartArea2.Name = "ChartArea1"; + this.chartPieDevices.ChartAreas.Add(chartArea2); + legend2.Name = "Legend1"; + legend2.TitleFont = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.chartPieDevices.Legends.Add(legend2); + this.chartPieDevices.Location = new System.Drawing.Point(400, 4); + this.chartPieDevices.MinimumSize = new System.Drawing.Size(400, 0); + this.chartPieDevices.Name = "chartPieDevices"; + this.chartPieDevices.Palette = System.Windows.Forms.DataVisualization.Charting.ChartColorPalette.Bright; + series2.ChartArea = "ChartArea1"; + series2.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Pie; + series2.LabelForeColor = System.Drawing.Color.White; + series2.Legend = "Legend1"; + series2.Name = "pieDevices"; + this.chartPieDevices.Series.Add(series2); + this.chartPieDevices.Size = new System.Drawing.Size(400, 420); + this.chartPieDevices.TabIndex = 1; + this.chartPieDevices.Text = "Devices"; // - // buttonEx_TeamHealthRefresh + // tableLayoutPanelStats // - office2010White1.BorderColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(72)))), ((int)(((byte)(161))))); - office2010White1.BorderColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(135)))), ((int)(((byte)(228))))); - office2010White1.ButtonMouseOverColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(199)))), ((int)(((byte)(87))))); - office2010White1.ButtonMouseOverColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(243)))), ((int)(((byte)(215))))); - office2010White1.ButtonMouseOverColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(249)))), ((int)(((byte)(225)))), ((int)(((byte)(137))))); - office2010White1.ButtonMouseOverColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(251)))), ((int)(((byte)(249)))), ((int)(((byte)(224))))); - office2010White1.ButtonNormalColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(154)))), ((int)(((byte)(154)))), ((int)(((byte)(154))))); - office2010White1.ButtonNormalColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); - office2010White1.ButtonNormalColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235))))); - office2010White1.ButtonNormalColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); - office2010White1.ButtonSelectedColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(199)))), ((int)(((byte)(87))))); - office2010White1.ButtonSelectedColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(243)))), ((int)(((byte)(215))))); - office2010White1.ButtonSelectedColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(229)))), ((int)(((byte)(117))))); - office2010White1.ButtonSelectedColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(216)))), ((int)(((byte)(107))))); - office2010White1.HoverTextColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(57)))), ((int)(((byte)(91))))); - office2010White1.SelectedTextColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(57)))), ((int)(((byte)(91))))); - office2010White1.TextColor = System.Drawing.Color.Black; - this.buttonEx_TeamHealthRefresh.ColorTable = office2010White1; - this.buttonEx_TeamHealthRefresh.Dock = System.Windows.Forms.DockStyle.Bottom; - this.buttonEx_TeamHealthRefresh.Location = new System.Drawing.Point(243, 6); - this.buttonEx_TeamHealthRefresh.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.buttonEx_TeamHealthRefresh.Name = "buttonEx_TeamHealthRefresh"; - this.buttonEx_TeamHealthRefresh.Size = new System.Drawing.Size(220, 37); - this.buttonEx_TeamHealthRefresh.TabIndex = 4; - this.buttonEx_TeamHealthRefresh.Text = "Refresh"; - this.buttonEx_TeamHealthRefresh.Theme = DfBAdminToolkit.Common.Component.Theme.MSOffice2010_White; - this.buttonEx_TeamHealthRefresh.UseVisualStyleBackColor = true; + this.tableLayoutPanelStats.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.tableLayoutPanelStats.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single; + this.tableLayoutPanelStats.ColumnCount = 2; + this.tableLayoutPanelStats.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanelStats.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanelStats.Controls.Add(this.labelTotalUsage, 1, 0); + this.tableLayoutPanelStats.Controls.Add(this.label3, 0, 1); + this.tableLayoutPanelStats.Controls.Add(this.labelSharedUsage, 1, 1); + this.tableLayoutPanelStats.Controls.Add(this.label5, 0, 2); + this.tableLayoutPanelStats.Controls.Add(this.labelUnsharedUsage, 1, 2); + this.tableLayoutPanelStats.Controls.Add(this.label7, 0, 3); + this.tableLayoutPanelStats.Controls.Add(this.labelSharedFolders, 1, 3); + this.tableLayoutPanelStats.Controls.Add(this.label9, 0, 4); + this.tableLayoutPanelStats.Controls.Add(this.labelActiveShared, 1, 4); + this.tableLayoutPanelStats.Controls.Add(this.label11, 0, 5); + this.tableLayoutPanelStats.Controls.Add(this.labelActiveUsers, 1, 5); + this.tableLayoutPanelStats.Controls.Add(this.label13, 0, 6); + this.tableLayoutPanelStats.Controls.Add(this.labelAdds, 1, 6); + this.tableLayoutPanelStats.Controls.Add(this.label15, 0, 7); + this.tableLayoutPanelStats.Controls.Add(this.labelEdits, 1, 7); + this.tableLayoutPanelStats.Controls.Add(this.label17, 0, 8); + this.tableLayoutPanelStats.Controls.Add(this.labelDeletes, 1, 8); + this.tableLayoutPanelStats.Controls.Add(this.label1, 0, 0); + this.tableLayoutPanelStats.Location = new System.Drawing.Point(796, 4); + this.tableLayoutPanelStats.MinimumSize = new System.Drawing.Size(548, 0); + this.tableLayoutPanelStats.Name = "tableLayoutPanelStats"; + this.tableLayoutPanelStats.RowCount = 9; + this.tableLayoutPanelStats.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.11111F)); + this.tableLayoutPanelStats.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.11111F)); + this.tableLayoutPanelStats.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.11111F)); + this.tableLayoutPanelStats.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.11111F)); + this.tableLayoutPanelStats.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.11111F)); + this.tableLayoutPanelStats.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.11111F)); + this.tableLayoutPanelStats.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.11111F)); + this.tableLayoutPanelStats.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.11111F)); + this.tableLayoutPanelStats.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.11111F)); + this.tableLayoutPanelStats.Size = new System.Drawing.Size(550, 420); + this.tableLayoutPanelStats.TabIndex = 2; + this.tableLayoutPanelStats.Visible = false; // - // tableLayoutPanel1 + // labelTotalUsage // - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 648); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 2; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(200, 6); - this.tableLayoutPanel1.TabIndex = 5; + this.labelTotalUsage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.labelTotalUsage.AutoSize = true; + this.labelTotalUsage.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelTotalUsage.Location = new System.Drawing.Point(274, 11); + this.labelTotalUsage.Name = "labelTotalUsage"; + this.labelTotalUsage.Size = new System.Drawing.Size(272, 25); + this.labelTotalUsage.TabIndex = 1; // - // chartPieDevices + // label3 // - chartArea1.Name = "ChartArea1"; - this.chartPieDevices.ChartAreas.Add(chartArea1); - legend1.Name = "Legend1"; - this.chartPieDevices.Legends.Add(legend1); - this.chartPieDevices.Location = new System.Drawing.Point(416, 3); - this.chartPieDevices.Name = "chartPieDevices"; - series1.ChartArea = "ChartArea1"; - series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Pie; - series1.Legend = "Legend1"; - series1.Name = "pieDevices"; - this.chartPieDevices.Series.Add(series1); - this.chartPieDevices.Size = new System.Drawing.Size(372, 300); - this.chartPieDevices.TabIndex = 1; - this.chartPieDevices.Text = "Devices"; + this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label3.Location = new System.Drawing.Point(4, 57); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(263, 25); + this.label3.TabIndex = 2; + this.label3.Text = "Shared Usage"; + // + // labelSharedUsage + // + this.labelSharedUsage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.labelSharedUsage.AutoSize = true; + this.labelSharedUsage.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelSharedUsage.Location = new System.Drawing.Point(274, 57); + this.labelSharedUsage.Name = "labelSharedUsage"; + this.labelSharedUsage.Size = new System.Drawing.Size(272, 25); + this.labelSharedUsage.TabIndex = 3; + // + // label5 + // + this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.label5.AutoSize = true; + this.label5.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label5.Location = new System.Drawing.Point(4, 103); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(263, 25); + this.label5.TabIndex = 4; + this.label5.Text = "Unshared Usage"; + // + // labelUnsharedUsage + // + this.labelUnsharedUsage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.labelUnsharedUsage.AutoSize = true; + this.labelUnsharedUsage.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelUnsharedUsage.Location = new System.Drawing.Point(274, 103); + this.labelUnsharedUsage.Name = "labelUnsharedUsage"; + this.labelUnsharedUsage.Size = new System.Drawing.Size(272, 25); + this.labelUnsharedUsage.TabIndex = 5; + // + // label7 + // + this.label7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.label7.AutoSize = true; + this.label7.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label7.Location = new System.Drawing.Point(4, 149); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(263, 25); + this.label7.TabIndex = 6; + this.label7.Text = "Shared Folders"; + // + // labelSharedFolders + // + this.labelSharedFolders.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.labelSharedFolders.AutoSize = true; + this.labelSharedFolders.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelSharedFolders.Location = new System.Drawing.Point(274, 149); + this.labelSharedFolders.Name = "labelSharedFolders"; + this.labelSharedFolders.Size = new System.Drawing.Size(272, 25); + this.labelSharedFolders.TabIndex = 7; + // + // label9 + // + this.label9.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.label9.AutoSize = true; + this.label9.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label9.Location = new System.Drawing.Point(4, 195); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(263, 25); + this.label9.TabIndex = 8; + this.label9.Text = "Active Shared Folders (7 days)"; + // + // labelActiveShared + // + this.labelActiveShared.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.labelActiveShared.AutoSize = true; + this.labelActiveShared.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelActiveShared.Location = new System.Drawing.Point(274, 195); + this.labelActiveShared.Name = "labelActiveShared"; + this.labelActiveShared.Size = new System.Drawing.Size(272, 25); + this.labelActiveShared.TabIndex = 9; + // + // label11 + // + this.label11.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.label11.AutoSize = true; + this.label11.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label11.Location = new System.Drawing.Point(4, 241); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(263, 25); + this.label11.TabIndex = 10; + this.label11.Text = "Active Users (7 Days)"; + // + // labelActiveUsers + // + this.labelActiveUsers.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.labelActiveUsers.AutoSize = true; + this.labelActiveUsers.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelActiveUsers.Location = new System.Drawing.Point(274, 241); + this.labelActiveUsers.Name = "labelActiveUsers"; + this.labelActiveUsers.Size = new System.Drawing.Size(272, 25); + this.labelActiveUsers.TabIndex = 11; + // + // label13 + // + this.label13.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.label13.AutoSize = true; + this.label13.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label13.Location = new System.Drawing.Point(4, 287); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(263, 25); + this.label13.TabIndex = 12; + this.label13.Text = "Adds"; + // + // labelAdds + // + this.labelAdds.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.labelAdds.AutoSize = true; + this.labelAdds.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelAdds.Location = new System.Drawing.Point(274, 287); + this.labelAdds.Name = "labelAdds"; + this.labelAdds.Size = new System.Drawing.Size(272, 25); + this.labelAdds.TabIndex = 13; + // + // label15 + // + this.label15.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.label15.AutoSize = true; + this.label15.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label15.Location = new System.Drawing.Point(4, 333); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(263, 25); + this.label15.TabIndex = 14; + this.label15.Text = "Edits"; + // + // labelEdits + // + this.labelEdits.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.labelEdits.AutoSize = true; + this.labelEdits.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelEdits.Location = new System.Drawing.Point(274, 333); + this.labelEdits.Name = "labelEdits"; + this.labelEdits.Size = new System.Drawing.Size(272, 25); + this.labelEdits.TabIndex = 15; + // + // label17 + // + this.label17.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.label17.AutoSize = true; + this.label17.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label17.Location = new System.Drawing.Point(4, 381); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(263, 25); + this.label17.TabIndex = 16; + this.label17.Text = "Deletes"; + // + // labelDeletes + // + this.labelDeletes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.labelDeletes.AutoSize = true; + this.labelDeletes.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelDeletes.Location = new System.Drawing.Point(274, 381); + this.labelDeletes.Name = "labelDeletes"; + this.labelDeletes.Size = new System.Drawing.Size(272, 25); + this.labelDeletes.TabIndex = 17; + // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.Location = new System.Drawing.Point(4, 11); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(263, 25); + this.label1.TabIndex = 0; + this.label1.Text = "Total Usage"; // // TeamHealthView // this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(1070, 669); - this.Controls.Add(this.tableLayoutPanel_TeamFolders); + this.Controls.Add(this.tableLayoutPanel_TeamHealth); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.Name = "TeamHealthView"; this.Text = "TeamFoldersView"; - this.tableLayoutPanel_TeamFolders.ResumeLayout(false); - this.tableLayoutPanel_TeamFoldersCommandGroup.ResumeLayout(false); - this.tableLayoutPanel_TeamFoldersCommandGroup.PerformLayout(); - this.tableLayoutPanel_TeamFoldersAccessToken.ResumeLayout(false); - this.tableLayoutPanel_TeamFoldersAccessToken.PerformLayout(); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.ResumeLayout(false); - this.tableLayoutPanel_TeamFoldersSendEmailGroup.PerformLayout(); + this.tableLayoutPanel_TeamHealth.ResumeLayout(false); + this.tableLayoutPanel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.chart1)).EndInit(); + this.tableLayoutPanel_TeamHealthCommandGroup.ResumeLayout(false); + this.tableLayoutPanel_TeamHealthCommandGroup.PerformLayout(); + this.tableLayoutPanel_TeamHealthAccessToken.ResumeLayout(false); + this.tableLayoutPanel_TeamHealthAccessToken.PerformLayout(); + this.tableLayoutPanel_TeamHealthUsersGroup.ResumeLayout(false); + this.tableLayoutPanel_TeamHealthUsersGroup.PerformLayout(); + this.tableLayoutPanel_TeamHealthSendEmailGroup.ResumeLayout(false); + this.tableLayoutPanel_TeamHealthSendEmailGroup.PerformLayout(); this.tableLayoutPanelGauge.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.chartPieDevices)).EndInit(); + this.tableLayoutPanelStats.ResumeLayout(false); + this.tableLayoutPanelStats.PerformLayout(); this.ResumeLayout(false); } #endregion - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel_TeamFolders; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel_TeamFoldersCommandGroup; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel_TeamFoldersAccessToken; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel_TeamHealth; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel_TeamHealthCommandGroup; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel_TeamHealthAccessToken; private TextBoxEx textBox_TeamHealthAccessToken; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel_TeamFoldersMembersGroup; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel_TeamFoldersMemberRoleSelectionGroup; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel_TeamFoldersSendEmailGroup; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel_TeamHealthUsersGroup; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel_TeamHealthSendEmailGroup; private ButtonEx buttonEx_TeamHealthRefresh; private System.Windows.Forms.TableLayoutPanel tableLayoutPanelGauge; private System.Windows.Forms.Label labelRefreshDateTime; private AquaControls.AquaGauge aquaGaugeUsers; private System.Windows.Forms.Label labelTeamName; private System.Windows.Forms.DataVisualization.Charting.Chart chartPieDevices; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanelStats; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label labelTotalUsage; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label labelSharedUsage; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label labelUnsharedUsage; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label labelSharedFolders; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label labelActiveShared; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.Label labelActiveUsers; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.Label labelAdds; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.Label labelEdits; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.Label labelDeletes; + private System.Windows.Forms.Label labelLicenses; + private System.Windows.Forms.Label labelProvisioned; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + private System.Windows.Forms.DataVisualization.Charting.Chart chart1; } } \ No newline at end of file diff --git a/Source/DfBAdminToolkit/app.manifest b/Source/DfBAdminToolkit/app.manifest index 320e86d..6b2691a 100644 --- a/Source/DfBAdminToolkit/app.manifest +++ b/Source/DfBAdminToolkit/app.manifest @@ -12,16 +12,16 @@ - + - + - + - + diff --git a/Source/ProviderLauncher/Properties/AssemblyInfo.cs b/Source/ProviderLauncher/Properties/AssemblyInfo.cs index 9352917..afe74ba 100644 --- a/Source/ProviderLauncher/Properties/AssemblyInfo.cs +++ b/Source/ProviderLauncher/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("5.2.1.0")] -[assembly: AssemblyFileVersion("5.2.1.0")] +[assembly: AssemblyVersion("6.0.0.0")] +[assembly: AssemblyFileVersion("6.0.0.0")]