xuruiqian
2021-05-25 c0bbcd97fa2f130a7a60d02873fbf9038bdd4c15
register
252 files added
127460 ■■■■■ changed files
MVC/README.md 4 ●●●● patch | view | raw | blame | history
ServicesFabric/README.md 4 ●●●● patch | view | raw | blame | history
WPF/README.md 4 ●●●● patch | view | raw | blame | history
WebApi/.vs/GTech.Solution/v14/.suo patch | view | raw | blame | history
WebApi/.vs/config/applicationhost.config 981 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/Attibute/KeyAttribute.cs 14 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/Attibute/MaxLengthAttribute.cs 18 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/Common/ADODOTNETSqlHelper.cs 2456 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/Common/ConvertUtil.cs 280 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/Common/DESEncrytion.cs 147 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/Common/EncryptHelper.cs 183 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/Common/EnumUtil.cs 86 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/Common/FileEncrytion.cs 84 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/Common/JsonNetExt.cs 231 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/Common/SymmetricEncrytion.cs 84 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/Common/TLSVPConsole.cs 69 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/Common/TLSVPFileLog.cs 49 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/Common/TokenGenerator.cs 62 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/GTech.Solution.Api.Common.csproj 85 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/GTech.Solution.Api.Common.csproj.user 6 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/Properties/AssemblyInfo.cs 36 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/bin/Debug/Yokogawa.TLSVP.Api.Common.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/bin/Debug/Yokogawa.TLSVP.Api.Domain.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/bin/Release/GTech.Solution.Api.Common.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/bin/Release/GTech.Solution.Api.Domain.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/bin/Release/JWT.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/bin/Release/JWT.xml 1218 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/bin/Release/Newtonsoft.Json.xml 9229 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/bin/Release/Yokogawa.TLSVP.Api.Common.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/bin/Release/Yokogawa.TLSVP.Api.Domain.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/obj/Debug/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs 4 ●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/obj/Debug/Yokogawa.TLSVP.Api.Common.csproj.FileListAbsolute.txt 54 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/obj/Debug/Yokogawa.TLSVP.Api.Common.csprojResolveAssemblyReference.cache patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/obj/Debug/Yokogawa.TLSVP.Api.Common.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/obj/Debug/build.force patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/obj/Release/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs 4 ●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/obj/Release/GTech.Solution.Api.Common.csproj.FileListAbsolute.txt 12 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/obj/Release/GTech.Solution.Api.Common.csprojResolveAssemblyReference.cache patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/obj/Release/GTech.Solution.Api.Common.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/obj/Release/Yokogawa.TLSVP.Api.Common.csproj.FileListAbsolute.txt 68 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/obj/Release/Yokogawa.TLSVP.Api.Common.csprojResolveAssemblyReference.cache patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/obj/Release/Yokogawa.TLSVP.Api.Common.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Common/packages.config 5 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/GTech.Solution.Api.Contract.csproj 62 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/ITruckAlarm.cs 23 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/Properties/AssemblyInfo.cs 36 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/bin/Debug/Yokogawa.TLSVP.Api.Contract.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/bin/Debug/Yokogawa.TLSVP.Api.Domain.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/bin/Release/GTech.Solution.Api.Contract.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/bin/Release/GTech.Solution.Api.Domain.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/bin/Release/Yokogawa.TLSVP.Api.Contract.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/bin/Release/Yokogawa.TLSVP.Api.Domain.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/obj/Debug/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs 4 ●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/obj/Debug/Yokogawa.TLSVP.Api.Contract.csproj.FileListAbsolute.txt 27 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/obj/Debug/Yokogawa.TLSVP.Api.Contract.csprojResolveAssemblyReference.cache patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/obj/Debug/Yokogawa.TLSVP.Api.Contract.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/obj/Debug/build.force patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/obj/Release/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs 4 ●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/obj/Release/GTech.Solution.Api.Contract.csproj.FileListAbsolute.txt 7 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/obj/Release/GTech.Solution.Api.Contract.csprojResolveAssemblyReference.cache patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/obj/Release/GTech.Solution.Api.Contract.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/obj/Release/Yokogawa.TLSVP.Api.Contract.csproj.FileListAbsolute.txt 30 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/obj/Release/Yokogawa.TLSVP.Api.Contract.csprojResolveAssemblyReference.cache patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Contract/obj/Release/Yokogawa.TLSVP.Api.Contract.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/GTech.Solution.Api.Domain.csproj 61 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/GTech.Solution.Api.Domain.csproj.user 6 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/Model/ApiData.cs 24 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/Model/SystemSettings/Userbasic.cs 14 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/Model/TruckAlarmData.cs 15 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/Model/TruckAlarmResult.cs 15 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/Option/ApiDataStatus.cs 15 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/Option/WeeddirectionOption.cs 20 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/Properties/AssemblyInfo.cs 36 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/bin/Debug/Yokogawa.TLSVP.Api.Domain.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/bin/Release/GTech.Solution.Api.Domain.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/bin/Release/Yokogawa.TLSVP.Api.Domain.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/obj/Debug/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs 4 ●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/obj/Debug/Yokogawa.TLSVP.Api.Domain.csproj.FileListAbsolute.txt 15 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/obj/Debug/Yokogawa.TLSVP.Api.Domain.csprojResolveAssemblyReference.cache patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/obj/Debug/Yokogawa.TLSVP.Api.Domain.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/obj/Release/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs 4 ●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/obj/Release/GTech.Solution.Api.Domain.csproj.FileListAbsolute.txt 5 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/obj/Release/GTech.Solution.Api.Domain.csprojResolveAssemblyReference.cache patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/obj/Release/GTech.Solution.Api.Domain.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/obj/Release/Yokogawa.TLSVP.Api.Domain.csproj.FileListAbsolute.txt 14 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.Domain/obj/Release/Yokogawa.TLSVP.Api.Domain.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/ApiServicesBase.cs 98 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/ApplicationInsights.config 84 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/TDatabaseContext.cs 41 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_chemicals.cs 97 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_light_cloud.cs 63 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_meteorological.cs 31 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_result.cs 77 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_result_explosion.cs 40 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_result_gas_cloud.cs 47 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_result_heat_radiation.cs 33 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_result_overburnt.cs 33 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_scenar.cs 41 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_source.cs 19 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_source_exposure.cs 33 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_source_gas.cs 31 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_source_liquid.cs 29 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_source_tank.cs 63 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_surface.cs 75 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/GTech.Solution.Api.WebSite.csproj 232 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/GTech.Solution.Api.WebSite.csproj.user 39 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/Global.asax 1 ●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/Global.asax.cs 140 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/Properties/AssemblyInfo.cs 36 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/Properties/PublishProfiles/TMSAPI.pubxml 17 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/Properties/PublishProfiles/TMSAPI.pubxml.user 254 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/TruckAlarm.svc 4 ●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/TruckAlarm.svc.cs 77 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/Web.Debug.config 30 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/Web.Release.config 31 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/Web.config 128 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/Webhttps.config 139 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/bin/ApplicationInsights.config 84 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/bin/GTech.Solution.Api.Common.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/bin/GTech.Solution.Api.Contract.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/bin/GTech.Solution.Api.Domain.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/bin/GTech.Solution.Api.WebSite.dll.config 128 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/bin/GTech.Solution.Api.WebSite.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/bin/JWT.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/bin/JWT.xml 1218 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/bin/Microsoft.AI.DependencyCollector.xml 919 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/bin/Microsoft.AI.ServerTelemetryChannel.xml 855 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/bin/Microsoft.AI.Web.xml 466 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/bin/Microsoft.AI.WindowsServer.xml 471 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/bin/Microsoft.ApplicationInsights.xml 2858 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/bin/Newtonsoft.Json.xml 9229 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/bin/Yokogawa.TLSVP.Api.Common.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/bin/Yokogawa.TLSVP.Api.Contract.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/bin/Yokogawa.TLSVP.Api.Domain.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/bin/Yokogawa.TLSVP.Api.WebSite.dll.config 152 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/bin/Yokogawa.TLSVP.Api.WebSite.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/obj/Debug/Yokogawa.TLSVP.Api.WebSite.csproj.FileListAbsolute.txt 40 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/obj/Debug/Yokogawa.TLSVP.Api.WebSite.csprojResolveAssemblyReference.cache patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/obj/Debug/Yokogawa.TLSVP.Api.WebSite.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/obj/Debug/build.force patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/obj/Release/GTech.Solution.Api.WebSite.csproj.FileListAbsolute.txt 40 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/obj/Release/GTech.Solution.Api.WebSite.csprojResolveAssemblyReference.cache patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/obj/Release/GTech.Solution.Api.WebSite.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/obj/Release/Yokogawa.TLSVP.Api.WebSite.csproj.FileListAbsolute.txt 40 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/obj/Release/Yokogawa.TLSVP.Api.WebSite.csprojResolveAssemblyReference.cache patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/obj/Release/Yokogawa.TLSVP.Api.WebSite.pdb patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/packages.config 13 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/scripts/ai.0.22.9-build00167.js 3524 ●●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.Api.WebSite/scripts/ai.0.22.9-build00167.min.js 1 ●●●● patch | view | raw | blame | history
WebApi/GTech.Solution.sln 43 ●●●●● patch | view | raw | blame | history
WebApi/README.md 4 ●●●● patch | view | raw | blame | history
WebApi/packages/JWT.7.3.0/.signature.p7s patch | view | raw | blame | history
WebApi/packages/JWT.7.3.0/JWT.7.3.0.nupkg patch | view | raw | blame | history
WebApi/packages/JWT.7.3.0/lib/net35/JWT.pdb patch | view | raw | blame | history
WebApi/packages/JWT.7.3.0/lib/net35/JWT.xml 1218 ●●●●● patch | view | raw | blame | history
WebApi/packages/JWT.7.3.0/lib/net40/JWT.pdb patch | view | raw | blame | history
WebApi/packages/JWT.7.3.0/lib/net40/JWT.xml 1218 ●●●●● patch | view | raw | blame | history
WebApi/packages/JWT.7.3.0/lib/net46/JWT.pdb patch | view | raw | blame | history
WebApi/packages/JWT.7.3.0/lib/net46/JWT.xml 1218 ●●●●● patch | view | raw | blame | history
WebApi/packages/JWT.7.3.0/lib/netstandard1.3/JWT.pdb patch | view | raw | blame | history
WebApi/packages/JWT.7.3.0/lib/netstandard1.3/JWT.xml 1218 ●●●●● patch | view | raw | blame | history
WebApi/packages/JWT.7.3.0/lib/netstandard2.0/JWT.pdb patch | view | raw | blame | history
WebApi/packages/JWT.7.3.0/lib/netstandard2.0/JWT.xml 1218 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.2.0.0/Microsoft.ApplicationInsights.2.0.0.nupkg patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.2.0.0/lib/dotnet5.4/Microsoft.ApplicationInsights.XML 2591 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.2.0.0/lib/net40/Microsoft.ApplicationInsights.XML 2715 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.2.0.0/lib/net45/Microsoft.ApplicationInsights.XML 2717 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.2.0.0/lib/net46/Microsoft.ApplicationInsights.XML 2858 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.Agent.Intercept.1.2.1/Microsoft.ApplicationInsights.Agent.Intercept.1.2.1.nupkg patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.DependencyCollector.2.0.0/Microsoft.ApplicationInsights.DependencyCollector.2.0.0.nupkg patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.DependencyCollector.2.0.0/content/ApplicationInsights.config.install.xdt 5 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.DependencyCollector.2.0.0/content/ApplicationInsights.config.transform 3 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.DependencyCollector.2.0.0/content/ApplicationInsights.config.uninstall.xdt 6 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.DependencyCollector.2.0.0/lib/net40/Microsoft.AI.DependencyCollector.XML 795 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.DependencyCollector.2.0.0/lib/net45/Microsoft.AI.DependencyCollector.XML 919 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.JavaScript.0.22.9-build00167/Microsoft.ApplicationInsights.JavaScript.0.22.9-build00167.nupkg patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.JavaScript.0.22.9-build00167/content/scripts/ai.0.22.9-build00167.js 3524 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.JavaScript.0.22.9-build00167/content/scripts/ai.0.22.9-build00167.min.js 1 ●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.JavaScript.0.22.9-build00167/tools/prefix.html patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.PerfCounterCollector.2.0.0/Microsoft.ApplicationInsights.PerfCounterCollector.2.0.0.nupkg patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.PerfCounterCollector.2.0.0/content/ApplicationInsights.config.install.xdt 27 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.PerfCounterCollector.2.0.0/content/ApplicationInsights.config.transform 3 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.PerfCounterCollector.2.0.0/content/ApplicationInsights.config.uninstall.xdt 6 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/Microsoft.ApplicationInsights.Web.2.0.0.nupkg patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/content/net40/ApplicationInsights.config.install.xdt 42 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/content/net40/ApplicationInsights.config.transform 3 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/content/net40/ApplicationInsights.config.uninstall.xdt 22 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/content/net40/web.config.install.xdt 43 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/content/net40/web.config.uninstall.xdt 15 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/content/net45/ApplicationInsights.config.install.xdt 42 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/content/net45/ApplicationInsights.config.transform 3 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/content/net45/ApplicationInsights.config.uninstall.xdt 22 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/content/net45/web.config.install.xdt 43 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/content/net45/web.config.uninstall.xdt 15 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/lib/net40/Microsoft.AI.Web.XML 466 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/lib/net45/Microsoft.AI.Web.XML 466 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.2.0.0/Microsoft.ApplicationInsights.WindowsServer.2.0.0.nupkg patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.2.0.0/Tools/install.ps1 19 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.2.0.0/content/ApplicationInsights.config.install.xdt 18 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.2.0.0/content/ApplicationInsights.config.transform 9 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.2.0.0/content/ApplicationInsights.config.uninstall.xdt 17 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.2.0.0/lib/net40/Microsoft.AI.WindowsServer.XML 471 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.2.0.0/lib/net45/Microsoft.AI.WindowsServer.XML 471 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.0.0/Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.0.0.nupkg patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.0.0/content/ApplicationInsights.config.install.xdt 19 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.0.0/content/ApplicationInsights.config.transform 3 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.0.0/content/ApplicationInsights.config.uninstall.xdt 1 ●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.0.0/lib/net40/Microsoft.AI.ServerTelemetryChannel.XML 855 ●●●●● patch | view | raw | blame | history
WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.0.0/lib/net45/Microsoft.AI.ServerTelemetryChannel.XML 855 ●●●●● patch | view | raw | blame | history
WebApi/packages/Newtonsoft.Json.9.0.1/.signature.p7s patch | view | raw | blame | history
WebApi/packages/Newtonsoft.Json.9.0.1/Newtonsoft.Json.9.0.1.nupkg patch | view | raw | blame | history
WebApi/packages/Newtonsoft.Json.9.0.1/lib/net20/Newtonsoft.Json.xml 9793 ●●●●● patch | view | raw | blame | history
WebApi/packages/Newtonsoft.Json.9.0.1/lib/net35/Newtonsoft.Json.xml 8922 ●●●●● patch | view | raw | blame | history
WebApi/packages/Newtonsoft.Json.9.0.1/lib/net40/Newtonsoft.Json.xml 9229 ●●●●● patch | view | raw | blame | history
WebApi/packages/Newtonsoft.Json.9.0.1/lib/net45/Newtonsoft.Json.xml 9229 ●●●●● patch | view | raw | blame | history
WebApi/packages/Newtonsoft.Json.9.0.1/lib/netstandard1.0/Newtonsoft.Json.xml 8756 ●●●●● patch | view | raw | blame | history
WebApi/packages/Newtonsoft.Json.9.0.1/lib/portable-net40+sl5+wp80+win8+wpa81/Newtonsoft.Json.xml 8409 ●●●●● patch | view | raw | blame | history
WebApi/packages/Newtonsoft.Json.9.0.1/lib/portable-net45+wp80+win8+wpa81/Newtonsoft.Json.xml 8756 ●●●●● patch | view | raw | blame | history
WebApi/packages/Newtonsoft.Json.9.0.1/tools/install.ps1 116 ●●●●● patch | view | raw | blame | history
WebForm/README.md 4 ●●●● patch | view | raw | blame | history
MVC/README.md
New file
@@ -0,0 +1,4 @@
## wastesorting
ServicesFabric/README.md
New file
@@ -0,0 +1,4 @@
## wastesorting
WPF/README.md
New file
@@ -0,0 +1,4 @@
## wastesorting
WebApi/.vs/GTech.Solution/v14/.suo
Binary files differ
WebApi/.vs/config/applicationhost.config
New file
@@ -0,0 +1,981 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
    IIS configuration sections.
    For schema documentation, see
    %IIS_BIN%\config\schema\IIS_schema.xml.
    Please make a backup of this file before making any changes to it.
    NOTE: The following environment variables are available to be used
          within this file and are understood by the IIS Express.
          %IIS_USER_HOME% - The IIS Express home directory for the user
          %IIS_SITES_HOME% - The default home directory for sites
          %IIS_BIN% - The location of the IIS Express binaries
          %SYSTEMDRIVE% - The drive letter of %IIS_BIN%
-->
<configuration>
    <!--
        The <configSections> section controls the registration of sections.
        Section is the basic unit of deployment, locking, searching and
        containment for configuration settings.
        Every section belongs to one section group.
        A section group is a container of logically-related sections.
        Sections cannot be nested.
        Section groups may be nested.
        <section
            name=""  [Required, Collection Key] [XML name of the section]
            allowDefinition="Everywhere" [MachineOnly|MachineToApplication|AppHostOnly|Everywhere] [Level where it can be set]
            overrideModeDefault="Allow"  [Allow|Deny] [Default delegation mode]
            allowLocation="true"  [true|false] [Allowed in location tags]
        />
        The recommended way to unlock sections is by using a location tag:
        <location path="Default Web Site" overrideMode="Allow">
            <system.webServer>
                <asp />
            </system.webServer>
        </location>
    -->
    <configSections>
        <sectionGroup name="system.applicationHost">
            <section name="applicationPools" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
            <section name="configHistory" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
            <section name="customMetadata" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
            <section name="listenerAdapters" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
            <section name="log" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
            <section name="serviceAutoStartProviders" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
            <section name="sites" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
            <section name="webLimits" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
        </sectionGroup>
        <sectionGroup name="system.webServer">
            <section name="asp" overrideModeDefault="Deny" />
            <section name="caching" overrideModeDefault="Allow" />
            <section name="cgi" overrideModeDefault="Deny" />
            <section name="defaultDocument" overrideModeDefault="Allow" />
            <section name="directoryBrowse" overrideModeDefault="Allow" />
            <section name="fastCgi" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
            <section name="globalModules" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
            <section name="handlers" overrideModeDefault="Deny" />
            <section name="httpCompression" overrideModeDefault="Allow" allowDefinition="Everywhere" />
            <section name="httpErrors" overrideModeDefault="Allow" />
            <section name="httpLogging" overrideModeDefault="Deny" />
            <section name="httpProtocol" overrideModeDefault="Allow" />
            <section name="httpRedirect" overrideModeDefault="Allow" />
            <section name="httpTracing" overrideModeDefault="Deny" />
            <section name="isapiFilters" allowDefinition="MachineToApplication" overrideModeDefault="Deny" />
            <section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" />
            <section name="applicationInitialization" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />
            <section name="odbcLogging" overrideModeDefault="Deny" />
            <sectionGroup name="security">
                <section name="access" overrideModeDefault="Deny" />
                <section name="applicationDependencies" overrideModeDefault="Deny" />
                <sectionGroup name="authentication">
                    <section name="anonymousAuthentication" overrideModeDefault="Deny" />
                    <section name="basicAuthentication" overrideModeDefault="Deny" />
                    <section name="clientCertificateMappingAuthentication" overrideModeDefault="Deny" />
                    <section name="digestAuthentication" overrideModeDefault="Deny" />
                    <section name="iisClientCertificateMappingAuthentication" overrideModeDefault="Deny" />
                    <section name="windowsAuthentication" overrideModeDefault="Deny" />
                </sectionGroup>
                <section name="authorization" overrideModeDefault="Allow" />
                <section name="ipSecurity" overrideModeDefault="Deny" />
                <section name="dynamicIpSecurity" overrideModeDefault="Deny" />
                <section name="isapiCgiRestriction" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
                <section name="requestFiltering" overrideModeDefault="Allow" />
            </sectionGroup>
            <section name="serverRuntime" overrideModeDefault="Deny" />
            <section name="serverSideInclude" overrideModeDefault="Deny" />
            <section name="staticContent" overrideModeDefault="Allow" />
            <sectionGroup name="tracing">
                <section name="traceFailedRequests" overrideModeDefault="Allow" />
                <section name="traceProviderDefinitions" overrideModeDefault="Deny" />
            </sectionGroup>
            <section name="urlCompression" overrideModeDefault="Allow" />
            <section name="validation" overrideModeDefault="Allow" />
            <sectionGroup name="webdav">
                <section name="globalSettings" overrideModeDefault="Deny" />
                <section name="authoring" overrideModeDefault="Deny" />
                <section name="authoringRules" overrideModeDefault="Deny" />
            </sectionGroup>
            <sectionGroup name="rewrite">
                <section name="allowedServerVariables" overrideModeDefault="Deny" />
                <section name="rules" overrideModeDefault="Allow" />
                <section name="outboundRules" overrideModeDefault="Allow" />
                <section name="globalRules" overrideModeDefault="Deny" allowDefinition="AppHostOnly" />
                <section name="providers" overrideModeDefault="Allow" />
                <section name="rewriteMaps" overrideModeDefault="Allow" />
            </sectionGroup>
            <section name="webSocket" overrideModeDefault="Deny" />
        <section name="aspNetCore" overrideModeDefault="Allow" /></sectionGroup>
    </configSections>
    <configProtectedData>
        <providers>
            <add name="IISWASOnlyRsaProvider" type="" description="Uses RsaCryptoServiceProvider to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useMachineContainer="true" useOAEP="false" />
            <add name="AesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisConfigurationKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAA/HKxkz6alrlAPez0IUgujj/6k3WxCDriHp6jvpv3yEZmo7h6SMzGLxo4mTrIQVHSkB7tmElHKfUFTzE2BWF7nFWHY6Z6qmGBauFzwJMwESjril7Gjz69RBFH259HQ6aRDq9Xfx7U7H4HtdmnKNqGjgl/hwPQBGeIlWiDh+sYv3vKB0QU971tjX6H2B+9armlnC8UOuA6JYMDMI/VLLL16sng0fWAy5JYe0YVABVjiAWDW264RZW9Tr1Oax4qHZKg+SdjULxeOc2YmpX+d0yeITo1HkPF1hN1gHpIPIUDo05ilHUNfR3OkjVCIQK4cFKCq1s8NH+y+13MxUC4Fn1AlQ==" />
            <add name="IISWASOnlyAesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAALmU8lTC+v2qtfQiiiquvvLpUQqKLEXs+jSKoWCM/uPhyB++k4dwug19mGidNK5FYiWK2KYE1yhjVJcbp12E98Q0R2nT7eBiCMY2JairxQ591rqABK7keGaIjwH7PwGzSpILl3RJ4YFvJ/7ZXEJxeDZIjW8ZxWVXx+/VyHs9U3WguLEkgMUX3jrxJi8LouxaIVPJAv/YQ1ZCWs8zImitxX/C/7o7yaIxznfsN5nGQzQfpUDPeby99aw2zPVTtZI2LaWIBON8guABvZ6JtJVDWmfdK6sodbnwdZkr6/Z2rfvamT1dC1SpQrGG7ulR/f9/GXvCaW10ZVKxekBF/CYlNMg==" />
        </providers>
    </configProtectedData>
    <system.applicationHost>
        <applicationPools>
            <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
            <add name="Clr4ClassicAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
            <add name="Clr2IntegratedAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
            <add name="Clr2ClassicAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
            <add name="UnmanagedClassicAppPool" managedRuntimeVersion="" managedPipelineMode="Classic" autoStart="true" />
            <applicationPoolDefaults managedRuntimeVersion="v4.0">
                <processModel loadUserProfile="true" setProfileEnvironment="false" />
            </applicationPoolDefaults>
        </applicationPools>
        <!--
          The <listenerAdapters> section defines the protocols with which the
          Windows Process Activation Service (WAS) binds.
        -->
        <listenerAdapters>
            <add name="http" />
        </listenerAdapters>
        <sites>
            <site name="WebSite1" id="1" serverAutoStart="true">
                <application path="/">
                    <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation=":8080:localhost" />
                </bindings>
            </site>
            <site name="Yokogawa.TLSVP.Api.WebSite" id="2">
                <application path="/" applicationPool="Clr4IntegratedAppPool">
                    <virtualDirectory path="/" physicalPath="D:\Solution\GTech.Solution.Api.WebSite" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation="*:2306:localhost" />
                </bindings>
            </site>
            <siteDefaults>
                <!-- To enable logging, please change the below attribute "enabled" to "true" -->
                <logFile logFormat="W3C" directory="%AppData%\Microsoft\IISExpressLogs" enabled="false" />
                <traceFailedRequestsLogging directory="%AppData%\Microsoft" enabled="false" maxLogFileSizeKB="1024" />
            </siteDefaults>
            <applicationDefaults applicationPool="Clr4IntegratedAppPool" />
            <virtualDirectoryDefaults allowSubDirConfig="true" />
        </sites>
        <webLimits />
    </system.applicationHost>
    <system.webServer>
        <serverRuntime />
        <asp scriptErrorSentToBrowser="true">
            <cache diskTemplateCacheDirectory="%TEMP%\iisexpress\ASP Compiled Templates" />
            <limits />
        </asp>
        <caching enabled="true" enableKernelCache="true">
        </caching>
        <cgi />
        <defaultDocument enabled="true">
            <files>
                <add value="Default.htm" />
                <add value="Default.asp" />
                <add value="index.htm" />
                <add value="index.html" />
                <add value="iisstart.htm" />
                <add value="default.aspx" />
            </files>
        </defaultDocument>
        <directoryBrowse enabled="false" />
        <fastCgi />
        <!--
          The <globalModules> section defines all native-code modules.
          To enable a module, specify it in the <modules> section.
        -->
        <globalModules>
            <add name="HttpLoggingModule" image="%IIS_BIN%\loghttp.dll" />
            <add name="UriCacheModule" image="%IIS_BIN%\cachuri.dll" />
            <add name="TokenCacheModule" image="%IIS_BIN%\cachtokn.dll" />
            <add name="DynamicCompressionModule" image="%IIS_BIN%\compdyn.dll" />
            <add name="StaticCompressionModule" image="%IIS_BIN%\compstat.dll" />
            <add name="DefaultDocumentModule" image="%IIS_BIN%\defdoc.dll" />
            <add name="DirectoryListingModule" image="%IIS_BIN%\dirlist.dll" />
            <add name="ProtocolSupportModule" image="%IIS_BIN%\protsup.dll" />
            <add name="HttpRedirectionModule" image="%IIS_BIN%\redirect.dll" />
            <add name="ServerSideIncludeModule" image="%IIS_BIN%\iis_ssi.dll" />
            <add name="StaticFileModule" image="%IIS_BIN%\static.dll" />
            <add name="AnonymousAuthenticationModule" image="%IIS_BIN%\authanon.dll" />
            <add name="CertificateMappingAuthenticationModule" image="%IIS_BIN%\authcert.dll" />
            <add name="UrlAuthorizationModule" image="%IIS_BIN%\urlauthz.dll" />
            <add name="BasicAuthenticationModule" image="%IIS_BIN%\authbas.dll" />
            <add name="WindowsAuthenticationModule" image="%IIS_BIN%\authsspi.dll" />
            <add name="IISCertificateMappingAuthenticationModule" image="%IIS_BIN%\authmap.dll" />
            <add name="IpRestrictionModule" image="%IIS_BIN%\iprestr.dll" />
            <add name="DynamicIpRestrictionModule" image="%IIS_BIN%\diprestr.dll" />
            <add name="RequestFilteringModule" image="%IIS_BIN%\modrqflt.dll" />
            <add name="CustomLoggingModule" image="%IIS_BIN%\logcust.dll" />
            <add name="CustomErrorModule" image="%IIS_BIN%\custerr.dll" />
            <add name="FailedRequestsTracingModule" image="%IIS_BIN%\iisfreb.dll" />
            <add name="RequestMonitorModule" image="%IIS_BIN%\iisreqs.dll" />
            <add name="IsapiModule" image="%IIS_BIN%\isapi.dll" />
            <add name="IsapiFilterModule" image="%IIS_BIN%\filter.dll" />
            <add name="CgiModule" image="%IIS_BIN%\cgi.dll" />
            <add name="FastCgiModule" image="%IIS_BIN%\iisfcgi.dll" />
            <!--            <add name="WebDAVModule" image="%IIS_BIN%\webdav.dll" /> -->
            <add name="RewriteModule" image="%IIS_BIN%\rewrite.dll" />
            <add name="ConfigurationValidationModule" image="%IIS_BIN%\validcfg.dll" />
            <add name="WebSocketModule" image="%IIS_BIN%\iiswsock.dll" />
            <add name="WebMatrixSupportModule" image="%IIS_BIN%\webmatrixsup.dll" />
            <add name="ManagedEngine" image="%windir%\Microsoft.NET\Framework\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness32" />
            <add name="ManagedEngine64" image="%windir%\Microsoft.NET\Framework64\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness64" />
            <add name="ManagedEngineV4.0_32bit" image="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" />
            <add name="ManagedEngineV4.0_64bit" image="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness64" />
            <add name="ApplicationInitializationModule" image="%IIS_BIN%\warmup.dll" />
            <add name="AspNetCoreModule" image="%IIS_BIN%\aspnetcore.dll" />
            <add name="AspNetCoreModuleV2" image="%IIS_BIN%\Asp.Net Core Module\V2\aspnetcorev2.dll" />
        </globalModules>
        <httpCompression directory="%TEMP%">
            <scheme name="gzip" dll="%IIS_BIN%\gzip.dll" />
            <dynamicTypes>
                <add mimeType="text/*" enabled="true" />
                <add mimeType="message/*" enabled="true" />
                <add mimeType="application/x-javascript" enabled="true" />
                <add mimeType="application/javascript" enabled="true" />
                <add mimeType="*/*" enabled="false" />
            </dynamicTypes>
            <staticTypes>
                <add mimeType="text/*" enabled="true" />
                <add mimeType="message/*" enabled="true" />
                <add mimeType="application/javascript" enabled="true" />
                <add mimeType="application/atom+xml" enabled="true" />
                <add mimeType="application/xaml+xml" enabled="true" />
                <add mimeType="image/svg+xml" enabled="true" />
                <add mimeType="*/*" enabled="false" />
            </staticTypes>
        </httpCompression>
        <httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">
            <error statusCode="401" prefixLanguageFilePath="%IIS_BIN%\custerr" path="401.htm" />
            <error statusCode="403" prefixLanguageFilePath="%IIS_BIN%\custerr" path="403.htm" />
            <error statusCode="404" prefixLanguageFilePath="%IIS_BIN%\custerr" path="404.htm" />
            <error statusCode="405" prefixLanguageFilePath="%IIS_BIN%\custerr" path="405.htm" />
            <error statusCode="406" prefixLanguageFilePath="%IIS_BIN%\custerr" path="406.htm" />
            <error statusCode="412" prefixLanguageFilePath="%IIS_BIN%\custerr" path="412.htm" />
            <error statusCode="500" prefixLanguageFilePath="%IIS_BIN%\custerr" path="500.htm" />
            <error statusCode="501" prefixLanguageFilePath="%IIS_BIN%\custerr" path="501.htm" />
            <error statusCode="502" prefixLanguageFilePath="%IIS_BIN%\custerr" path="502.htm" />
        </httpErrors>
        <httpLogging dontLog="false" />
        <httpProtocol>
            <customHeaders>
                <clear />
                <add name="X-Powered-By" value="ASP.NET" />
            </customHeaders>
            <redirectHeaders>
                <clear />
            </redirectHeaders>
        </httpProtocol>
        <httpRedirect enabled="false" />
        <httpTracing />
        <isapiFilters>
            <filter name="ASP.Net_2.0.50727-64" path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv2.0" />
            <filter name="ASP.Net_2.0.50727.0" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv2.0" />
            <filter name="ASP.Net_2.0_for_v1.1" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="runtimeVersionv1.1" />
            <filter name="ASP.Net_4.0_32bit" path="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv4.0" />
            <filter name="ASP.Net_4.0_64bit" path="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv4.0" />
        </isapiFilters>
        <odbcLogging />
        <security>
            <access sslFlags="None" />
            <applicationDependencies>
                <application name="Active Server Pages" groupId="ASP" />
            </applicationDependencies>
            <authentication>
                <anonymousAuthentication enabled="true" userName="" />
                <basicAuthentication enabled="false" />
                <clientCertificateMappingAuthentication enabled="false" />
                <digestAuthentication enabled="false" />
                <iisClientCertificateMappingAuthentication enabled="false">
                </iisClientCertificateMappingAuthentication>
                <windowsAuthentication enabled="false">
                    <providers>
                        <add value="Negotiate" />
                        <add value="NTLM" />
                    </providers>
                </windowsAuthentication>
            </authentication>
            <authorization>
                <add accessType="Allow" users="*" />
            </authorization>
            <ipSecurity allowUnlisted="true" />
            <isapiCgiRestriction notListedIsapisAllowed="true" notListedCgisAllowed="true">
                <add path="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" />
                <add path="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" />
                <add path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" />
                <add path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" />
            </isapiCgiRestriction>
            <requestFiltering>
                <fileExtensions allowUnlisted="true" applyToWebDAV="true">
                    <add fileExtension=".asa" allowed="false" />
                    <add fileExtension=".asax" allowed="false" />
                    <add fileExtension=".ascx" allowed="false" />
                    <add fileExtension=".master" allowed="false" />
                    <add fileExtension=".skin" allowed="false" />
                    <add fileExtension=".browser" allowed="false" />
                    <add fileExtension=".sitemap" allowed="false" />
                    <add fileExtension=".config" allowed="false" />
                    <add fileExtension=".cs" allowed="false" />
                    <add fileExtension=".csproj" allowed="false" />
                    <add fileExtension=".vb" allowed="false" />
                    <add fileExtension=".vbproj" allowed="false" />
                    <add fileExtension=".webinfo" allowed="false" />
                    <add fileExtension=".licx" allowed="false" />
                    <add fileExtension=".resx" allowed="false" />
                    <add fileExtension=".resources" allowed="false" />
                    <add fileExtension=".mdb" allowed="false" />
                    <add fileExtension=".vjsproj" allowed="false" />
                    <add fileExtension=".java" allowed="false" />
                    <add fileExtension=".jsl" allowed="false" />
                    <add fileExtension=".ldb" allowed="false" />
                    <add fileExtension=".dsdgm" allowed="false" />
                    <add fileExtension=".ssdgm" allowed="false" />
                    <add fileExtension=".lsad" allowed="false" />
                    <add fileExtension=".ssmap" allowed="false" />
                    <add fileExtension=".cd" allowed="false" />
                    <add fileExtension=".dsprototype" allowed="false" />
                    <add fileExtension=".lsaprototype" allowed="false" />
                    <add fileExtension=".sdm" allowed="false" />
                    <add fileExtension=".sdmDocument" allowed="false" />
                    <add fileExtension=".mdf" allowed="false" />
                    <add fileExtension=".ldf" allowed="false" />
                    <add fileExtension=".ad" allowed="false" />
                    <add fileExtension=".dd" allowed="false" />
                    <add fileExtension=".ldd" allowed="false" />
                    <add fileExtension=".sd" allowed="false" />
                    <add fileExtension=".adprototype" allowed="false" />
                    <add fileExtension=".lddprototype" allowed="false" />
                    <add fileExtension=".exclude" allowed="false" />
                    <add fileExtension=".refresh" allowed="false" />
                    <add fileExtension=".compiled" allowed="false" />
                    <add fileExtension=".msgx" allowed="false" />
                    <add fileExtension=".vsdisco" allowed="false" />
                    <add fileExtension=".rules" allowed="false" />
                </fileExtensions>
                <verbs allowUnlisted="true" applyToWebDAV="true" />
                <hiddenSegments applyToWebDAV="true">
                    <add segment="web.config" />
                    <add segment="bin" />
                    <add segment="App_code" />
                    <add segment="App_GlobalResources" />
                    <add segment="App_LocalResources" />
                    <add segment="App_WebReferences" />
                    <add segment="App_Data" />
                    <add segment="App_Browsers" />
                </hiddenSegments>
            </requestFiltering>
        </security>
        <serverSideInclude ssiExecDisable="false" />
        <staticContent lockAttributes="isDocFooterFileName">
            <mimeMap fileExtension=".323" mimeType="text/h323" />
            <mimeMap fileExtension=".3g2" mimeType="video/3gpp2" />
            <mimeMap fileExtension=".3gp2" mimeType="video/3gpp2" />
            <mimeMap fileExtension=".3gp" mimeType="video/3gpp" />
            <mimeMap fileExtension=".3gpp" mimeType="video/3gpp" />
            <mimeMap fileExtension=".aac" mimeType="audio/aac" />
            <mimeMap fileExtension=".aaf" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".aca" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".accdb" mimeType="application/msaccess" />
            <mimeMap fileExtension=".accde" mimeType="application/msaccess" />
            <mimeMap fileExtension=".accdt" mimeType="application/msaccess" />
            <mimeMap fileExtension=".acx" mimeType="application/internet-property-stream" />
            <mimeMap fileExtension=".adt" mimeType="audio/vnd.dlna.adts" />
            <mimeMap fileExtension=".adts" mimeType="audio/vnd.dlna.adts" />
            <mimeMap fileExtension=".afm" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".ai" mimeType="application/postscript" />
            <mimeMap fileExtension=".aif" mimeType="audio/x-aiff" />
            <mimeMap fileExtension=".aifc" mimeType="audio/aiff" />
            <mimeMap fileExtension=".aiff" mimeType="audio/aiff" />
            <mimeMap fileExtension=".appcache" mimeType="text/cache-manifest" />
            <mimeMap fileExtension=".application" mimeType="application/x-ms-application" />
            <mimeMap fileExtension=".art" mimeType="image/x-jg" />
            <mimeMap fileExtension=".asd" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".asf" mimeType="video/x-ms-asf" />
            <mimeMap fileExtension=".asi" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".asm" mimeType="text/plain" />
            <mimeMap fileExtension=".asr" mimeType="video/x-ms-asf" />
            <mimeMap fileExtension=".asx" mimeType="video/x-ms-asf" />
            <mimeMap fileExtension=".atom" mimeType="application/atom+xml" />
            <mimeMap fileExtension=".au" mimeType="audio/basic" />
            <mimeMap fileExtension=".avi" mimeType="video/avi" />
            <mimeMap fileExtension=".axs" mimeType="application/olescript" />
            <mimeMap fileExtension=".bas" mimeType="text/plain" />
            <mimeMap fileExtension=".bcpio" mimeType="application/x-bcpio" />
            <mimeMap fileExtension=".bin" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".bmp" mimeType="image/bmp" />
            <mimeMap fileExtension=".c" mimeType="text/plain" />
            <mimeMap fileExtension=".cab" mimeType="application/vnd.ms-cab-compressed" />
            <mimeMap fileExtension=".calx" mimeType="application/vnd.ms-office.calx" />
            <mimeMap fileExtension=".cat" mimeType="application/vnd.ms-pki.seccat" />
            <mimeMap fileExtension=".cdf" mimeType="application/x-cdf" />
            <mimeMap fileExtension=".chm" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".class" mimeType="application/x-java-applet" />
            <mimeMap fileExtension=".clp" mimeType="application/x-msclip" />
            <mimeMap fileExtension=".cmx" mimeType="image/x-cmx" />
            <mimeMap fileExtension=".cnf" mimeType="text/plain" />
            <mimeMap fileExtension=".cod" mimeType="image/cis-cod" />
            <mimeMap fileExtension=".cpio" mimeType="application/x-cpio" />
            <mimeMap fileExtension=".cpp" mimeType="text/plain" />
            <mimeMap fileExtension=".crd" mimeType="application/x-mscardfile" />
            <mimeMap fileExtension=".crl" mimeType="application/pkix-crl" />
            <mimeMap fileExtension=".crt" mimeType="application/x-x509-ca-cert" />
            <mimeMap fileExtension=".csh" mimeType="application/x-csh" />
            <mimeMap fileExtension=".css" mimeType="text/css" />
            <mimeMap fileExtension=".csv" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".cur" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".dcr" mimeType="application/x-director" />
            <mimeMap fileExtension=".deploy" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".der" mimeType="application/x-x509-ca-cert" />
            <mimeMap fileExtension=".dib" mimeType="image/bmp" />
            <mimeMap fileExtension=".dir" mimeType="application/x-director" />
            <mimeMap fileExtension=".disco" mimeType="text/xml" />
            <mimeMap fileExtension=".dll" mimeType="application/x-msdownload" />
            <mimeMap fileExtension=".dll.config" mimeType="text/xml" />
            <mimeMap fileExtension=".dlm" mimeType="text/dlm" />
            <mimeMap fileExtension=".doc" mimeType="application/msword" />
            <mimeMap fileExtension=".docm" mimeType="application/vnd.ms-word.document.macroEnabled.12" />
            <mimeMap fileExtension=".docx" mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document" />
            <mimeMap fileExtension=".dot" mimeType="application/msword" />
            <mimeMap fileExtension=".dotm" mimeType="application/vnd.ms-word.template.macroEnabled.12" />
            <mimeMap fileExtension=".dotx" mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.template" />
            <mimeMap fileExtension=".dsp" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".dtd" mimeType="text/xml" />
            <mimeMap fileExtension=".dvi" mimeType="application/x-dvi" />
            <mimeMap fileExtension=".dvr-ms" mimeType="video/x-ms-dvr" />
            <mimeMap fileExtension=".dwf" mimeType="drawing/x-dwf" />
            <mimeMap fileExtension=".dwp" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".dxr" mimeType="application/x-director" />
            <mimeMap fileExtension=".eml" mimeType="message/rfc822" />
            <mimeMap fileExtension=".emz" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
            <mimeMap fileExtension=".eps" mimeType="application/postscript" />
            <mimeMap fileExtension=".esd" mimeType="application/vnd.ms-cab-compressed" />
            <mimeMap fileExtension=".etx" mimeType="text/x-setext" />
            <mimeMap fileExtension=".evy" mimeType="application/envoy" />
            <mimeMap fileExtension=".exe" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".exe.config" mimeType="text/xml" />
            <mimeMap fileExtension=".fdf" mimeType="application/vnd.fdf" />
            <mimeMap fileExtension=".fif" mimeType="application/fractals" />
            <mimeMap fileExtension=".fla" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".flr" mimeType="x-world/x-vrml" />
            <mimeMap fileExtension=".flv" mimeType="video/x-flv" />
            <mimeMap fileExtension=".gif" mimeType="image/gif" />
            <mimeMap fileExtension=".glb" mimeType="model/gltf-binary" />
            <mimeMap fileExtension=".gtar" mimeType="application/x-gtar" />
            <mimeMap fileExtension=".gz" mimeType="application/x-gzip" />
            <mimeMap fileExtension=".h" mimeType="text/plain" />
            <mimeMap fileExtension=".hdf" mimeType="application/x-hdf" />
            <mimeMap fileExtension=".hdml" mimeType="text/x-hdml" />
            <mimeMap fileExtension=".hhc" mimeType="application/x-oleobject" />
            <mimeMap fileExtension=".hhk" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".hhp" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".hlp" mimeType="application/winhlp" />
            <mimeMap fileExtension=".hqx" mimeType="application/mac-binhex40" />
            <mimeMap fileExtension=".hta" mimeType="application/hta" />
            <mimeMap fileExtension=".htc" mimeType="text/x-component" />
            <mimeMap fileExtension=".htm" mimeType="text/html" />
            <mimeMap fileExtension=".html" mimeType="text/html" />
            <mimeMap fileExtension=".htt" mimeType="text/webviewhtml" />
            <mimeMap fileExtension=".hxt" mimeType="text/html" />
            <mimeMap fileExtension=".ico" mimeType="image/x-icon" />
            <mimeMap fileExtension=".ics" mimeType="text/calendar" />
            <mimeMap fileExtension=".ief" mimeType="image/ief" />
            <mimeMap fileExtension=".iii" mimeType="application/x-iphone" />
            <mimeMap fileExtension=".inf" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".ins" mimeType="application/x-internet-signup" />
            <mimeMap fileExtension=".isp" mimeType="application/x-internet-signup" />
            <mimeMap fileExtension=".IVF" mimeType="video/x-ivf" />
            <mimeMap fileExtension=".jar" mimeType="application/java-archive" />
            <mimeMap fileExtension=".java" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".jck" mimeType="application/liquidmotion" />
            <mimeMap fileExtension=".jcz" mimeType="application/liquidmotion" />
            <mimeMap fileExtension=".jfif" mimeType="image/pjpeg" />
            <mimeMap fileExtension=".jpb" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".jpe" mimeType="image/jpeg" />
            <mimeMap fileExtension=".jpeg" mimeType="image/jpeg" />
            <mimeMap fileExtension=".jpg" mimeType="image/jpeg" />
            <mimeMap fileExtension=".js" mimeType="application/javascript" />
            <mimeMap fileExtension=".json" mimeType="application/json" />
            <mimeMap fileExtension=".jsonld" mimeType="application/ld+json" />
            <mimeMap fileExtension=".jsx" mimeType="text/jscript" />
            <mimeMap fileExtension=".latex" mimeType="application/x-latex" />
            <mimeMap fileExtension=".less" mimeType="text/css" />
            <mimeMap fileExtension=".lit" mimeType="application/x-ms-reader" />
            <mimeMap fileExtension=".lpk" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".lsf" mimeType="video/x-la-asf" />
            <mimeMap fileExtension=".lsx" mimeType="video/x-la-asf" />
            <mimeMap fileExtension=".lzh" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".m13" mimeType="application/x-msmediaview" />
            <mimeMap fileExtension=".m14" mimeType="application/x-msmediaview" />
            <mimeMap fileExtension=".m1v" mimeType="video/mpeg" />
            <mimeMap fileExtension=".m2ts" mimeType="video/vnd.dlna.mpeg-tts" />
            <mimeMap fileExtension=".m3u" mimeType="audio/x-mpegurl" />
            <mimeMap fileExtension=".m4a" mimeType="audio/mp4" />
            <mimeMap fileExtension=".m4v" mimeType="video/mp4" />
            <mimeMap fileExtension=".man" mimeType="application/x-troff-man" />
            <mimeMap fileExtension=".manifest" mimeType="application/x-ms-manifest" />
            <mimeMap fileExtension=".map" mimeType="text/plain" />
            <mimeMap fileExtension=".mdb" mimeType="application/x-msaccess" />
            <mimeMap fileExtension=".mdp" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".me" mimeType="application/x-troff-me" />
            <mimeMap fileExtension=".mht" mimeType="message/rfc822" />
            <mimeMap fileExtension=".mhtml" mimeType="message/rfc822" />
            <mimeMap fileExtension=".mid" mimeType="audio/mid" />
            <mimeMap fileExtension=".midi" mimeType="audio/mid" />
            <mimeMap fileExtension=".mix" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".mmf" mimeType="application/x-smaf" />
            <mimeMap fileExtension=".mno" mimeType="text/xml" />
            <mimeMap fileExtension=".mny" mimeType="application/x-msmoney" />
            <mimeMap fileExtension=".mov" mimeType="video/quicktime" />
            <mimeMap fileExtension=".movie" mimeType="video/x-sgi-movie" />
            <mimeMap fileExtension=".mp2" mimeType="video/mpeg" />
            <mimeMap fileExtension=".mp3" mimeType="audio/mpeg" />
            <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
            <mimeMap fileExtension=".mp4v" mimeType="video/mp4" />
            <mimeMap fileExtension=".mpa" mimeType="video/mpeg" />
            <mimeMap fileExtension=".mpe" mimeType="video/mpeg" />
            <mimeMap fileExtension=".mpeg" mimeType="video/mpeg" />
            <mimeMap fileExtension=".mpg" mimeType="video/mpeg" />
            <mimeMap fileExtension=".mpp" mimeType="application/vnd.ms-project" />
            <mimeMap fileExtension=".mpv2" mimeType="video/mpeg" />
            <mimeMap fileExtension=".ms" mimeType="application/x-troff-ms" />
            <mimeMap fileExtension=".msi" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".mso" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".mvb" mimeType="application/x-msmediaview" />
            <mimeMap fileExtension=".mvc" mimeType="application/x-miva-compiled" />
            <mimeMap fileExtension=".nc" mimeType="application/x-netcdf" />
            <mimeMap fileExtension=".nsc" mimeType="video/x-ms-asf" />
            <mimeMap fileExtension=".nws" mimeType="message/rfc822" />
            <mimeMap fileExtension=".ocx" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".oda" mimeType="application/oda" />
            <mimeMap fileExtension=".odc" mimeType="text/x-ms-odc" />
            <mimeMap fileExtension=".ods" mimeType="application/oleobject" />
            <mimeMap fileExtension=".oga" mimeType="audio/ogg" />
            <mimeMap fileExtension=".ogg" mimeType="video/ogg" />
            <mimeMap fileExtension=".ogv" mimeType="video/ogg" />
            <mimeMap fileExtension=".one" mimeType="application/onenote" />
            <mimeMap fileExtension=".onea" mimeType="application/onenote" />
            <mimeMap fileExtension=".onetoc" mimeType="application/onenote" />
            <mimeMap fileExtension=".onetoc2" mimeType="application/onenote" />
            <mimeMap fileExtension=".onetmp" mimeType="application/onenote" />
            <mimeMap fileExtension=".onepkg" mimeType="application/onenote" />
            <mimeMap fileExtension=".osdx" mimeType="application/opensearchdescription+xml" />
            <mimeMap fileExtension=".otf" mimeType="font/otf" />
            <mimeMap fileExtension=".p10" mimeType="application/pkcs10" />
            <mimeMap fileExtension=".p12" mimeType="application/x-pkcs12" />
            <mimeMap fileExtension=".p7b" mimeType="application/x-pkcs7-certificates" />
            <mimeMap fileExtension=".p7c" mimeType="application/pkcs7-mime" />
            <mimeMap fileExtension=".p7m" mimeType="application/pkcs7-mime" />
            <mimeMap fileExtension=".p7r" mimeType="application/x-pkcs7-certreqresp" />
            <mimeMap fileExtension=".p7s" mimeType="application/pkcs7-signature" />
            <mimeMap fileExtension=".pbm" mimeType="image/x-portable-bitmap" />
            <mimeMap fileExtension=".pcx" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".pcz" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".pdf" mimeType="application/pdf" />
            <mimeMap fileExtension=".pfb" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".pfm" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".pfx" mimeType="application/x-pkcs12" />
            <mimeMap fileExtension=".pgm" mimeType="image/x-portable-graymap" />
            <mimeMap fileExtension=".pko" mimeType="application/vnd.ms-pki.pko" />
            <mimeMap fileExtension=".pma" mimeType="application/x-perfmon" />
            <mimeMap fileExtension=".pmc" mimeType="application/x-perfmon" />
            <mimeMap fileExtension=".pml" mimeType="application/x-perfmon" />
            <mimeMap fileExtension=".pmr" mimeType="application/x-perfmon" />
            <mimeMap fileExtension=".pmw" mimeType="application/x-perfmon" />
            <mimeMap fileExtension=".png" mimeType="image/png" />
            <mimeMap fileExtension=".pnm" mimeType="image/x-portable-anymap" />
            <mimeMap fileExtension=".pnz" mimeType="image/png" />
            <mimeMap fileExtension=".pot" mimeType="application/vnd.ms-powerpoint" />
            <mimeMap fileExtension=".potm" mimeType="application/vnd.ms-powerpoint.template.macroEnabled.12" />
            <mimeMap fileExtension=".potx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.template" />
            <mimeMap fileExtension=".ppam" mimeType="application/vnd.ms-powerpoint.addin.macroEnabled.12" />
            <mimeMap fileExtension=".ppm" mimeType="image/x-portable-pixmap" />
            <mimeMap fileExtension=".pps" mimeType="application/vnd.ms-powerpoint" />
            <mimeMap fileExtension=".ppsm" mimeType="application/vnd.ms-powerpoint.slideshow.macroEnabled.12" />
            <mimeMap fileExtension=".ppsx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.slideshow" />
            <mimeMap fileExtension=".ppt" mimeType="application/vnd.ms-powerpoint" />
            <mimeMap fileExtension=".pptm" mimeType="application/vnd.ms-powerpoint.presentation.macroEnabled.12" />
            <mimeMap fileExtension=".pptx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.presentation" />
            <mimeMap fileExtension=".prf" mimeType="application/pics-rules" />
            <mimeMap fileExtension=".prm" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".prx" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".ps" mimeType="application/postscript" />
            <mimeMap fileExtension=".psd" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".psm" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".psp" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".pub" mimeType="application/x-mspublisher" />
            <mimeMap fileExtension=".qt" mimeType="video/quicktime" />
            <mimeMap fileExtension=".qtl" mimeType="application/x-quicktimeplayer" />
            <mimeMap fileExtension=".qxd" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".ra" mimeType="audio/x-pn-realaudio" />
            <mimeMap fileExtension=".ram" mimeType="audio/x-pn-realaudio" />
            <mimeMap fileExtension=".rar" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".ras" mimeType="image/x-cmu-raster" />
            <mimeMap fileExtension=".rf" mimeType="image/vnd.rn-realflash" />
            <mimeMap fileExtension=".rgb" mimeType="image/x-rgb" />
            <mimeMap fileExtension=".rm" mimeType="application/vnd.rn-realmedia" />
            <mimeMap fileExtension=".rmi" mimeType="audio/mid" />
            <mimeMap fileExtension=".roff" mimeType="application/x-troff" />
            <mimeMap fileExtension=".rpm" mimeType="audio/x-pn-realaudio-plugin" />
            <mimeMap fileExtension=".rtf" mimeType="application/rtf" />
            <mimeMap fileExtension=".rtx" mimeType="text/richtext" />
            <mimeMap fileExtension=".scd" mimeType="application/x-msschedule" />
            <mimeMap fileExtension=".sct" mimeType="text/scriptlet" />
            <mimeMap fileExtension=".sea" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".setpay" mimeType="application/set-payment-initiation" />
            <mimeMap fileExtension=".setreg" mimeType="application/set-registration-initiation" />
            <mimeMap fileExtension=".sgml" mimeType="text/sgml" />
            <mimeMap fileExtension=".sh" mimeType="application/x-sh" />
            <mimeMap fileExtension=".shar" mimeType="application/x-shar" />
            <mimeMap fileExtension=".sit" mimeType="application/x-stuffit" />
            <mimeMap fileExtension=".sldm" mimeType="application/vnd.ms-powerpoint.slide.macroEnabled.12" />
            <mimeMap fileExtension=".sldx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.slide" />
            <mimeMap fileExtension=".smd" mimeType="audio/x-smd" />
            <mimeMap fileExtension=".smi" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".smx" mimeType="audio/x-smd" />
            <mimeMap fileExtension=".smz" mimeType="audio/x-smd" />
            <mimeMap fileExtension=".snd" mimeType="audio/basic" />
            <mimeMap fileExtension=".snp" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".spc" mimeType="application/x-pkcs7-certificates" />
            <mimeMap fileExtension=".spl" mimeType="application/futuresplash" />
            <mimeMap fileExtension=".spx" mimeType="audio/ogg" />
            <mimeMap fileExtension=".src" mimeType="application/x-wais-source" />
            <mimeMap fileExtension=".ssm" mimeType="application/streamingmedia" />
            <mimeMap fileExtension=".sst" mimeType="application/vnd.ms-pki.certstore" />
            <mimeMap fileExtension=".stl" mimeType="application/vnd.ms-pki.stl" />
            <mimeMap fileExtension=".sv4cpio" mimeType="application/x-sv4cpio" />
            <mimeMap fileExtension=".sv4crc" mimeType="application/x-sv4crc" />
            <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
            <mimeMap fileExtension=".svgz" mimeType="image/svg+xml" />
            <mimeMap fileExtension=".swf" mimeType="application/x-shockwave-flash" />
            <mimeMap fileExtension=".t" mimeType="application/x-troff" />
            <mimeMap fileExtension=".tar" mimeType="application/x-tar" />
            <mimeMap fileExtension=".tcl" mimeType="application/x-tcl" />
            <mimeMap fileExtension=".tex" mimeType="application/x-tex" />
            <mimeMap fileExtension=".texi" mimeType="application/x-texinfo" />
            <mimeMap fileExtension=".texinfo" mimeType="application/x-texinfo" />
            <mimeMap fileExtension=".tgz" mimeType="application/x-compressed" />
            <mimeMap fileExtension=".thmx" mimeType="application/vnd.ms-officetheme" />
            <mimeMap fileExtension=".thn" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".tif" mimeType="image/tiff" />
            <mimeMap fileExtension=".tiff" mimeType="image/tiff" />
            <mimeMap fileExtension=".toc" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".tr" mimeType="application/x-troff" />
            <mimeMap fileExtension=".trm" mimeType="application/x-msterminal" />
            <mimeMap fileExtension=".ts" mimeType="video/vnd.dlna.mpeg-tts" />
            <mimeMap fileExtension=".tsv" mimeType="text/tab-separated-values" />
            <mimeMap fileExtension=".ttf" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".tts" mimeType="video/vnd.dlna.mpeg-tts" />
            <mimeMap fileExtension=".txt" mimeType="text/plain" />
            <mimeMap fileExtension=".u32" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".uls" mimeType="text/iuls" />
            <mimeMap fileExtension=".ustar" mimeType="application/x-ustar" />
            <mimeMap fileExtension=".vbs" mimeType="text/vbscript" />
            <mimeMap fileExtension=".vcf" mimeType="text/x-vcard" />
            <mimeMap fileExtension=".vcs" mimeType="text/plain" />
            <mimeMap fileExtension=".vdx" mimeType="application/vnd.ms-visio.viewer" />
            <mimeMap fileExtension=".vml" mimeType="text/xml" />
            <mimeMap fileExtension=".vsd" mimeType="application/vnd.visio" />
            <mimeMap fileExtension=".vss" mimeType="application/vnd.visio" />
            <mimeMap fileExtension=".vst" mimeType="application/vnd.visio" />
            <mimeMap fileExtension=".vsto" mimeType="application/x-ms-vsto" />
            <mimeMap fileExtension=".vsw" mimeType="application/vnd.visio" />
            <mimeMap fileExtension=".vsx" mimeType="application/vnd.visio" />
            <mimeMap fileExtension=".vtx" mimeType="application/vnd.visio" />
            <mimeMap fileExtension=".wasm" mimeType="application/wasm" />
            <mimeMap fileExtension=".wav" mimeType="audio/wav" />
            <mimeMap fileExtension=".wax" mimeType="audio/x-ms-wax" />
            <mimeMap fileExtension=".wbmp" mimeType="image/vnd.wap.wbmp" />
            <mimeMap fileExtension=".wcm" mimeType="application/vnd.ms-works" />
            <mimeMap fileExtension=".wdb" mimeType="application/vnd.ms-works" />
            <mimeMap fileExtension=".webm" mimeType="video/webm" />
            <mimeMap fileExtension=".wks" mimeType="application/vnd.ms-works" />
            <mimeMap fileExtension=".wm" mimeType="video/x-ms-wm" />
            <mimeMap fileExtension=".wma" mimeType="audio/x-ms-wma" />
            <mimeMap fileExtension=".wmd" mimeType="application/x-ms-wmd" />
            <mimeMap fileExtension=".wmf" mimeType="application/x-msmetafile" />
            <mimeMap fileExtension=".wml" mimeType="text/vnd.wap.wml" />
            <mimeMap fileExtension=".wmlc" mimeType="application/vnd.wap.wmlc" />
            <mimeMap fileExtension=".wmls" mimeType="text/vnd.wap.wmlscript" />
            <mimeMap fileExtension=".wmlsc" mimeType="application/vnd.wap.wmlscriptc" />
            <mimeMap fileExtension=".wmp" mimeType="video/x-ms-wmp" />
            <mimeMap fileExtension=".wmv" mimeType="video/x-ms-wmv" />
            <mimeMap fileExtension=".wmx" mimeType="video/x-ms-wmx" />
            <mimeMap fileExtension=".wmz" mimeType="application/x-ms-wmz" />
            <mimeMap fileExtension=".woff" mimeType="font/x-woff" />
            <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
            <mimeMap fileExtension=".wps" mimeType="application/vnd.ms-works" />
            <mimeMap fileExtension=".wri" mimeType="application/x-mswrite" />
            <mimeMap fileExtension=".wrl" mimeType="x-world/x-vrml" />
            <mimeMap fileExtension=".wrz" mimeType="x-world/x-vrml" />
            <mimeMap fileExtension=".wsdl" mimeType="text/xml" />
            <mimeMap fileExtension=".wtv" mimeType="video/x-ms-wtv" />
            <mimeMap fileExtension=".wvx" mimeType="video/x-ms-wvx" />
            <mimeMap fileExtension=".x" mimeType="application/directx" />
            <mimeMap fileExtension=".xaf" mimeType="x-world/x-vrml" />
            <mimeMap fileExtension=".xaml" mimeType="application/xaml+xml" />
            <mimeMap fileExtension=".xap" mimeType="application/x-silverlight-app" />
            <mimeMap fileExtension=".xbap" mimeType="application/x-ms-xbap" />
            <mimeMap fileExtension=".xbm" mimeType="image/x-xbitmap" />
            <mimeMap fileExtension=".xdr" mimeType="text/plain" />
            <mimeMap fileExtension=".xht" mimeType="application/xhtml+xml" />
            <mimeMap fileExtension=".xhtml" mimeType="application/xhtml+xml" />
            <mimeMap fileExtension=".xla" mimeType="application/vnd.ms-excel" />
            <mimeMap fileExtension=".xlam" mimeType="application/vnd.ms-excel.addin.macroEnabled.12" />
            <mimeMap fileExtension=".xlc" mimeType="application/vnd.ms-excel" />
            <mimeMap fileExtension=".xlm" mimeType="application/vnd.ms-excel" />
            <mimeMap fileExtension=".xls" mimeType="application/vnd.ms-excel" />
            <mimeMap fileExtension=".xlsb" mimeType="application/vnd.ms-excel.sheet.binary.macroEnabled.12" />
            <mimeMap fileExtension=".xlsm" mimeType="application/vnd.ms-excel.sheet.macroEnabled.12" />
            <mimeMap fileExtension=".xlsx" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
            <mimeMap fileExtension=".xlt" mimeType="application/vnd.ms-excel" />
            <mimeMap fileExtension=".xltm" mimeType="application/vnd.ms-excel.template.macroEnabled.12" />
            <mimeMap fileExtension=".xltx" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.template" />
            <mimeMap fileExtension=".xlw" mimeType="application/vnd.ms-excel" />
            <mimeMap fileExtension=".xml" mimeType="text/xml" />
            <mimeMap fileExtension=".xof" mimeType="x-world/x-vrml" />
            <mimeMap fileExtension=".xpm" mimeType="image/x-xpixmap" />
            <mimeMap fileExtension=".xps" mimeType="application/vnd.ms-xpsdocument" />
            <mimeMap fileExtension=".xsd" mimeType="text/xml" />
            <mimeMap fileExtension=".xsf" mimeType="text/xml" />
            <mimeMap fileExtension=".xsl" mimeType="text/xml" />
            <mimeMap fileExtension=".xslt" mimeType="text/xml" />
            <mimeMap fileExtension=".xsn" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".xtp" mimeType="application/octet-stream" />
            <mimeMap fileExtension=".xwd" mimeType="image/x-xwindowdump" />
            <mimeMap fileExtension=".z" mimeType="application/x-compress" />
            <mimeMap fileExtension=".zip" mimeType="application/x-zip-compressed" />
        </staticContent>
        <tracing>
            <traceFailedRequests>
                <add path="*">
                    <traceAreas>
                        <add provider="ASP" verbosity="Verbose" />
                        <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
                        <add provider="ISAPI Extension" verbosity="Verbose" />
                        <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,Rewrite,WebSocket" verbosity="Verbose" />
                    </traceAreas>
                    <failureDefinitions statusCodes="200-999" />
                </add>
            </traceFailedRequests>
            <traceProviderDefinitions>
                <add name="WWW Server" guid="{3a2a4e84-4c21-4981-ae10-3fda0d9b0f83}">
                    <areas>
                        <clear />
                        <add name="Authentication" value="2" />
                        <add name="Security" value="4" />
                        <add name="Filter" value="8" />
                        <add name="StaticFile" value="16" />
                        <add name="CGI" value="32" />
                        <add name="Compression" value="64" />
                        <add name="Cache" value="128" />
                        <add name="RequestNotifications" value="256" />
                        <add name="Module" value="512" />
                        <add name="Rewrite" value="1024" />
                        <add name="FastCGI" value="4096" />
                        <add name="WebSocket" value="16384" />
                        <add name="ANCM" value="65536" />
                    </areas>
                </add>
                <add name="ASP" guid="{06b94d9a-b15e-456e-a4ef-37c984a2cb4b}">
                    <areas>
                        <clear />
                    </areas>
                </add>
                <add name="ISAPI Extension" guid="{a1c2040e-8840-4c31-ba11-9871031a19ea}">
                    <areas>
                        <clear />
                    </areas>
                </add>
                <add name="ASPNET" guid="{AFF081FE-0247-4275-9C4E-021F3DC1DA35}">
                    <areas>
                        <add name="Infrastructure" value="1" />
                        <add name="Module" value="2" />
                        <add name="Page" value="4" />
                        <add name="AppServices" value="8" />
                    </areas>
                </add>
            </traceProviderDefinitions>
        </tracing>
        <urlCompression />
        <validation />
        <webdav>
            <globalSettings>
                <propertyStores>
                    <add name="webdav_simple_prop" image="%IIS_BIN%\webdav_simple_prop.dll" image32="%IIS_BIN%\webdav_simple_prop.dll" />
                </propertyStores>
                <lockStores>
                    <add name="webdav_simple_lock" image="%IIS_BIN%\webdav_simple_lock.dll" image32="%IIS_BIN%\webdav_simple_lock.dll" />
                </lockStores>
            </globalSettings>
            <authoring>
                <locks enabled="true" lockStore="webdav_simple_lock" />
            </authoring>
            <authoringRules />
        </webdav>
        <webSocket />
        <applicationInitialization />
    </system.webServer>
    <location path="" overrideMode="Allow">
        <system.webServer>
            <modules>
                <add name="IsapiFilterModule" lockItem="true" />
                <add name="BasicAuthenticationModule" lockItem="true" />
                <add name="IsapiModule" lockItem="true" />
                <add name="HttpLoggingModule" lockItem="true" />
                <add name="DynamicCompressionModule" lockItem="true" />
                <add name="StaticCompressionModule" lockItem="true" />
                <add name="DefaultDocumentModule" lockItem="true" />
                <add name="DirectoryListingModule" lockItem="true" />
                <add name="ProtocolSupportModule" lockItem="true" />
                <add name="HttpRedirectionModule" lockItem="true" />
                <add name="ServerSideIncludeModule" lockItem="true" />
                <add name="StaticFileModule" lockItem="true" />
                <add name="AnonymousAuthenticationModule" lockItem="true" />
                <add name="CertificateMappingAuthenticationModule" lockItem="true" />
                <add name="UrlAuthorizationModule" lockItem="true" />
                <add name="WindowsAuthenticationModule" lockItem="true" />
                <add name="IISCertificateMappingAuthenticationModule" lockItem="true" />
                <add name="WebMatrixSupportModule" lockItem="true" />
                <add name="IpRestrictionModule" lockItem="true" />
                <add name="DynamicIpRestrictionModule" lockItem="true" />
                <add name="RequestFilteringModule" lockItem="true" />
                <add name="CustomLoggingModule" lockItem="true" />
                <add name="CustomErrorModule" lockItem="true" />
                <add name="FailedRequestsTracingModule" lockItem="true" />
                <add name="CgiModule" lockItem="true" />
                <add name="FastCgiModule" lockItem="true" />
                <!--                <add name="WebDAVModule" /> -->
                <add name="RewriteModule" />
                <add name="OutputCache" type="System.Web.Caching.OutputCacheModule" preCondition="managedHandler" />
                <add name="Session" type="System.Web.SessionState.SessionStateModule" preCondition="managedHandler" />
                <add name="WindowsAuthentication" type="System.Web.Security.WindowsAuthenticationModule" preCondition="managedHandler" />
                <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" />
                <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" preCondition="managedHandler" />
                <add name="RoleManager" type="System.Web.Security.RoleManagerModule" preCondition="managedHandler" />
                <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" preCondition="managedHandler" />
                <add name="FileAuthorization" type="System.Web.Security.FileAuthorizationModule" preCondition="managedHandler" />
                <add name="AnonymousIdentification" type="System.Web.Security.AnonymousIdentificationModule" preCondition="managedHandler" />
                <add name="Profile" type="System.Web.Profile.ProfileModule" preCondition="managedHandler" />
                <add name="UrlMappingsModule" type="System.Web.UrlMappingsModule" preCondition="managedHandler" />
                <add name="ApplicationInitializationModule" lockItem="true" />
                <add name="WebSocketModule" lockItem="true" />
                <add name="ServiceModel-4.0" type="System.ServiceModel.Activation.ServiceHttpModule,System.ServiceModel.Activation,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" />
                <add name="ConfigurationValidationModule" lockItem="true" />
                <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="managedHandler,runtimeVersionv4.0" />
                <add name="ScriptModule-4.0" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" />
                <add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler,runtimeVersionv2.0" />
                <add name="AspNetCoreModule" lockItem="true" />
                <add name="AspNetCoreModuleV2" lockItem="true" />
            </modules>
            <handlers accessPolicy="Read, Script">
                <!--                <add name="WebDAV" path="*" verb="PROPFIND,PROPPATCH,MKCOL,PUT,COPY,DELETE,MOVE,LOCK,UNLOCK" modules="WebDAVModule" resourceType="Unspecified" requireAccess="None" /> -->
                <add name="AXD-ISAPI-4.0_64bit" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
                <add name="PageHandlerFactory-ISAPI-4.0_64bit" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
                <add name="SimpleHandlerFactory-ISAPI-4.0_64bit" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
                <add name="WebServiceHandlerFactory-ISAPI-4.0_64bit" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
                <add name="HttpRemotingHandlerFactory-rem-ISAPI-4.0_64bit" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
                <add name="HttpRemotingHandlerFactory-soap-ISAPI-4.0_64bit" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
                <add name="svc-ISAPI-4.0_64bit" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
                <add name="rules-ISAPI-4.0_64bit" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
                <add name="xoml-ISAPI-4.0_64bit" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
                <add name="xamlx-ISAPI-4.0_64bit" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
                <add name="aspq-ISAPI-4.0_64bit" path="*.aspq" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
                <add name="cshtm-ISAPI-4.0_64bit" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
                <add name="cshtml-ISAPI-4.0_64bit" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
                <add name="vbhtm-ISAPI-4.0_64bit" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
                <add name="vbhtml-ISAPI-4.0_64bit" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
                <add name="svc-Integrated" path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
                <add name="svc-ISAPI-2.0" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
                <add name="xoml-Integrated" path="*.xoml" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
                <add name="xoml-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
                <add name="rules-Integrated" path="*.rules" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
                <add name="rules-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
                <add name="AXD-ISAPI-4.0_32bit" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
                <add name="PageHandlerFactory-ISAPI-4.0_32bit" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
                <add name="SimpleHandlerFactory-ISAPI-4.0_32bit" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
                <add name="WebServiceHandlerFactory-ISAPI-4.0_32bit" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
                <add name="HttpRemotingHandlerFactory-rem-ISAPI-4.0_32bit" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
                <add name="HttpRemotingHandlerFactory-soap-ISAPI-4.0_32bit" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
                <add name="svc-ISAPI-4.0_32bit" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
                <add name="rules-ISAPI-4.0_32bit" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
                <add name="xoml-ISAPI-4.0_32bit" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
                <add name="xamlx-ISAPI-4.0_32bit" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
                <add name="aspq-ISAPI-4.0_32bit" path="*.aspq" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
                <add name="cshtm-ISAPI-4.0_32bit" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
                <add name="cshtml-ISAPI-4.0_32bit" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
                <add name="vbhtm-ISAPI-4.0_32bit" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
                <add name="vbhtml-ISAPI-4.0_32bit" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
                <add name="TraceHandler-Integrated-4.0" path="trace.axd" verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TraceHandler" preCondition="integratedMode,runtimeVersionv4.0" />
                <add name="WebAdminHandler-Integrated-4.0" path="WebAdmin.axd" verb="GET,DEBUG" type="System.Web.Handlers.WebAdminHandler" preCondition="integratedMode,runtimeVersionv4.0" />
                <add name="AssemblyResourceLoader-Integrated-4.0" path="WebResource.axd" verb="GET,DEBUG" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode,runtimeVersionv4.0" />
                <add name="PageHandlerFactory-Integrated-4.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode,runtimeVersionv4.0" />
                <add name="SimpleHandlerFactory-Integrated-4.0" path="*.ashx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.SimpleHandlerFactory" preCondition="integratedMode,runtimeVersionv4.0" />
                <add name="WebServiceHandlerFactory-Integrated-4.0" path="*.asmx" verb="GET,HEAD,POST,DEBUG" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
                <add name="HttpRemotingHandlerFactory-rem-Integrated-4.0" path="*.rem" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv4.0" />
                <add name="HttpRemotingHandlerFactory-soap-Integrated-4.0" path="*.soap" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv4.0" />
                <add name="svc-Integrated-4.0" path="*.svc" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
                <add name="rules-Integrated-4.0" path="*.rules" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
                <add name="xoml-Integrated-4.0" path="*.xoml" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
                <add name="xamlx-Integrated-4.0" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" type="System.Xaml.Hosting.XamlHttpHandlerFactory, System.Xaml.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
                <add name="aspq-Integrated-4.0" path="*.aspq" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
                <add name="cshtm-Integrated-4.0" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
                <add name="cshtml-Integrated-4.0" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
                <add name="vbhtm-Integrated-4.0" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
                <add name="vbhtml-Integrated-4.0" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
                <add name="ScriptHandlerFactoryAppServices-Integrated-4.0" path="*_AppService.axd" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode,runtimeVersionv4.0" />
                <add name="ScriptResourceIntegrated-4.0" path="*ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode,runtimeVersionv4.0" />
                <add name="ASPClassic" path="*.asp" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="%IIS_BIN%\asp.dll" resourceType="File" />
                <add name="SecurityCertificate" path="*.cer" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="%IIS_BIN%\asp.dll" resourceType="File" />
                <add name="ISAPI-dll" path="*.dll" verb="*" modules="IsapiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" />
                <add name="TraceHandler-Integrated" path="trace.axd" verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TraceHandler" preCondition="integratedMode,runtimeVersionv2.0" />
                <add name="WebAdminHandler-Integrated" path="WebAdmin.axd" verb="GET,DEBUG" type="System.Web.Handlers.WebAdminHandler" preCondition="integratedMode,runtimeVersionv2.0" />
                <add name="AssemblyResourceLoader-Integrated" path="WebResource.axd" verb="GET,DEBUG" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode,runtimeVersionv2.0" />
                <add name="PageHandlerFactory-Integrated" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode,runtimeVersionv2.0" />
                <add name="SimpleHandlerFactory-Integrated" path="*.ashx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.SimpleHandlerFactory" preCondition="integratedMode,runtimeVersionv2.0" />
                <add name="WebServiceHandlerFactory-Integrated" path="*.asmx" verb="GET,HEAD,POST,DEBUG" type="System.Web.Services.Protocols.WebServiceHandlerFactory,System.Web.Services,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" preCondition="integratedMode,runtimeVersionv2.0" />
                <add name="HttpRemotingHandlerFactory-rem-Integrated" path="*.rem" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,System.Runtime.Remoting,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
                <add name="HttpRemotingHandlerFactory-soap-Integrated" path="*.soap" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,System.Runtime.Remoting,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
                <add name="AXD-ISAPI-2.0" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
                <add name="PageHandlerFactory-ISAPI-2.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
                <add name="SimpleHandlerFactory-ISAPI-2.0" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
                <add name="WebServiceHandlerFactory-ISAPI-2.0" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
                <add name="HttpRemotingHandlerFactory-rem-ISAPI-2.0" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
                <add name="HttpRemotingHandlerFactory-soap-ISAPI-2.0" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
                <add name="svc-ISAPI-2.0-64" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
                <add name="AXD-ISAPI-2.0-64" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
                <add name="PageHandlerFactory-ISAPI-2.0-64" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
                <add name="SimpleHandlerFactory-ISAPI-2.0-64" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
                <add name="WebServiceHandlerFactory-ISAPI-2.0-64" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
                <add name="HttpRemotingHandlerFactory-rem-ISAPI-2.0-64" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
                <add name="HttpRemotingHandlerFactory-soap-ISAPI-2.0-64" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
                <add name="rules-64-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
                <add name="xoml-64-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
                <add name="CGI-exe" path="*.exe" verb="*" modules="CgiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" />
                <add name="SSINC-stm" path="*.stm" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" />
                <add name="SSINC-shtm" path="*.shtm" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" />
                <add name="SSINC-shtml" path="*.shtml" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" />
                <add name="TRACEVerbHandler" path="*" verb="TRACE" modules="ProtocolSupportModule" requireAccess="None" />
                <add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" modules="ProtocolSupportModule" requireAccess="None" />
                <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
                <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
                <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" responseBufferLimit="0" />
                <add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" />
            </handlers>
        </system.webServer>
    </location>
</configuration>
WebApi/GTech.Solution.Api.Common/Attibute/KeyAttribute.cs
New file
@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GTech.Solution.Api.Common.Attibute
{
    [AttributeUsage(AttributeTargets.Property)]
    public class KeyAttribute : Attribute
    {
    }
}
WebApi/GTech.Solution.Api.Common/Attibute/MaxLengthAttribute.cs
New file
@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GTech.Solution.Api.Common.Attibute
{
    [AttributeUsage(AttributeTargets.Property)]
    class MaxLengthAttribute:Attribute
    {
        public int Length=255;
        public MaxLengthAttribute(int length)
        {
            Length = length;
        }
    }
}
WebApi/GTech.Solution.Api.Common/Common/ADODOTNETSqlHelper.cs
New file
@@ -0,0 +1,2456 @@
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Xml;
namespace GTech.Solution.Api.Common
{
    //微软SQLHelper.cs类 中文版
    /// <summary>
    /// SqlServer数据访问帮助类
    /// </summary>
    public sealed class ADODOTNETSqlHelper
    {
        #region 私有构造函数和方法
        private ADODOTNETSqlHelper() { }
        /// <summary>
        /// 将SqlParameter参数数组(参数值)分配给SqlCommand命令.
        /// 这个方法将给任何一个参数分配DBNull.Value;
        /// 该操作将阻止默认值的使用.
        /// </summary>
        /// <param name="command">命令名</param>
        /// <param name="commandParameters">SqlParameters数组</param>
        private static void AttachParameters(SqlCommand command, SqlParameter[] commandParameters)
        {
            if (command == null) throw new ArgumentNullException("command");
            if (commandParameters != null)
            {
                foreach (SqlParameter p in commandParameters)
                {
                    if (p != null)
                    {
                        // 检查未分配值的输出参数,将其分配以DBNull.Value.
                        if ((p.Direction == ParameterDirection.InputOutput || p.Direction == ParameterDirection.Input) &&
                            (p.Value == null))
                        {
                            p.Value = DBNull.Value;
                        }
                        command.Parameters.Add(p);
                    }
                }
            }
        }
        /// <summary>
        /// 将DataRow类型的列值分配到SqlParameter参数数组.
        /// </summary>
        /// <param name="commandParameters">要分配值的SqlParameter参数数组</param>
        /// <param name="dataRow">将要分配给存储过程参数的DataRow</param>
        private static void AssignParameterValues(SqlParameter[] commandParameters, DataRow dataRow)
        {
            if ((commandParameters == null) || (dataRow == null))
            {
                return;
            }
            int i = 0;
            // 设置参数值
            foreach (SqlParameter commandParameter in commandParameters)
            {
                // 创建参数名称,如果不存在,只抛出一个异常.
                if (commandParameter.ParameterName == null ||
                    commandParameter.ParameterName.Length <= 1)
                    throw new Exception(
                        string.Format("请提供参数{0}一个有效的名称{1}.", i, commandParameter.ParameterName));
                // 从dataRow的表中获取为参数数组中数组名称的列的索引.
                // 如果存在和参数名称相同的列,则将列值赋给当前名称的参数.
                if (dataRow.Table.Columns.IndexOf(commandParameter.ParameterName.Substring(1)) != -1)
                    commandParameter.Value = dataRow[commandParameter.ParameterName.Substring(1)];
                i++;
            }
        }
        /// <summary>
        /// 将一个对象数组分配给SqlParameter参数数组.
        /// </summary>
        /// <param name="commandParameters">要分配值的SqlParameter参数数组</param>
        /// <param name="parameterValues">将要分配给存储过程参数的对象数组</param>
        private static void AssignParameterValues(SqlParameter[] commandParameters, object[] parameterValues)
        {
            if ((commandParameters == null) || (parameterValues == null))
            {
                return;
            }
            // 确保对象数组个数与参数个数匹配,如果不匹配,抛出一个异常.
            if (commandParameters.Length != parameterValues.Length)
            {
                throw new ArgumentException("参数值个数与参数不匹配.");
            }
            // 给参数赋值
            for (int i = 0, j = commandParameters.Length; i < j; i++)
            {
                // If the current array value derives from IDbDataParameter, then assign its Value property
                if (parameterValues[i] is IDbDataParameter)
                {
                    IDbDataParameter paramInstance = (IDbDataParameter)parameterValues[i];
                    if (paramInstance.Value == null)
                    {
                        commandParameters[i].Value = DBNull.Value;
                    }
                    else
                    {
                        commandParameters[i].Value = paramInstance.Value;
                    }
                }
                else if (parameterValues[i] == null)
                {
                    commandParameters[i].Value = DBNull.Value;
                }
                else
                {
                    commandParameters[i].Value = parameterValues[i];
                }
            }
        }
        /// <summary>
        /// 预处理用户提供的命令,数据库连接/事务/命令类型/参数
        /// </summary>
        /// <param name="command">要处理的SqlCommand</param>
        /// <param name="connection">数据库连接</param>
        /// <param name="transaction">一个有效的事务或者是null值</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本, 其它.)</param>
        /// <param name="commandText">存储过程名或都T-SQL命令文本</param>
        /// <param name="commandParameters">和命令相关联的SqlParameter参数数组,如果没有参数为'null'</param>
        /// <param name="mustCloseConnection"><c>true</c> 如果连接是打开的,则为true,其它情况下为false.</param>
        private static void PrepareCommand(SqlCommand command, SqlConnection connection, SqlTransaction transaction, CommandType commandType, string commandText, SqlParameter[] commandParameters, out bool mustCloseConnection)
        {
            if (command == null) throw new ArgumentNullException("command");
            if (commandText == null || commandText.Length == 0) throw new ArgumentNullException("commandText");
            // If the provided connection is not open, we will open it
            if (connection.State != ConnectionState.Open)
            {
                mustCloseConnection = true;
                connection.Open();
            }
            else
            {
                mustCloseConnection = false;
            }
            // 给命令分配一个数据库连接.
            command.Connection = connection;
            // 设置命令文本(存储过程名或SQL语句)
            command.CommandText = commandText;
            // 分配事务
            if (transaction != null)
            {
                if (transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
                command.Transaction = transaction;
            }
            // 设置命令类型.
            command.CommandType = commandType;
            // 分配命令参数
            if (commandParameters != null)
            {
                AttachParameters(command, commandParameters);
            }
            return;
        }
        #endregion 私有构造函数和方法结束
        #region 数据库连接
        /// <summary>
        /// 一个有效的数据库连接字符串
        /// </summary>
        /// <returns></returns>
        public static string GetConnSting()
        {
            return ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;
        }
        /// <summary>
        /// 一个有效的数据库连接对象
        /// </summary>
        /// <returns></returns>
        public static SqlConnection GetConnection()
        {
            SqlConnection Connection = new SqlConnection(ADODOTNETSqlHelper.GetConnSting());
            return Connection;
        }
        #endregion
        #region ExecuteNonQuery命令
        /// <summary>
        /// 执行指定连接字符串,类型的SqlCommand.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders");
        /// </remarks>
        /// <param name="connectionString">一个有效的数据库连接字符串</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本, 其它.)</param>
        /// <param name="commandText">存储过程名称或SQL语句</param>
        /// <returns>返回命令影响的行数</returns>
        public static int ExecuteNonQuery(string connectionString, CommandType commandType, string commandText)
        {
            return ExecuteNonQuery(connectionString, commandType, commandText, (SqlParameter[])null);
        }
        /// <summary>
        /// 执行指定连接字符串,类型的SqlCommand.如果没有提供参数,不返回结果.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
        /// </remarks>
        /// <param name="connectionString">一个有效的数据库连接字符串</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本, 其它.)</param>
        /// <param name="commandText">存储过程名称或SQL语句</param>
        /// <param name="commandParameters">SqlParameter参数数组</param>
        /// <returns>返回命令影响的行数</returns>
        public static int ExecuteNonQuery(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString");
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();
                return ExecuteNonQuery(connection, commandType, commandText, commandParameters);
            }
        }
        /// <summary>
        /// 执行指定连接字符串的存储过程,将对象数组的值赋给存储过程参数,
        /// 此方法需要在参数缓存方法中探索参数并生成参数.
        /// </summary>
        /// <remarks>
        /// 这个方法没有提供访问输出参数和返回值.
        /// 示例:
        ///  int result = ExecuteNonQuery(connString, "PublishOrders", 24, 36);
        /// </remarks>
        /// <param name="connectionString">一个有效的数据库连接字符串/param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="parameterValues">分配到存储过程输入参数的对象数组</param>
        /// <returns>返回受影响的行数</returns>
        public static int ExecuteNonQuery(string connectionString, string spName, params object[] parameterValues)
        {
            if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 如果存在参数值
            if ((parameterValues != null) && (parameterValues.Length > 0))
            {
                // 从探索存储过程参数(加载到缓存)并分配给存储过程参数数组.
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connectionString, spName);
                // 给存储过程参数赋值
                AssignParameterValues(commandParameters, parameterValues);
                return ExecuteNonQuery(connectionString, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                // 没有参数情况下
                return ExecuteNonQuery(connectionString, CommandType.StoredProcedure, spName);
            }
        }
        /// <summary>
        /// 执行指定数据库连接对象的命令
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  int result = ExecuteNonQuery(conn, CommandType.StoredProcedure, "PublishOrders");
        /// </remarks>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="commandType">命令类型(存储过程,命令文本或其它.)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句</param>
        /// <returns>返回影响的行数</returns>
        public static int ExecuteNonQuery(SqlConnection connection, CommandType commandType, string commandText)
        {
            return ExecuteNonQuery(connection, commandType, commandText, (SqlParameter[])null);
        }
        /// <summary>
        /// 执行指定数据库连接对象的命令
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  int result = ExecuteNonQuery(conn, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
        /// </remarks>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="commandType">命令类型(存储过程,命令文本或其它.)</param>
        /// <param name="commandText">T存储过程名称或T-SQL语句</param>
        /// <param name="commandParameters">SqlParamter参数数组</param>
        /// <returns>返回影响的行数</returns>
        public static int ExecuteNonQuery(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            if (connection == null) throw new ArgumentNullException("connection");
            // 创建SqlCommand命令,并进行预处理
            SqlCommand cmd = new SqlCommand();
            bool mustCloseConnection = false;
            PrepareCommand(cmd, connection, (SqlTransaction)null, commandType, commandText, commandParameters, out mustCloseConnection);
            // Finally, execute the command
            int retval = cmd.ExecuteNonQuery();
            // 清除参数,以便再次使用.
            cmd.Parameters.Clear();
            if (mustCloseConnection)
                connection.Close();
            return retval;
        }
        /// <summary>
        /// 执行指定数据库连接对象的命令,将对象数组的值赋给存储过程参数.
        /// </summary>
        /// <remarks>
        /// 此方法不提供访问存储过程输出参数和返回值
        /// 示例:
        ///  int result = ExecuteNonQuery(conn, "PublishOrders", 24, 36);
        /// </remarks>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="spName">存储过程名</param>
        /// <param name="parameterValues">分配给存储过程输入参数的对象数组</param>
        /// <returns>返回影响的行数</returns>
        public static int ExecuteNonQuery(SqlConnection connection, string spName, params object[] parameterValues)
        {
            if (connection == null) throw new ArgumentNullException("connection");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 如果有参数值
            if ((parameterValues != null) && (parameterValues.Length > 0))
            {
                // 从缓存中加载存储过程参数
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName);
                // 给存储过程分配参数值
                AssignParameterValues(commandParameters, parameterValues);
                return ExecuteNonQuery(connection, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ExecuteNonQuery(connection, CommandType.StoredProcedure, spName);
            }
        }
        /// <summary>
        /// 执行带事务的SqlCommand.
        /// </summary>
        /// <remarks>
        /// 示例.:
        ///  int result = ExecuteNonQuery(trans, CommandType.StoredProcedure, "PublishOrders");
        /// </remarks>
        /// <param name="transaction">一个有效的数据库连接对象</param>
        /// <param name="commandType">命令类型(存储过程,命令文本或其它.)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句</param>
        /// <returns>返回影响的行数/returns>
        public static int ExecuteNonQuery(SqlTransaction transaction, CommandType commandType, string commandText)
        {
            return ExecuteNonQuery(transaction, commandType, commandText, (SqlParameter[])null);
        }
        /// <summary>
        /// 执行带事务的SqlCommand(指定参数).
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  int result = ExecuteNonQuery(trans, CommandType.StoredProcedure, "GetOrders", new SqlParameter("@prodid", 24));
        /// </remarks>
        /// <param name="transaction">一个有效的数据库连接对象</param>
        /// <param name="commandType">命令类型(存储过程,命令文本或其它.)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句</param>
        /// <param name="commandParameters">SqlParamter参数数组</param>
        /// <returns>返回影响的行数</returns>
        public static int ExecuteNonQuery(SqlTransaction transaction, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            if (transaction == null) throw new ArgumentNullException("transaction");
            if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
            // 预处理
            SqlCommand cmd = new SqlCommand();
            bool mustCloseConnection = false;
            PrepareCommand(cmd, transaction.Connection, transaction, commandType, commandText, commandParameters, out mustCloseConnection);
            // 执行
            int retval = cmd.ExecuteNonQuery();
            // 清除参数集,以便再次使用.
            cmd.Parameters.Clear();
            return retval;
        }
        /// <summary>
        /// 执行带事务的SqlCommand(指定参数值).
        /// </summary>
        /// <remarks>
        /// 此方法不提供访问存储过程输出参数和返回值
        /// 示例:
        ///  int result = ExecuteNonQuery(conn, trans, "PublishOrders", 24, 36);
        /// </remarks>
        /// <param name="transaction">一个有效的数据库连接对象</param>
        /// <param name="spName">存储过程名</param>
        /// <param name="parameterValues">分配给存储过程输入参数的对象数组</param>
        /// <returns>返回受影响的行数</returns>
        public static int ExecuteNonQuery(SqlTransaction transaction, string spName, params object[] parameterValues)
        {
            if (transaction == null) throw new ArgumentNullException("transaction");
            if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 如果有参数值
            if ((parameterValues != null) && (parameterValues.Length > 0))
            {
                // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. ()
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection, spName);
                // 给存储过程参数赋值
                AssignParameterValues(commandParameters, parameterValues);
                // 调用重载方法
                return ExecuteNonQuery(transaction, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                // 没有参数值
                return ExecuteNonQuery(transaction, CommandType.StoredProcedure, spName);
            }
        }
        #endregion ExecuteNonQuery方法结束
        #region ExecuteDataset方法
        /// <summary>
        /// 执行指定数据库连接字符串的命令,返回DataSet.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  DataSet ds = ExecuteDataset(connString, CommandType.StoredProcedure, "GetOrders");
        /// </remarks>
        /// <param name="connectionString">一个有效的数据库连接字符串</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句</param>
        /// <returns>返回一个包含结果集的DataSet</returns>
        public static DataSet ExecuteDataset(string connectionString, CommandType commandType, string commandText)
        {
            return ExecuteDataset(connectionString, commandType, commandText, (SqlParameter[])null);
        }
        /// <summary>
        /// 执行指定数据库连接字符串的命令,返回DataSet.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  DataSet ds = ExecuteDataset(connString, CommandType.StoredProcedure, "GetOrders", new SqlParameter("@prodid", 24));
        /// </remarks>
        /// <param name="connectionString">一个有效的数据库连接字符串</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句</param>
        /// <param name="commandParameters">SqlParamters参数数组</param>
        /// <returns>返回一个包含结果集的DataSet</returns>
        public static DataSet ExecuteDataset(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString");
            // 创建并打开数据库连接对象,操作完成释放对象.
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();
                // 调用指定数据库连接字符串重载方法.
                return ExecuteDataset(connection, commandType, commandText, commandParameters);
            }
        }
        /// <summary>
        /// 执行指定数据库连接字符串的命令,直接提供参数值,返回DataSet.
        /// </summary>
        /// <remarks>
        /// 此方法不提供访问存储过程输出参数和返回值.
        /// 示例:
        ///  DataSet ds = ExecuteDataset(connString, "GetOrders", 24, 36);
        /// </remarks>
        /// <param name="connectionString">一个有效的数据库连接字符串</param>
        /// <param name="spName">存储过程名</param>
        /// <param name="parameterValues">分配给存储过程输入参数的对象数组</param>
        /// <returns>返回一个包含结果集的DataSet</returns>
        public static DataSet ExecuteDataset(string connectionString, string spName, params object[] parameterValues)
        {
            if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            if ((parameterValues != null) && (parameterValues.Length > 0))
            {
                // 从缓存中检索存储过程参数
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connectionString, spName);
                // 给存储过程参数分配值
                AssignParameterValues(commandParameters, parameterValues);
                return ExecuteDataset(connectionString, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ExecuteDataset(connectionString, CommandType.StoredProcedure, spName);
            }
        }
        /// <summary>
        /// 执行指定数据库连接对象的命令,返回DataSet.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  DataSet ds = ExecuteDataset(conn, CommandType.StoredProcedure, "GetOrders");
        /// </remarks>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名或T-SQL语句</param>
        /// <returns>返回一个包含结果集的DataSet</returns>
        public static DataSet ExecuteDataset(SqlConnection connection, CommandType commandType, string commandText)
        {
            return ExecuteDataset(connection, commandType, commandText, (SqlParameter[])null);
        }
        /// <summary>
        /// 执行指定数据库连接对象的命令,指定存储过程参数,返回DataSet.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  DataSet ds = ExecuteDataset(conn, CommandType.StoredProcedure, "GetOrders", new SqlParameter("@prodid", 24));
        /// </remarks>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名或T-SQL语句</param>
        /// <param name="commandParameters">SqlParamter参数数组</param>
        /// <returns>返回一个包含结果集的DataSet</returns>
        public static DataSet ExecuteDataset(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            if (connection == null) throw new ArgumentNullException("connection");
            // 预处理
            SqlCommand cmd = new SqlCommand();
            bool mustCloseConnection = false;
            PrepareCommand(cmd, connection, (SqlTransaction)null, commandType, commandText, commandParameters, out mustCloseConnection);
            // 创建SqlDataAdapter和DataSet.
            using (SqlDataAdapter da = new SqlDataAdapter(cmd))
            {
                DataSet ds = new DataSet();
                // 填充DataSet.
                da.Fill(ds);
                cmd.Parameters.Clear();
                if (mustCloseConnection)
                    connection.Close();
                return ds;
            }
        }
        /// <summary>
        /// 执行指定数据库连接对象的命令,指定参数值,返回DataSet.
        /// </summary>
        /// <remarks>
        /// 此方法不提供访问存储过程输入参数和返回值.
        /// 示例.:
        ///  DataSet ds = ExecuteDataset(conn, "GetOrders", 24, 36);
        /// </remarks>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="spName">存储过程名</param>
        /// <param name="parameterValues">分配给存储过程输入参数的对象数组</param>
        /// <returns>返回一个包含结果集的DataSet</returns>
        public static DataSet ExecuteDataset(SqlConnection connection, string spName, params object[] parameterValues)
        {
            if (connection == null) throw new ArgumentNullException("connection");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            if ((parameterValues != null) && (parameterValues.Length > 0))
            {
                // 比缓存中加载存储过程参数
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName);
                // 给存储过程参数分配值
                AssignParameterValues(commandParameters, parameterValues);
                return ExecuteDataset(connection, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ExecuteDataset(connection, CommandType.StoredProcedure, spName);
            }
        }
        /// <summary>
        /// 执行指定事务的命令,返回DataSet.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  DataSet ds = ExecuteDataset(trans, CommandType.StoredProcedure, "GetOrders");
        /// </remarks>
        /// <param name="transaction">事务</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名或T-SQL语句</param>
        /// <returns>返回一个包含结果集的DataSet</returns>
        public static DataSet ExecuteDataset(SqlTransaction transaction, CommandType commandType, string commandText)
        {
            return ExecuteDataset(transaction, commandType, commandText, (SqlParameter[])null);
        }
        /// <summary>
        /// 执行指定事务的命令,指定参数,返回DataSet.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  DataSet ds = ExecuteDataset(trans, CommandType.StoredProcedure, "GetOrders", new SqlParameter("@prodid", 24));
        /// </remarks>
        /// <param name="transaction">事务</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名或T-SQL语句</param>
        /// <param name="commandParameters">SqlParamter参数数组</param>
        /// <returns>返回一个包含结果集的DataSet</returns>
        public static DataSet ExecuteDataset(SqlTransaction transaction, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            if (transaction == null) throw new ArgumentNullException("transaction");
            if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
            // 预处理
            SqlCommand cmd = new SqlCommand();
            bool mustCloseConnection = false;
            PrepareCommand(cmd, transaction.Connection, transaction, commandType, commandText, commandParameters, out mustCloseConnection);
            // 创建 DataAdapter & DataSet
            using (SqlDataAdapter da = new SqlDataAdapter(cmd))
            {
                DataSet ds = new DataSet();
                da.Fill(ds);
                cmd.Parameters.Clear();
                return ds;
            }
        }
        /// <summary>
        /// 执行指定事务的命令,指定参数值,返回DataSet.
        /// </summary>
        /// <remarks>
        /// 此方法不提供访问存储过程输入参数和返回值.
        /// 示例.:
        ///  DataSet ds = ExecuteDataset(trans, "GetOrders", 24, 36);
        /// </remarks>
        /// <param name="transaction">事务</param>
        /// <param name="spName">存储过程名</param>
        /// <param name="parameterValues">分配给存储过程输入参数的对象数组</param>
        /// <returns>返回一个包含结果集的DataSet</returns>
        public static DataSet ExecuteDataset(SqlTransaction transaction, string spName, params object[] parameterValues)
        {
            if (transaction == null) throw new ArgumentNullException("transaction");
            if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            if ((parameterValues != null) && (parameterValues.Length > 0))
            {
                // 从缓存中加载存储过程参数
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection, spName);
                // 给存储过程参数分配值
                AssignParameterValues(commandParameters, parameterValues);
                return ExecuteDataset(transaction, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ExecuteDataset(transaction, CommandType.StoredProcedure, spName);
            }
        }
        #endregion ExecuteDataset数据集命令结束
        #region ExecuteReader 数据阅读器
        /// <summary>
        /// 枚举,标识数据库连接是由SqlHelper提供还是由调用者提供
        /// </summary>
        private enum SqlConnectionOwnership
        {
            /// <summary>由SqlHelper提供连接</summary>
            Internal,
            /// <summary>由调用者提供连接</summary>
            External
        }
        /// <summary>
        /// 执行指定数据库连接对象的数据阅读器.
        /// </summary>
        /// <remarks>
        /// 如果是SqlHelper打开连接,当连接关闭DataReader也将关闭.
        /// 如果是调用都打开连接,DataReader由调用都管理.
        /// </remarks>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="transaction">一个有效的事务,或者为 'null'</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名或T-SQL语句</param>
        /// <param name="commandParameters">SqlParameters参数数组,如果没有参数则为'null'</param>
        /// <param name="connectionOwnership">标识数据库连接对象是由调用者提供还是由SqlHelper提供</param>
        /// <returns>返回包含结果集的SqlDataReader</returns>
        private static SqlDataReader ExecuteReader(SqlConnection connection, SqlTransaction transaction, CommandType commandType, string commandText, SqlParameter[] commandParameters, SqlConnectionOwnership connectionOwnership)
        {
            if (connection == null) throw new ArgumentNullException("connection");
            bool mustCloseConnection = false;
            // 创建命令
            SqlCommand cmd = new SqlCommand();
            try
            {
                PrepareCommand(cmd, connection, transaction, commandType, commandText, commandParameters, out mustCloseConnection);
                // 创建数据阅读器
                SqlDataReader dataReader;
                if (connectionOwnership == SqlConnectionOwnership.External)
                {
                    dataReader = cmd.ExecuteReader();
                }
                else
                {
                    dataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                }
                // 清除参数,以便再次使用..
                // HACK: There is a problem here, the output parameter values are fletched
                // when the reader is closed, so if the parameters are detached from the command
                // then the SqlReader can磘 set its values.
                // When this happen, the parameters can磘 be used again in other command.
                bool canClear = true;
                foreach (SqlParameter commandParameter in cmd.Parameters)
                {
                    if (commandParameter.Direction != ParameterDirection.Input)
                        canClear = false;
                }
                if (canClear)
                {
                    cmd.Parameters.Clear();
                }
                return dataReader;
            }
            catch
            {
                if (mustCloseConnection)
                    connection.Close();
                throw;
            }
        }
        /// <summary>
        /// 执行指定数据库连接字符串的数据阅读器.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  SqlDataReader dr = ExecuteReader(connString, CommandType.StoredProcedure, "GetOrders");
        /// </remarks>
        /// <param name="connectionString">一个有效的数据库连接字符串</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名或T-SQL语句</param>
        /// <returns>返回包含结果集的SqlDataReader</returns>
        public static SqlDataReader ExecuteReader(string connectionString, CommandType commandType, string commandText)
        {
            return ExecuteReader(connectionString, commandType, commandText, (SqlParameter[])null);
        }
        /// <summary>
        /// 执行指定数据库连接字符串的数据阅读器,指定参数.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  SqlDataReader dr = ExecuteReader(connString, CommandType.StoredProcedure, "GetOrders", new SqlParameter("@prodid", 24));
        /// </remarks>
        /// <param name="connectionString">一个有效的数据库连接字符串</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名或T-SQL语句</param>
        /// <param name="commandParameters">SqlParamter参数数组(new SqlParameter("@prodid", 24))</param>
        /// <returns>返回包含结果集的SqlDataReader</returns>
        public static SqlDataReader ExecuteReader(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString");
            SqlConnection connection = null;
            try
            {
                connection = new SqlConnection(connectionString);
                connection.Open();
                return ExecuteReader(connection, null, commandType, commandText, commandParameters, SqlConnectionOwnership.Internal);
            }
            catch
            {
                // If we fail to return the SqlDatReader, we need to close the connection ourselves
                if (connection != null) connection.Close();
                throw;
            }
        }
        /// <summary>
        /// 执行指定数据库连接字符串的数据阅读器,指定参数值.
        /// </summary>
        /// <remarks>
        /// 此方法不提供访问存储过程输出参数和返回值参数.
        /// 示例:
        ///  SqlDataReader dr = ExecuteReader(connString, "GetOrders", 24, 36);
        /// </remarks>
        /// <param name="connectionString">一个有效的数据库连接字符串</param>
        /// <param name="spName">存储过程名</param>
        /// <param name="parameterValues">分配给存储过程输入参数的对象数组</param>
        /// <returns>返回包含结果集的SqlDataReader</returns>
        public static SqlDataReader ExecuteReader(string connectionString, string spName, params object[] parameterValues)
        {
            if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            if ((parameterValues != null) && (parameterValues.Length > 0))
            {
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connectionString, spName);
                AssignParameterValues(commandParameters, parameterValues);
                return ExecuteReader(connectionString, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ExecuteReader(connectionString, CommandType.StoredProcedure, spName);
            }
        }
        /// <summary>
        /// 执行指定数据库连接对象的数据阅读器.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  SqlDataReader dr = ExecuteReader(conn, CommandType.StoredProcedure, "GetOrders");
        /// </remarks>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名或T-SQL语句</param>
        /// <returns>返回包含结果集的SqlDataReader</returns>
        public static SqlDataReader ExecuteReader(SqlConnection connection, CommandType commandType, string commandText)
        {
            return ExecuteReader(connection, commandType, commandText, (SqlParameter[])null);
        }
        /// <summary>
        /// [调用者方式]执行指定数据库连接对象的数据阅读器,指定参数.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  SqlDataReader dr = ExecuteReader(conn, CommandType.StoredProcedure, "GetOrders", new SqlParameter("@prodid", 24));
        /// </remarks>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandParameters">SqlParamter参数数组</param>
        /// <returns>返回包含结果集的SqlDataReader</returns>
        public static SqlDataReader ExecuteReader(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            return ExecuteReader(connection, (SqlTransaction)null, commandType, commandText, commandParameters, SqlConnectionOwnership.External);
        }
        /// <summary>
        /// [调用者方式]执行指定数据库连接对象的数据阅读器,指定参数值.
        /// </summary>
        /// <remarks>
        /// 此方法不提供访问存储过程输出参数和返回值参数.
        /// 示例:
        ///  SqlDataReader dr = ExecuteReader(conn, "GetOrders", 24, 36);
        /// </remarks>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="spName">T存储过程名</param>
        /// <param name="parameterValues">分配给存储过程输入参数的对象数组</param>
        /// <returns>返回包含结果集的SqlDataReader</returns>
        public static SqlDataReader ExecuteReader(SqlConnection connection, string spName, params object[] parameterValues)
        {
            if (connection == null) throw new ArgumentNullException("connection");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            if ((parameterValues != null) && (parameterValues.Length > 0))
            {
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName);
                AssignParameterValues(commandParameters, parameterValues);
                return ExecuteReader(connection, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ExecuteReader(connection, CommandType.StoredProcedure, spName);
            }
        }
        /// <summary>
        /// [调用者方式]执行指定数据库事务的数据阅读器,指定参数值.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  SqlDataReader dr = ExecuteReader(trans, CommandType.StoredProcedure, "GetOrders");
        /// </remarks>
        /// <param name="transaction">一个有效的连接事务</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句</param>
        /// <returns>返回包含结果集的SqlDataReader</returns>
        public static SqlDataReader ExecuteReader(SqlTransaction transaction, CommandType commandType, string commandText)
        {
            return ExecuteReader(transaction, commandType, commandText, (SqlParameter[])null);
        }
        /// <summary>
        /// [调用者方式]执行指定数据库事务的数据阅读器,指定参数.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///   SqlDataReader dr = ExecuteReader(trans, CommandType.StoredProcedure, "GetOrders", new SqlParameter("@prodid", 24));
        /// </remarks>
        /// <param name="transaction">一个有效的连接事务</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句</param>
        /// <param name="commandParameters">分配给命令的SqlParamter参数数组</param>
        /// <returns>返回包含结果集的SqlDataReader</returns>
        public static SqlDataReader ExecuteReader(SqlTransaction transaction, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            if (transaction == null) throw new ArgumentNullException("transaction");
            if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
            return ExecuteReader(transaction.Connection, transaction, commandType, commandText, commandParameters, SqlConnectionOwnership.External);
        }
        /// <summary>
        /// [调用者方式]执行指定数据库事务的数据阅读器,指定参数值.
        /// </summary>
        /// <remarks>
        /// 此方法不提供访问存储过程输出参数和返回值参数.
        ///
        /// 示例:
        ///  SqlDataReader dr = ExecuteReader(trans, "GetOrders", 24, 36);
        /// </remarks>
        /// <param name="transaction">一个有效的连接事务</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="parameterValues">分配给存储过程输入参数的对象数组</param>
        /// <returns>返回包含结果集的SqlDataReader</returns>
        public static SqlDataReader ExecuteReader(SqlTransaction transaction, string spName, params object[] parameterValues)
        {
            if (transaction == null) throw new ArgumentNullException("transaction");
            if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 如果有参数值
            if ((parameterValues != null) && (parameterValues.Length > 0))
            {
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection, spName);
                AssignParameterValues(commandParameters, parameterValues);
                return ExecuteReader(transaction, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                // 没有参数值
                return ExecuteReader(transaction, CommandType.StoredProcedure, spName);
            }
        }
        #endregion ExecuteReader数据阅读器
        #region ExecuteScalar 返回结果集中的第一行第一列
        /// <summary>
        /// 执行指定数据库连接字符串的命令,返回结果集中的第一行第一列.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  int orderCount = (int)ExecuteScalar(connString, CommandType.StoredProcedure, "GetOrderCount");
        /// </remarks>
        /// <param name="connectionString">一个有效的数据库连接字符串</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句</param>
        /// <returns>返回结果集中的第一行第一列</returns>
        public static object ExecuteScalar(string connectionString, CommandType commandType, string commandText)
        {
            // 执行参数为空的方法
            return ExecuteScalar(connectionString, commandType, commandText, (SqlParameter[])null);
        }
        /// <summary>
        /// 执行指定数据库连接字符串的命令,指定参数,返回结果集中的第一行第一列.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  int orderCount = (int)ExecuteScalar(connString, CommandType.StoredProcedure, "GetOrderCount", new SqlParameter("@prodid", 24));
        /// </remarks>
        /// <param name="connectionString">一个有效的数据库连接字符串</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句</param>
        /// <param name="commandParameters">分配给命令的SqlParamter参数数组</param>
        /// <returns>返回结果集中的第一行第一列</returns>
        public static object ExecuteScalar(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString");
            // 创建并打开数据库连接对象,操作完成释放对象.
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();
                // 调用指定数据库连接字符串重载方法.
                return ExecuteScalar(connection, commandType, commandText, commandParameters);
            }
        }
        /// <summary>
        /// 执行指定数据库连接字符串的命令,指定参数值,返回结果集中的第一行第一列.
        /// </summary>
        /// <remarks>
        /// 此方法不提供访问存储过程输出参数和返回值参数.
        ///
        /// 示例:
        ///  int orderCount = (int)ExecuteScalar(connString, "GetOrderCount", 24, 36);
        /// </remarks>
        /// <param name="connectionString">一个有效的数据库连接字符串</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="parameterValues">分配给存储过程输入参数的对象数组</param>
        /// <returns>返回结果集中的第一行第一列</returns>
        public static object ExecuteScalar(string connectionString, string spName, params object[] parameterValues)
        {
            if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 如果有参数值
            if ((parameterValues != null) && (parameterValues.Length > 0))
            {
                // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. ()
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connectionString, spName);
                // 给存储过程参数赋值
                AssignParameterValues(commandParameters, parameterValues);
                // 调用重载方法
                return ExecuteScalar(connectionString, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                // 没有参数值
                return ExecuteScalar(connectionString, CommandType.StoredProcedure, spName);
            }
        }
        /// <summary>
        /// 执行指定数据库连接对象的命令,返回结果集中的第一行第一列.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  int orderCount = (int)ExecuteScalar(conn, CommandType.StoredProcedure, "GetOrderCount");
        /// </remarks>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句</param>
        /// <returns>返回结果集中的第一行第一列</returns>
        public static object ExecuteScalar(SqlConnection connection, CommandType commandType, string commandText)
        {
            // 执行参数为空的方法
            return ExecuteScalar(connection, commandType, commandText, (SqlParameter[])null);
        }
        /// <summary>
        /// 执行指定数据库连接对象的命令,指定参数,返回结果集中的第一行第一列.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  int orderCount = (int)ExecuteScalar(conn, CommandType.StoredProcedure, "GetOrderCount", new SqlParameter("@prodid", 24));
        /// </remarks>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句</param>
        /// <param name="commandParameters">分配给命令的SqlParamter参数数组</param>
        /// <returns>返回结果集中的第一行第一列</returns>
        public static object ExecuteScalar(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            if (connection == null) throw new ArgumentNullException("connection");
            // 创建SqlCommand命令,并进行预处理
            SqlCommand cmd = new SqlCommand();
            bool mustCloseConnection = false;
            PrepareCommand(cmd, connection, (SqlTransaction)null, commandType, commandText, commandParameters, out mustCloseConnection);
            // 执行SqlCommand命令,并返回结果.
            object retval = cmd.ExecuteScalar();
            // 清除参数,以便再次使用.
            cmd.Parameters.Clear();
            if (mustCloseConnection)
                connection.Close();
            return retval;
        }
        /// <summary>
        /// 执行指定数据库连接对象的命令,指定参数值,返回结果集中的第一行第一列.
        /// </summary>
        /// <remarks>
        /// 此方法不提供访问存储过程输出参数和返回值参数.
        ///
        /// 示例:
        ///  int orderCount = (int)ExecuteScalar(conn, "GetOrderCount", 24, 36);
        /// </remarks>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="parameterValues">分配给存储过程输入参数的对象数组</param>
        /// <returns>返回结果集中的第一行第一列</returns>
        public static object ExecuteScalar(SqlConnection connection, string spName, params object[] parameterValues)
        {
            if (connection == null) throw new ArgumentNullException("connection");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 如果有参数值
            if ((parameterValues != null) && (parameterValues.Length > 0))
            {
                // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. ()
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName);
                // 给存储过程参数赋值
                AssignParameterValues(commandParameters, parameterValues);
                // 调用重载方法
                return ExecuteScalar(connection, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                // 没有参数值
                return ExecuteScalar(connection, CommandType.StoredProcedure, spName);
            }
        }
        /// <summary>
        /// 执行指定数据库事务的命令,返回结果集中的第一行第一列.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  int orderCount = (int)ExecuteScalar(trans, CommandType.StoredProcedure, "GetOrderCount");
        /// </remarks>
        /// <param name="transaction">一个有效的连接事务</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句</param>
        /// <returns>返回结果集中的第一行第一列</returns>
        public static object ExecuteScalar(SqlTransaction transaction, CommandType commandType, string commandText)
        {
            // 执行参数为空的方法
            return ExecuteScalar(transaction, commandType, commandText, (SqlParameter[])null);
        }
        /// <summary>
        /// 执行指定数据库事务的命令,指定参数,返回结果集中的第一行第一列.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  int orderCount = (int)ExecuteScalar(trans, CommandType.StoredProcedure, "GetOrderCount", new SqlParameter("@prodid", 24));
        /// </remarks>
        /// <param name="transaction">一个有效的连接事务</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句</param>
        /// <param name="commandParameters">分配给命令的SqlParamter参数数组</param>
        /// <returns>返回结果集中的第一行第一列</returns>
        public static object ExecuteScalar(SqlTransaction transaction, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            if (transaction == null) throw new ArgumentNullException("transaction");
            if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
            // 创建SqlCommand命令,并进行预处理
            SqlCommand cmd = new SqlCommand();
            bool mustCloseConnection = false;
            PrepareCommand(cmd, transaction.Connection, transaction, commandType, commandText, commandParameters, out mustCloseConnection);
            // 执行SqlCommand命令,并返回结果.
            object retval = cmd.ExecuteScalar();
            // 清除参数,以便再次使用.
            cmd.Parameters.Clear();
            return retval;
        }
        /// <summary>
        /// 执行指定数据库事务的命令,指定参数值,返回结果集中的第一行第一列.
        /// </summary>
        /// <remarks>
        /// 此方法不提供访问存储过程输出参数和返回值参数.
        ///
        /// 示例:
        ///  int orderCount = (int)ExecuteScalar(trans, "GetOrderCount", 24, 36);
        /// </remarks>
        /// <param name="transaction">一个有效的连接事务</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="parameterValues">分配给存储过程输入参数的对象数组</param>
        /// <returns>返回结果集中的第一行第一列</returns>
        public static object ExecuteScalar(SqlTransaction transaction, string spName, params object[] parameterValues)
        {
            if (transaction == null) throw new ArgumentNullException("transaction");
            if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 如果有参数值
            if ((parameterValues != null) && (parameterValues.Length > 0))
            {
                // PPull the parameters for this stored procedure from the parameter cache ()
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection, spName);
                // 给存储过程参数赋值
                AssignParameterValues(commandParameters, parameterValues);
                // 调用重载方法
                return ExecuteScalar(transaction, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                // 没有参数值
                return ExecuteScalar(transaction, CommandType.StoredProcedure, spName);
            }
        }
        #endregion ExecuteScalar
        #region ExecuteXmlReader XML阅读器
        /// <summary>
        /// 执行指定数据库连接对象的SqlCommand命令,并产生一个XmlReader对象做为结果集返回.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  XmlReader r = ExecuteXmlReader(conn, CommandType.StoredProcedure, "GetOrders");
        /// </remarks>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句 using "FOR XML AUTO"</param>
        /// <returns>返回XmlReader结果集对象.</returns>
        public static XmlReader ExecuteXmlReader(SqlConnection connection, CommandType commandType, string commandText)
        {
            // 执行参数为空的方法
            return ExecuteXmlReader(connection, commandType, commandText, (SqlParameter[])null);
        }
        /// <summary>
        /// 执行指定数据库连接对象的SqlCommand命令,并产生一个XmlReader对象做为结果集返回,指定参数.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  XmlReader r = ExecuteXmlReader(conn, CommandType.StoredProcedure, "GetOrders", new SqlParameter("@prodid", 24));
        /// </remarks>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句 using "FOR XML AUTO"</param>
        /// <param name="commandParameters">分配给命令的SqlParamter参数数组</param>
        /// <returns>返回XmlReader结果集对象.</returns>
        public static XmlReader ExecuteXmlReader(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            if (connection == null) throw new ArgumentNullException("connection");
            bool mustCloseConnection = false;
            // 创建SqlCommand命令,并进行预处理
            SqlCommand cmd = new SqlCommand();
            try
            {
                PrepareCommand(cmd, connection, (SqlTransaction)null, commandType, commandText, commandParameters, out mustCloseConnection);
                // 执行命令
                XmlReader retval = cmd.ExecuteXmlReader();
                // 清除参数,以便再次使用.
                cmd.Parameters.Clear();
                return retval;
            }
            catch
            {
                if (mustCloseConnection)
                    connection.Close();
                throw;
            }
        }
        /// <summary>
        /// 执行指定数据库连接对象的SqlCommand命令,并产生一个XmlReader对象做为结果集返回,指定参数值.
        /// </summary>
        /// <remarks>
        /// 此方法不提供访问存储过程输出参数和返回值参数.
        ///
        /// 示例:
        ///  XmlReader r = ExecuteXmlReader(conn, "GetOrders", 24, 36);
        /// </remarks>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="spName">存储过程名称 using "FOR XML AUTO"</param>
        /// <param name="parameterValues">分配给存储过程输入参数的对象数组</param>
        /// <returns>返回XmlReader结果集对象.</returns>
        public static XmlReader ExecuteXmlReader(SqlConnection connection, string spName, params object[] parameterValues)
        {
            if (connection == null) throw new ArgumentNullException("connection");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 如果有参数值
            if ((parameterValues != null) && (parameterValues.Length > 0))
            {
                // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. ()
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName);
                // 给存储过程参数赋值
                AssignParameterValues(commandParameters, parameterValues);
                // 调用重载方法
                return ExecuteXmlReader(connection, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                // 没有参数值
                return ExecuteXmlReader(connection, CommandType.StoredProcedure, spName);
            }
        }
        /// <summary>
        /// 执行指定数据库事务的SqlCommand命令,并产生一个XmlReader对象做为结果集返回.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  XmlReader r = ExecuteXmlReader(trans, CommandType.StoredProcedure, "GetOrders");
        /// </remarks>
        /// <param name="transaction">一个有效的连接事务</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句 using "FOR XML AUTO"</param>
        /// <returns>返回XmlReader结果集对象.</returns>
        public static XmlReader ExecuteXmlReader(SqlTransaction transaction, CommandType commandType, string commandText)
        {
            // 执行参数为空的方法
            return ExecuteXmlReader(transaction, commandType, commandText, (SqlParameter[])null);
        }
        /// <summary>
        /// 执行指定数据库事务的SqlCommand命令,并产生一个XmlReader对象做为结果集返回,指定参数.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  XmlReader r = ExecuteXmlReader(trans, CommandType.StoredProcedure, "GetOrders", new SqlParameter("@prodid", 24));
        /// </remarks>
        /// <param name="transaction">一个有效的连接事务</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句 using "FOR XML AUTO"</param>
        /// <param name="commandParameters">分配给命令的SqlParamter参数数组</param>
        /// <returns>返回XmlReader结果集对象.</returns>
        public static XmlReader ExecuteXmlReader(SqlTransaction transaction, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
            if (transaction == null) throw new ArgumentNullException("transaction");
            if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
            // 创建SqlCommand命令,并进行预处理
            SqlCommand cmd = new SqlCommand();
            bool mustCloseConnection = false;
            PrepareCommand(cmd, transaction.Connection, transaction, commandType, commandText, commandParameters, out mustCloseConnection);
            // 执行命令
            XmlReader retval = cmd.ExecuteXmlReader();
            // 清除参数,以便再次使用.
            cmd.Parameters.Clear();
            return retval;
        }
        /// <summary>
        /// 执行指定数据库事务的SqlCommand命令,并产生一个XmlReader对象做为结果集返回,指定参数值.
        /// </summary>
        /// <remarks>
        /// 此方法不提供访问存储过程输出参数和返回值参数.
        ///
        /// 示例:
        ///  XmlReader r = ExecuteXmlReader(trans, "GetOrders", 24, 36);
        /// </remarks>
        /// <param name="transaction">一个有效的连接事务</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="parameterValues">分配给存储过程输入参数的对象数组</param>
        /// <returns>返回一个包含结果集的DataSet.</returns>
        public static XmlReader ExecuteXmlReader(SqlTransaction transaction, string spName, params object[] parameterValues)
        {
            if (transaction == null) throw new ArgumentNullException("transaction");
            if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 如果有参数值
            if ((parameterValues != null) && (parameterValues.Length > 0))
            {
                // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. ()
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection, spName);
                // 给存储过程参数赋值
                AssignParameterValues(commandParameters, parameterValues);
                // 调用重载方法
                return ExecuteXmlReader(transaction, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                // 没有参数值
                return ExecuteXmlReader(transaction, CommandType.StoredProcedure, spName);
            }
        }
        #endregion ExecuteXmlReader 阅读器结束
        #region FillDataset 填充数据集
        /// <summary>
        /// 执行指定数据库连接字符串的命令,映射数据表并填充数据集.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  FillDataset(connString, CommandType.StoredProcedure, "GetOrders", ds, new string[] {"orders"});
        /// </remarks>
        /// <param name="connectionString">一个有效的数据库连接字符串</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句</param>
        /// <param name="dataSet">要填充结果集的DataSet实例</param>
        /// <param name="tableNames">表映射的数据表数组
        /// 用户定义的表名 (可有是实际的表名.)</param>
        public static void FillDataset(string connectionString, CommandType commandType, string commandText, DataSet dataSet, string[] tableNames)
        {
            if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString");
            if (dataSet == null) throw new ArgumentNullException("dataSet");
            // 创建并打开数据库连接对象,操作完成释放对象.
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();
                // 调用指定数据库连接字符串重载方法.
                FillDataset(connection, commandType, commandText, dataSet, tableNames);
            }
        }
        /// <summary>
        /// 执行指定数据库连接字符串的命令,映射数据表并填充数据集.指定命令参数.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  FillDataset(connString, CommandType.StoredProcedure, "GetOrders", ds, new string[] {"orders"}, new SqlParameter("@prodid", 24));
        /// </remarks>
        /// <param name="connectionString">一个有效的数据库连接字符串</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句</param>
        /// <param name="commandParameters">分配给命令的SqlParamter参数数组</param>
        /// <param name="dataSet">要填充结果集的DataSet实例</param>
        /// <param name="tableNames">表映射的数据表数组
        /// 用户定义的表名 (可有是实际的表名.)
        /// </param>
        public static void FillDataset(string connectionString, CommandType commandType,
            string commandText, DataSet dataSet, string[] tableNames,
            params SqlParameter[] commandParameters)
        {
            if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString");
            if (dataSet == null) throw new ArgumentNullException("dataSet");
            // 创建并打开数据库连接对象,操作完成释放对象.
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();
                // 调用指定数据库连接字符串重载方法.
                FillDataset(connection, commandType, commandText, dataSet, tableNames, commandParameters);
            }
        }
        /// <summary>
        /// 执行指定数据库连接字符串的命令,映射数据表并填充数据集,指定存储过程参数值.
        /// </summary>
        /// <remarks>
        /// 此方法不提供访问存储过程输出参数和返回值参数.
        ///
        /// 示例:
        ///  FillDataset(connString, CommandType.StoredProcedure, "GetOrders", ds, new string[] {"orders"}, 24);
        /// </remarks>
        /// <param name="connectionString">一个有效的数据库连接字符串</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="dataSet">要填充结果集的DataSet实例</param>
        /// <param name="tableNames">表映射的数据表数组
        /// 用户定义的表名 (可有是实际的表名.)
        /// </param>
        /// <param name="parameterValues">分配给存储过程输入参数的对象数组</param>
        public static void FillDataset(string connectionString, string spName,
            DataSet dataSet, string[] tableNames,
            params object[] parameterValues)
        {
            if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString");
            if (dataSet == null) throw new ArgumentNullException("dataSet");
            // 创建并打开数据库连接对象,操作完成释放对象.
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();
                // 调用指定数据库连接字符串重载方法.
                FillDataset(connection, spName, dataSet, tableNames, parameterValues);
            }
        }
        /// <summary>
        /// 执行指定数据库连接对象的命令,映射数据表并填充数据集.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  FillDataset(conn, CommandType.StoredProcedure, "GetOrders", ds, new string[] {"orders"});
        /// </remarks>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句</param>
        /// <param name="dataSet">要填充结果集的DataSet实例</param>
        /// <param name="tableNames">表映射的数据表数组
        /// 用户定义的表名 (可有是实际的表名.)
        /// </param>
        public static void FillDataset(SqlConnection connection, CommandType commandType,
            string commandText, DataSet dataSet, string[] tableNames)
        {
            FillDataset(connection, commandType, commandText, dataSet, tableNames, null);
        }
        /// <summary>
        /// 执行指定数据库连接对象的命令,映射数据表并填充数据集,指定参数.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  FillDataset(conn, CommandType.StoredProcedure, "GetOrders", ds, new string[] {"orders"}, new SqlParameter("@prodid", 24));
        /// </remarks>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句</param>
        /// <param name="dataSet">要填充结果集的DataSet实例</param>
        /// <param name="tableNames">表映射的数据表数组
        /// 用户定义的表名 (可有是实际的表名.)
        /// </param>
        /// <param name="commandParameters">分配给命令的SqlParamter参数数组</param>
        public static void FillDataset(SqlConnection connection, CommandType commandType,
            string commandText, DataSet dataSet, string[] tableNames,
            params SqlParameter[] commandParameters)
        {
            FillDataset(connection, null, commandType, commandText, dataSet, tableNames, commandParameters);
        }
        /// <summary>
        /// 执行指定数据库连接对象的命令,映射数据表并填充数据集,指定存储过程参数值.
        /// </summary>
        /// <remarks>
        /// 此方法不提供访问存储过程输出参数和返回值参数.
        ///
        /// 示例:
        ///  FillDataset(conn, "GetOrders", ds, new string[] {"orders"}, 24, 36);
        /// </remarks>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="dataSet">要填充结果集的DataSet实例</param>
        /// <param name="tableNames">表映射的数据表数组
        /// 用户定义的表名 (可有是实际的表名.)
        /// </param>
        /// <param name="parameterValues">分配给存储过程输入参数的对象数组</param>
        public static void FillDataset(SqlConnection connection, string spName,
            DataSet dataSet, string[] tableNames,
            params object[] parameterValues)
        {
            if (connection == null) throw new ArgumentNullException("connection");
            if (dataSet == null) throw new ArgumentNullException("dataSet");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 如果有参数值
            if ((parameterValues != null) && (parameterValues.Length > 0))
            {
                // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. ()
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName);
                // 给存储过程参数赋值
                AssignParameterValues(commandParameters, parameterValues);
                // 调用重载方法
                FillDataset(connection, CommandType.StoredProcedure, spName, dataSet, tableNames, commandParameters);
            }
            else
            {
                // 没有参数值
                FillDataset(connection, CommandType.StoredProcedure, spName, dataSet, tableNames);
            }
        }
        /// <summary>
        /// 执行指定数据库事务的命令,映射数据表并填充数据集.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  FillDataset(trans, CommandType.StoredProcedure, "GetOrders", ds, new string[] {"orders"});
        /// </remarks>
        /// <param name="transaction">一个有效的连接事务</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句</param>
        /// <param name="dataSet">要填充结果集的DataSet实例</param>
        /// <param name="tableNames">表映射的数据表数组
        /// 用户定义的表名 (可有是实际的表名.)
        /// </param>
        public static void FillDataset(SqlTransaction transaction, CommandType commandType,
            string commandText,
            DataSet dataSet, string[] tableNames)
        {
            FillDataset(transaction, commandType, commandText, dataSet, tableNames, null);
        }
        /// <summary>
        /// 执行指定数据库事务的命令,映射数据表并填充数据集,指定参数.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  FillDataset(trans, CommandType.StoredProcedure, "GetOrders", ds, new string[] {"orders"}, new SqlParameter("@prodid", 24));
        /// </remarks>
        /// <param name="transaction">一个有效的连接事务</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句</param>
        /// <param name="dataSet">要填充结果集的DataSet实例</param>
        /// <param name="tableNames">表映射的数据表数组
        /// 用户定义的表名 (可有是实际的表名.)
        /// </param>
        /// <param name="commandParameters">分配给命令的SqlParamter参数数组</param>
        public static void FillDataset(SqlTransaction transaction, CommandType commandType,
            string commandText, DataSet dataSet, string[] tableNames,
            params SqlParameter[] commandParameters)
        {
            FillDataset(transaction.Connection, transaction, commandType, commandText, dataSet, tableNames, commandParameters);
        }
        /// <summary>
        /// 执行指定数据库事务的命令,映射数据表并填充数据集,指定存储过程参数值.
        /// </summary>
        /// <remarks>
        /// 此方法不提供访问存储过程输出参数和返回值参数.
        ///
        /// 示例:
        ///  FillDataset(trans, "GetOrders", ds, new string[]{"orders"}, 24, 36);
        /// </remarks>
        /// <param name="transaction">一个有效的连接事务</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="dataSet">要填充结果集的DataSet实例</param>
        /// <param name="tableNames">表映射的数据表数组
        /// 用户定义的表名 (可有是实际的表名.)
        /// </param>
        /// <param name="parameterValues">分配给存储过程输入参数的对象数组</param>
        public static void FillDataset(SqlTransaction transaction, string spName,
            DataSet dataSet, string[] tableNames,
            params object[] parameterValues)
        {
            if (transaction == null) throw new ArgumentNullException("transaction");
            if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
            if (dataSet == null) throw new ArgumentNullException("dataSet");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 如果有参数值
            if ((parameterValues != null) && (parameterValues.Length > 0))
            {
                // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. ()
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection, spName);
                // 给存储过程参数赋值
                AssignParameterValues(commandParameters, parameterValues);
                // 调用重载方法
                FillDataset(transaction, CommandType.StoredProcedure, spName, dataSet, tableNames, commandParameters);
            }
            else
            {
                // 没有参数值
                FillDataset(transaction, CommandType.StoredProcedure, spName, dataSet, tableNames);
            }
        }
        /// <summary>
        /// [私有方法][内部调用]执行指定数据库连接对象/事务的命令,映射数据表并填充数据集,DataSet/TableNames/SqlParameters.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  FillDataset(conn, trans, CommandType.StoredProcedure, "GetOrders", ds, new string[] {"orders"}, new SqlParameter("@prodid", 24));
        /// </remarks>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="transaction">一个有效的连接事务</param>
        /// <param name="commandType">命令类型 (存储过程,命令文本或其它)</param>
        /// <param name="commandText">存储过程名称或T-SQL语句</param>
        /// <param name="dataSet">要填充结果集的DataSet实例</param>
        /// <param name="tableNames">表映射的数据表数组
        /// 用户定义的表名 (可有是实际的表名.)
        /// </param>
        /// <param name="commandParameters">分配给命令的SqlParamter参数数组</param>
        private static void FillDataset(SqlConnection connection, SqlTransaction transaction, CommandType commandType,
            string commandText, DataSet dataSet, string[] tableNames,
            params SqlParameter[] commandParameters)
        {
            if (connection == null) throw new ArgumentNullException("connection");
            if (dataSet == null) throw new ArgumentNullException("dataSet");
            // 创建SqlCommand命令,并进行预处理
            SqlCommand command = new SqlCommand();
            bool mustCloseConnection = false;
            PrepareCommand(command, connection, transaction, commandType, commandText, commandParameters, out mustCloseConnection);
            // 执行命令
            using (SqlDataAdapter dataAdapter = new SqlDataAdapter(command))
            {
                // 追加表映射
                if (tableNames != null && tableNames.Length > 0)
                {
                    string tableName = "Table";
                    for (int index = 0; index < tableNames.Length; index++)
                    {
                        if (tableNames[index] == null || tableNames[index].Length == 0) throw new ArgumentException("The tableNames parameter must contain a list of tables, a value was provided as null or empty string.", "tableNames");
                        dataAdapter.TableMappings.Add(tableName, tableNames[index]);
                        tableName += (index + 1).ToString();
                    }
                }
                // 填充数据集使用默认表名称
                dataAdapter.Fill(dataSet);
                // 清除参数,以便再次使用.
                command.Parameters.Clear();
            }
            if (mustCloseConnection)
                connection.Close();
        }
        #endregion
        #region UpdateDataset 更新数据集
        /// <summary>
        /// 执行数据集更新到数据库,指定inserted, updated, or deleted命令.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  UpdateDataset(conn, insertCommand, deleteCommand, updateCommand, dataSet, "Order");
        /// </remarks>
        /// <param name="insertCommand">[追加记录]一个有效的T-SQL语句或存储过程</param>
        /// <param name="deleteCommand">[删除记录]一个有效的T-SQL语句或存储过程</param>
        /// <param name="updateCommand">[更新记录]一个有效的T-SQL语句或存储过程</param>
        /// <param name="dataSet">要更新到数据库的DataSet</param>
        /// <param name="tableName">要更新到数据库的DataTable</param>
        public static void UpdateDataset(SqlCommand insertCommand, SqlCommand deleteCommand, SqlCommand updateCommand, DataSet dataSet, string tableName)
        {
            if (insertCommand == null) throw new ArgumentNullException("insertCommand");
            if (deleteCommand == null) throw new ArgumentNullException("deleteCommand");
            if (updateCommand == null) throw new ArgumentNullException("updateCommand");
            if (tableName == null || tableName.Length == 0) throw new ArgumentNullException("tableName");
            // 创建SqlDataAdapter,当操作完成后释放.
            using (SqlDataAdapter dataAdapter = new SqlDataAdapter())
            {
                // 设置数据适配器命令
                dataAdapter.UpdateCommand = updateCommand;
                dataAdapter.InsertCommand = insertCommand;
                dataAdapter.DeleteCommand = deleteCommand;
                // 更新数据集改变到数据库
                dataAdapter.Update(dataSet, tableName);
                // 提交所有改变到数据集.
                dataSet.AcceptChanges();
            }
        }
        #endregion
        #region CreateCommand 创建一条SqlCommand命令
        /// <summary>
        /// 创建SqlCommand命令,指定数据库连接对象,存储过程名和参数.
        /// </summary>
        /// <remarks>
        /// 示例:
        ///  SqlCommand command = CreateCommand(conn, "AddCustomer", "CustomerID", "CustomerName");
        /// </remarks>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="sourceColumns">源表的列名称数组</param>
        /// <returns>返回SqlCommand命令</returns>
        public static SqlCommand CreateCommand(SqlConnection connection, string spName, params string[] sourceColumns)
        {
            if (connection == null) throw new ArgumentNullException("connection");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 创建命令
            SqlCommand cmd = new SqlCommand(spName, connection);
            cmd.CommandType = CommandType.StoredProcedure;
            // 如果有参数值
            if ((sourceColumns != null) && (sourceColumns.Length > 0))
            {
                // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. ()
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName);
                // 将源表的列到映射到DataSet命令中.
                for (int index = 0; index < sourceColumns.Length; index++)
                    commandParameters[index].SourceColumn = sourceColumns[index];
                // Attach the discovered parameters to the SqlCommand object
                AttachParameters(cmd, commandParameters);
            }
            return cmd;
        }
        #endregion
        #region ExecuteNonQueryTypedParams 类型化参数(DataRow)
        /// <summary>
        /// 执行指定连接数据库连接字符串的存储过程,使用DataRow做为参数值,返回受影响的行数.
        /// </summary>
        /// <param name="connectionString">一个有效的数据库连接字符串</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="dataRow">使用DataRow作为参数值</param>
        /// <returns>返回影响的行数</returns>
        public static int ExecuteNonQueryTypedParams(String connectionString, String spName, DataRow dataRow)
        {
            if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 如果row有值,存储过程必须初始化.
            if (dataRow != null && dataRow.ItemArray.Length > 0)
            {
                // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. ()
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connectionString, spName);
                // 分配参数值
                AssignParameterValues(commandParameters, dataRow);
                return ADODOTNETSqlHelper.ExecuteNonQuery(connectionString, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ADODOTNETSqlHelper.ExecuteNonQuery(connectionString, CommandType.StoredProcedure, spName);
            }
        }
        /// <summary>
        /// 执行指定连接数据库连接对象的存储过程,使用DataRow做为参数值,返回受影响的行数.
        /// </summary>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="dataRow">使用DataRow作为参数值</param>
        /// <returns>返回影响的行数</returns>
        public static int ExecuteNonQueryTypedParams(SqlConnection connection, String spName, DataRow dataRow)
        {
            if (connection == null) throw new ArgumentNullException("connection");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 如果row有值,存储过程必须初始化.
            if (dataRow != null && dataRow.ItemArray.Length > 0)
            {
                // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. ()
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName);
                // 分配参数值
                AssignParameterValues(commandParameters, dataRow);
                return ADODOTNETSqlHelper.ExecuteNonQuery(connection, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ADODOTNETSqlHelper.ExecuteNonQuery(connection, CommandType.StoredProcedure, spName);
            }
        }
        /// <summary>
        /// 执行指定连接数据库事物的存储过程,使用DataRow做为参数值,返回受影响的行数.
        /// </summary>
        /// <param name="transaction">一个有效的连接事务 object</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="dataRow">使用DataRow作为参数值</param>
        /// <returns>返回影响的行数</returns>
        public static int ExecuteNonQueryTypedParams(SqlTransaction transaction, String spName, DataRow dataRow)
        {
            if (transaction == null) throw new ArgumentNullException("transaction");
            if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // Sf the row has values, the store procedure parameters must be initialized
            if (dataRow != null && dataRow.ItemArray.Length > 0)
            {
                // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. ()
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection, spName);
                // 分配参数值
                AssignParameterValues(commandParameters, dataRow);
                return ADODOTNETSqlHelper.ExecuteNonQuery(transaction, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ADODOTNETSqlHelper.ExecuteNonQuery(transaction, CommandType.StoredProcedure, spName);
            }
        }
        #endregion
        #region ExecuteDatasetTypedParams 类型化参数(DataRow)
        /// <summary>
        /// 执行指定连接数据库连接字符串的存储过程,使用DataRow做为参数值,返回DataSet.
        /// </summary>
        /// <param name="connectionString">一个有效的数据库连接字符串</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="dataRow">使用DataRow作为参数值</param>
        /// <returns>返回一个包含结果集的DataSet.</returns>
        public static DataSet ExecuteDatasetTypedParams(string connectionString, String spName, DataRow dataRow)
        {
            if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            //如果row有值,存储过程必须初始化.
            if (dataRow != null && dataRow.ItemArray.Length > 0)
            {
                // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. ()
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connectionString, spName);
                // 分配参数值
                AssignParameterValues(commandParameters, dataRow);
                return ADODOTNETSqlHelper.ExecuteDataset(connectionString, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ADODOTNETSqlHelper.ExecuteDataset(connectionString, CommandType.StoredProcedure, spName);
            }
        }
        /// <summary>
        /// 执行指定连接数据库连接对象的存储过程,使用DataRow做为参数值,返回DataSet.
        /// </summary>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="dataRow">使用DataRow作为参数值</param>
        /// <returns>返回一个包含结果集的DataSet.</returns>
        ///
        public static DataSet ExecuteDatasetTypedParams(SqlConnection connection, String spName, DataRow dataRow)
        {
            if (connection == null) throw new ArgumentNullException("connection");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 如果row有值,存储过程必须初始化.
            if (dataRow != null && dataRow.ItemArray.Length > 0)
            {
                // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. ()
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName);
                // 分配参数值
                AssignParameterValues(commandParameters, dataRow);
                return ADODOTNETSqlHelper.ExecuteDataset(connection, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ADODOTNETSqlHelper.ExecuteDataset(connection, CommandType.StoredProcedure, spName);
            }
        }
        /// <summary>
        /// 执行指定连接数据库事务的存储过程,使用DataRow做为参数值,返回DataSet.
        /// </summary>
        /// <param name="transaction">一个有效的连接事务 object</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="dataRow">使用DataRow作为参数值</param>
        /// <returns>返回一个包含结果集的DataSet.</returns>
        public static DataSet ExecuteDatasetTypedParams(SqlTransaction transaction, String spName, DataRow dataRow)
        {
            if (transaction == null) throw new ArgumentNullException("transaction");
            if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 如果row有值,存储过程必须初始化.
            if (dataRow != null && dataRow.ItemArray.Length > 0)
            {
                // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. ()
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection, spName);
                // 分配参数值
                AssignParameterValues(commandParameters, dataRow);
                return ADODOTNETSqlHelper.ExecuteDataset(transaction, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ADODOTNETSqlHelper.ExecuteDataset(transaction, CommandType.StoredProcedure, spName);
            }
        }
        #endregion
        #region ExecuteReaderTypedParams 类型化参数(DataRow)
        /// <summary>
        /// 执行指定连接数据库连接字符串的存储过程,使用DataRow做为参数值,返回DataReader.
        /// </summary>
        /// <param name="connectionString">一个有效的数据库连接字符串</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="dataRow">使用DataRow作为参数值</param>
        /// <returns>返回包含结果集的SqlDataReader</returns>
        public static SqlDataReader ExecuteReaderTypedParams(String connectionString, String spName, DataRow dataRow)
        {
            if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 如果row有值,存储过程必须初始化.
            if (dataRow != null && dataRow.ItemArray.Length > 0)
            {
                // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. ()
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connectionString, spName);
                // 分配参数值
                AssignParameterValues(commandParameters, dataRow);
                return ADODOTNETSqlHelper.ExecuteReader(connectionString, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ADODOTNETSqlHelper.ExecuteReader(connectionString, CommandType.StoredProcedure, spName);
            }
        }
        /// <summary>
        /// 执行指定连接数据库连接对象的存储过程,使用DataRow做为参数值,返回DataReader.
        /// </summary>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="dataRow">使用DataRow作为参数值</param>
        /// <returns>返回包含结果集的SqlDataReader</returns>
        public static SqlDataReader ExecuteReaderTypedParams(SqlConnection connection, String spName, DataRow dataRow)
        {
            if (connection == null) throw new ArgumentNullException("connection");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 如果row有值,存储过程必须初始化.
            if (dataRow != null && dataRow.ItemArray.Length > 0)
            {
                // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. ()
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName);
                // 分配参数值
                AssignParameterValues(commandParameters, dataRow);
                return ADODOTNETSqlHelper.ExecuteReader(connection, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ADODOTNETSqlHelper.ExecuteReader(connection, CommandType.StoredProcedure, spName);
            }
        }
        /// <summary>
        /// 执行指定连接数据库事物的存储过程,使用DataRow做为参数值,返回DataReader.
        /// </summary>
        /// <param name="transaction">一个有效的连接事务 object</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="dataRow">使用DataRow作为参数值</param>
        /// <returns>返回包含结果集的SqlDataReader</returns>
        public static SqlDataReader ExecuteReaderTypedParams(SqlTransaction transaction, String spName, DataRow dataRow)
        {
            if (transaction == null) throw new ArgumentNullException("transaction");
            if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 如果row有值,存储过程必须初始化.
            if (dataRow != null && dataRow.ItemArray.Length > 0)
            {
                // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. ()
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection, spName);
                // 分配参数值
                AssignParameterValues(commandParameters, dataRow);
                return ADODOTNETSqlHelper.ExecuteReader(transaction, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ADODOTNETSqlHelper.ExecuteReader(transaction, CommandType.StoredProcedure, spName);
            }
        }
        #endregion
        #region ExecuteScalarTypedParams 类型化参数(DataRow)
        /// <summary>
        /// 执行指定连接数据库连接字符串的存储过程,使用DataRow做为参数值,返回结果集中的第一行第一列.
        /// </summary>
        /// <param name="connectionString">一个有效的数据库连接字符串</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="dataRow">使用DataRow作为参数值</param>
        /// <returns>返回结果集中的第一行第一列</returns>
        public static object ExecuteScalarTypedParams(String connectionString, String spName, DataRow dataRow)
        {
            if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 如果row有值,存储过程必须初始化.
            if (dataRow != null && dataRow.ItemArray.Length > 0)
            {
                // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. ()
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connectionString, spName);
                // 分配参数值
                AssignParameterValues(commandParameters, dataRow);
                return ADODOTNETSqlHelper.ExecuteScalar(connectionString, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ADODOTNETSqlHelper.ExecuteScalar(connectionString, CommandType.StoredProcedure, spName);
            }
        }
        /// <summary>
        /// 执行指定连接数据库连接对象的存储过程,使用DataRow做为参数值,返回结果集中的第一行第一列.
        /// </summary>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="dataRow">使用DataRow作为参数值</param>
        /// <returns>返回结果集中的第一行第一列</returns>
        public static object ExecuteScalarTypedParams(SqlConnection connection, String spName, DataRow dataRow)
        {
            if (connection == null) throw new ArgumentNullException("connection");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 如果row有值,存储过程必须初始化.
            if (dataRow != null && dataRow.ItemArray.Length > 0)
            {
                // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. ()
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName);
                // 分配参数值
                AssignParameterValues(commandParameters, dataRow);
                return ADODOTNETSqlHelper.ExecuteScalar(connection, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ADODOTNETSqlHelper.ExecuteScalar(connection, CommandType.StoredProcedure, spName);
            }
        }
        /// <summary>
        /// 执行指定连接数据库事务的存储过程,使用DataRow做为参数值,返回结果集中的第一行第一列.
        /// </summary>
        /// <param name="transaction">一个有效的连接事务 object</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="dataRow">使用DataRow作为参数值</param>
        /// <returns>返回结果集中的第一行第一列</returns>
        public static object ExecuteScalarTypedParams(SqlTransaction transaction, String spName, DataRow dataRow)
        {
            if (transaction == null) throw new ArgumentNullException("transaction");
            if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 如果row有值,存储过程必须初始化.
            if (dataRow != null && dataRow.ItemArray.Length > 0)
            {
                // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. ()
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection, spName);
                // 分配参数值
                AssignParameterValues(commandParameters, dataRow);
                return ADODOTNETSqlHelper.ExecuteScalar(transaction, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ADODOTNETSqlHelper.ExecuteScalar(transaction, CommandType.StoredProcedure, spName);
            }
        }
        #endregion
        #region ExecuteXmlReaderTypedParams 类型化参数(DataRow)
        /// <summary>
        /// 执行指定连接数据库连接对象的存储过程,使用DataRow做为参数值,返回XmlReader类型的结果集.
        /// </summary>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="dataRow">使用DataRow作为参数值</param>
        /// <returns>返回XmlReader结果集对象.</returns>
        public static XmlReader ExecuteXmlReaderTypedParams(SqlConnection connection, String spName, DataRow dataRow)
        {
            if (connection == null) throw new ArgumentNullException("connection");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 如果row有值,存储过程必须初始化.
            if (dataRow != null && dataRow.ItemArray.Length > 0)
            {
                // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. ()
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(connection, spName);
                // 分配参数值
                AssignParameterValues(commandParameters, dataRow);
                return ADODOTNETSqlHelper.ExecuteXmlReader(connection, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ADODOTNETSqlHelper.ExecuteXmlReader(connection, CommandType.StoredProcedure, spName);
            }
        }
        /// <summary>
        /// 执行指定连接数据库事务的存储过程,使用DataRow做为参数值,返回XmlReader类型的结果集.
        /// </summary>
        /// <param name="transaction">一个有效的连接事务 object</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="dataRow">使用DataRow作为参数值</param>
        /// <returns>返回XmlReader结果集对象.</returns>
        public static XmlReader ExecuteXmlReaderTypedParams(SqlTransaction transaction, String spName, DataRow dataRow)
        {
            if (transaction == null) throw new ArgumentNullException("transaction");
            if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            // 如果row有值,存储过程必须初始化.
            if (dataRow != null && dataRow.ItemArray.Length > 0)
            {
                // 从缓存中加载存储过程参数,如果缓存中不存在则从数据库中检索参数信息并加载到缓存中. ()
                SqlParameter[] commandParameters = SqlHelperParameterCache.GetSpParameterSet(transaction.Connection, spName);
                // 分配参数值
                AssignParameterValues(commandParameters, dataRow);
                return ADODOTNETSqlHelper.ExecuteXmlReader(transaction, CommandType.StoredProcedure, spName, commandParameters);
            }
            else
            {
                return ADODOTNETSqlHelper.ExecuteXmlReader(transaction, CommandType.StoredProcedure, spName);
            }
        }
        #endregion
    }
    /// <summary>
    /// SqlHelperParameterCache提供缓存存储过程参数,并能够在运行时从存储过程中探索参数.
    /// </summary>
    public sealed class SqlHelperParameterCache
    {
        #region 私有方法,字段,构造函数
        // 私有构造函数,妨止类被实例化.
        private SqlHelperParameterCache() { }
        // 这个方法要注意
        private static Hashtable paramCache = Hashtable.Synchronized(new Hashtable());
        /// <summary>
        /// 探索运行时的存储过程,返回SqlParameter参数数组.
        /// 初始化参数值为 DBNull.Value.
        /// </summary>
        /// <param name="connection">一个有效的数据库连接</param>
        /// <param name="spName">存储过程名称</param>
        /// <param name="includeReturnValueParameter">是否包含返回值参数</param>
        /// <returns>返回SqlParameter参数数组</returns>
        private static SqlParameter[] DiscoverSpParameterSet(SqlConnection connection, string spName, bool includeReturnValueParameter)
        {
            if (connection == null) throw new ArgumentNullException("connection");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            SqlCommand cmd = new SqlCommand(spName, connection);
            cmd.CommandType = CommandType.StoredProcedure;
            connection.Open();
            // 检索cmd指定的存储过程的参数信息,并填充到cmd的Parameters参数集中.
            SqlCommandBuilder.DeriveParameters(cmd);
            connection.Close();
            // 如果不包含返回值参数,将参数集中的每一个参数删除.
            if (!includeReturnValueParameter)
            {
                cmd.Parameters.RemoveAt(0);
            }
            // 创建参数数组
            SqlParameter[] discoveredParameters = new SqlParameter[cmd.Parameters.Count];
            // 将cmd的Parameters参数集复制到discoveredParameters数组.
            cmd.Parameters.CopyTo(discoveredParameters, 0);
            // 初始化参数值为 DBNull.Value.
            foreach (SqlParameter discoveredParameter in discoveredParameters)
            {
                discoveredParameter.Value = DBNull.Value;
            }
            return discoveredParameters;
        }
        /// <summary>
        /// SqlParameter参数数组的深层拷贝.
        /// </summary>
        /// <param name="originalParameters">原始参数数组</param>
        /// <returns>返回一个同样的参数数组</returns>
        private static SqlParameter[] CloneParameters(SqlParameter[] originalParameters)
        {
            SqlParameter[] clonedParameters = new SqlParameter[originalParameters.Length];
            for (int i = 0, j = originalParameters.Length; i < j; i++)
            {
                clonedParameters[i] = (SqlParameter)((ICloneable)originalParameters[i]).Clone();
            }
            return clonedParameters;
        }
        #endregion 私有方法,字段,构造函数结束
        #region 缓存方法
        /// <summary>
        /// 追加参数数组到缓存.
        /// </summary>
        /// <param name="connectionString">一个有效的数据库连接字符串</param>
        /// <param name="commandText">存储过程名或SQL语句</param>
        /// <param name="commandParameters">要缓存的参数数组</param>
        public static void CacheParameterSet(string connectionString, string commandText, params SqlParameter[] commandParameters)
        {
            if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString");
            if (commandText == null || commandText.Length == 0) throw new ArgumentNullException("commandText");
            string hashKey = connectionString + ":" + commandText;
            paramCache[hashKey] = commandParameters;
        }
        /// <summary>
        /// 从缓存中获取参数数组.
        /// </summary>
        /// <param name="connectionString">一个有效的数据库连接字符</param>
        /// <param name="commandText">存储过程名或SQL语句</param>
        /// <returns>参数数组</returns>
        public static SqlParameter[] GetCachedParameterSet(string connectionString, string commandText)
        {
            if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString");
            if (commandText == null || commandText.Length == 0) throw new ArgumentNullException("commandText");
            string hashKey = connectionString + ":" + commandText;
            SqlParameter[] cachedParameters = paramCache[hashKey] as SqlParameter[];
            if (cachedParameters == null)
            {
                return null;
            }
            else
            {
                return CloneParameters(cachedParameters);
            }
        }
        #endregion 缓存方法结束
        #region 检索指定的存储过程的参数集
        /// <summary>
        /// 返回指定的存储过程的参数集
        /// </summary>
        /// <remarks>
        /// 这个方法将查询数据库,并将信息存储到缓存.
        /// </remarks>
        /// <param name="connectionString">一个有效的数据库连接字符</param>
        /// <param name="spName">存储过程名</param>
        /// <returns>返回SqlParameter参数数组</returns>
        public static SqlParameter[] GetSpParameterSet(string connectionString, string spName)
        {
            return GetSpParameterSet(connectionString, spName, false);
        }
        /// <summary>
        /// 返回指定的存储过程的参数集
        /// </summary>
        /// <remarks>
        /// 这个方法将查询数据库,并将信息存储到缓存.
        /// </remarks>
        /// <param name="connectionString">一个有效的数据库连接字符.</param>
        /// <param name="spName">存储过程名</param>
        /// <param name="includeReturnValueParameter">是否包含返回值参数</param>
        /// <returns>返回SqlParameter参数数组</returns>
        public static SqlParameter[] GetSpParameterSet(string connectionString, string spName, bool includeReturnValueParameter)
        {
            if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                return GetSpParameterSetInternal(connection, spName, includeReturnValueParameter);
            }
        }
        /// <summary>
        /// [内部]返回指定的存储过程的参数集(使用连接对象).
        /// </summary>
        /// <remarks>
        /// 这个方法将查询数据库,并将信息存储到缓存.
        /// </remarks>
        /// <param name="connection">一个有效的数据库连接字符</param>
        /// <param name="spName">存储过程名</param>
        /// <returns>返回SqlParameter参数数组</returns>
        internal static SqlParameter[] GetSpParameterSet(SqlConnection connection, string spName)
        {
            return GetSpParameterSet(connection, spName, false);
        }
        /// <summary>
        /// [内部]返回指定的存储过程的参数集(使用连接对象)
        /// </summary>
        /// <remarks>
        /// 这个方法将查询数据库,并将信息存储到缓存.
        /// </remarks>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="spName">存储过程名</param>
        /// <param name="includeReturnValueParameter">
        /// 是否包含返回值参数
        /// </param>
        /// <returns>返回SqlParameter参数数组</returns>
        internal static SqlParameter[] GetSpParameterSet(SqlConnection connection, string spName, bool includeReturnValueParameter)
        {
            if (connection == null) throw new ArgumentNullException("connection");
            using (SqlConnection clonedConnection = (SqlConnection)((ICloneable)connection).Clone())
            {
                return GetSpParameterSetInternal(clonedConnection, spName, includeReturnValueParameter);
            }
        }
        /// <summary>
        /// [私有]返回指定的存储过程的参数集(使用连接对象)
        /// </summary>
        /// <param name="connection">一个有效的数据库连接对象</param>
        /// <param name="spName">存储过程名</param>
        /// <param name="includeReturnValueParameter">是否包含返回值参数</param>
        /// <returns>返回SqlParameter参数数组</returns>
        private static SqlParameter[] GetSpParameterSetInternal(SqlConnection connection, string spName, bool includeReturnValueParameter)
        {
            if (connection == null) throw new ArgumentNullException("connection");
            if (spName == null || spName.Length == 0) throw new ArgumentNullException("spName");
            string hashKey = connection.ConnectionString + ":" + spName + (includeReturnValueParameter ? ":include ReturnValue Parameter" : "");
            SqlParameter[] cachedParameters;
            cachedParameters = paramCache[hashKey] as SqlParameter[];
            if (cachedParameters == null)
            {
                SqlParameter[] spParameters = DiscoverSpParameterSet(connection, spName, includeReturnValueParameter);
                paramCache[hashKey] = spParameters;
                cachedParameters = spParameters;
            }
            return CloneParameters(cachedParameters);
        }
        #endregion 参数集检索结束
    }
}
//如果要获取连接数据连接对象或字符串的话,先要修改SQLHelper类中GetConnSting() 方法中的ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;才能调用。
WebApi/GTech.Solution.Api.Common/Common/ConvertUtil.cs
New file
@@ -0,0 +1,280 @@
using System;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Runtime.Serialization.Json;
using System.Text;
using System.Text.RegularExpressions;
namespace GTech.Solution.Api.Common
{
    public static class ConvertUtil
    {
        #region Basic
        public static string errMsg = "";
        public static int toInt(string str, int def)
        {
            return ConvertUtil.toInt(str, def, 0);
        }
        public static int toInt(object obj, int def, int t)
        {
            int ret = def;
            try
            {
                ret = Convert.ToInt32(obj);
            }
            catch (Exception)
            {
                ret = def;
            }
            return ret;
        }
        public static string NVL(object obj)
        {
            string ret = "";
            try
            {
                ret = Convert.ToString(obj);
            }
            catch (Exception)
            {
                ret = "";
            }
            return ret;
        }
        public static DateTime toDatetime(object obj, int fix)
        {
            DateTime dt = DateTime.Now.AddYears(fix);
            try
            {
                dt = Convert.ToDateTime(obj);
                if (dt.Year == 1)
                    dt = dt.AddYears(2000);
            }
            catch (Exception)
            {
            }
            finally
            {
                if (dt == null)
                    dt = DateTime.Now.AddYears(fix);
            }
            return dt;
        }
        public static string IFEmptyToDefault(this string s, string _default)
        {
            string v = s;
            if (string.IsNullOrEmpty(v))
            {
                v = _default;
            }
            return v;
        }
        public static bool TryToBool(this string s, bool _default)
        {
            bool v = _default;
            if (s == null || !bool.TryParse(s, out v))
            {
                v = _default;
            }
            return v;
        }
        public static int TryToInt(this string s, int _default)
        {
            int v = _default;
            if (s == null || !int.TryParse(s, out v))
            {
                v = _default;
            }
            return v;
        }
        public static long TryToLong(this object s, long _default)
        {
            long v = _default;
            if (s == null || !long.TryParse(s + "", out v))
            {
                v = _default;
            }
            return v;
        }
        public static T JsonParse<T>(string jsonString)
        {
            DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(T));
            MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
            return (T)ds.ReadObject(ms);
        }
        public static DataTable getTableFromXls(string fileName, string range, string sheetname)
        {
            string connStr = "";
            if (fileName.IndexOf(".xlsx") >= 0)
            {
                connStr = "Provider=Microsoft.Jet.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1;'";
            }
            else
            {
                connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
            }
            string sheetna = "Sheet1";
            if (!sheetname.Equals(""))
            {
                sheetna = sheetname;
            }
            string sql = "select * from [" + sheetna + "$" + range + "]";
            OleDbDataAdapter da = new OleDbDataAdapter(sql, connStr);
            DataSet ds = new DataSet();
            try
            {
                da.Fill(ds, "datatable");
                errMsg = "";
                return ds.Tables[0];
            }
            catch (Exception ex)
            {
                errMsg = ex.Message;
                return null;
            }
        }
        public static int safeToInt(object anysome)
        {
            if (anysome == null) return 0;
            else if (string.IsNullOrEmpty(anysome.ToString()))
            {
                return 0;
            }
            else
            {
                int data = 0;
                string sdata = anysome.ToString();
                if (sdata.Contains("%"))
                {
                    sdata = sdata.Replace("%", "");
                    try
                    {
                        data = int.Parse(sdata) / 100;
                    }
                    catch { data = 0; }
                }
                else
                {
                    try
                    {
                        data = int.Parse(sdata);
                    }
                    catch { data = 0; }
                }
                return data;
            }
        }
        public static double safeToDouble(object anysome)
        {
            if (anysome == null) return 0.0;
            else if (string.IsNullOrEmpty(anysome.ToString()))
            {
                return 0.0;
            }
            else
            {
                double data = 0;
                string sdata = anysome.ToString();
                if (sdata.Contains("%"))
                {
                    sdata = sdata.Replace("%", "");
                    try
                    {
                        data = double.Parse(sdata) / 100.0;
                    }
                    catch { data = 0; }
                }
                else
                {
                    try
                    {
                        data = double.Parse(sdata);
                    }
                    catch { data = 0; }
                }
                return data;
            }
        }
        public static DateTime safeToDatetime(object anysome)
        {
            if (anysome == null || string.IsNullOrEmpty(anysome.ToString())) return new DateTime(1900, 1, 1, 0, 0, 0);
            else
            {
                DateTime dt = new DateTime(1900, 1, 1, 0, 0, 0);
                try
                {
                    dt = DateTime.Parse(anysome.ToString());
                }
                catch { dt = new DateTime(1900, 1, 1, 0, 0, 0); }
                return dt;
            }
        }
        public static string safeToString(object anysome)
        {
            string val = "";
            try
            {
                val = double.Parse(anysome.ToString()).ToString();
            }
            catch
            {
                val = anysome.ToString();
            }
            return val;
        }
        public static DataTable createDataTable(string[] tts)
        {
            DataTable data = new DataTable();
            foreach (string pi in tts)
            {
                DataColumn dc = new DataColumn(pi, typeof(string));
                dc.Caption = pi;
                data.Columns.Add(dc);
            }
            return data;
        }
        #endregion
        #region DateTime Tool
        public static DateTime? SafeToConvertDatatime(string datetime)
        {
            DateTime? result = null;
            try
            {
                if (!String.IsNullOrEmpty(datetime))
                    result = DateTime.Parse(datetime);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return result;
        }
        #endregion
        internal static object SafeToDecimal(string txtMinOperationVolume, string v, out object message)
        {
            throw new NotImplementedException();
        }
    }
}
WebApi/GTech.Solution.Api.Common/Common/DESEncrytion.cs
New file
@@ -0,0 +1,147 @@
/*
 * DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小。
 * 这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。
 * 使用子密钥对其中一半应用循环功能,然后将输出与另一半进行"异或"运算;
 * 接着交换这两半,这一过程会继续下去,但最后一个循环不交换。
 * DES 使用 16 个循环,使用异或,置换,代换,移位操作四种基本运算。
 */
using System;
using System.Text;
using System.Security.Cryptography;//这个是处理文字编码的前提
using System.IO;
namespace GTech.Solution.Api.Common
{
    public  static class DESEncrytion
    {
        #region 1、加密向量自定义
        /// <summary>
        /// DES加密方法
        /// </summary>
        /// <param name="strPlain">明文</param>
        /// <param name="strDESKey">密钥</param>
        /// <param name="strDESIV">向量</param>
        /// <returns>密文</returns>
        public static string DESEncrypt(string strPlain, string strDESKey, string strDESIV)
        {
            //把密钥转换成字节数组
            byte[] bytesDESKey = ASCIIEncoding.ASCII.GetBytes(strDESKey);
            //把向量转换成字节数组
            byte[] bytesDESIV = ASCIIEncoding.ASCII.GetBytes(strDESIV);
            //声明1个新的DES对象
            DESCryptoServiceProvider desEncrypt = new DESCryptoServiceProvider();
            //开辟一块内存流
            MemoryStream msEncrypt = new MemoryStream();
            //把内存流对象包装成加密流对象
            CryptoStream csEncrypt = new CryptoStream(msEncrypt, desEncrypt.CreateEncryptor(bytesDESKey, bytesDESIV), CryptoStreamMode.Write);
            //把加密流对象包装成写入流对象
            StreamWriter swEncrypt = new StreamWriter(csEncrypt);
            //写入流对象写入明文
            swEncrypt.WriteLine(strPlain);
            //写入流关闭
            swEncrypt.Close();
            //加密流关闭
            csEncrypt.Close();
            //把内存流转换成字节数组,内存流现在已经是密文了
            byte[] bytesCipher = msEncrypt.ToArray();
            //内存流关闭
            msEncrypt.Close();
            //把密文字节数组转换为字符串,并返回
            return UnicodeEncoding.Unicode.GetString(bytesCipher);
        }
        /// <summary>
        /// DES解密方法
        /// </summary>
        /// <param name="strCipher">密文</param>
        /// <param name="strDESKey">密钥</param>
        /// <param name="strDESIV">向量</param>
        /// <returns>明文</returns>
        public static string DESDecrypt(string strCipher, string strDESKey, string strDESIV)
        {
            //把密钥转换成字节数组
            byte[] bytesDESKey = ASCIIEncoding.ASCII.GetBytes(strDESKey);
            //把向量转换成字节数组
            byte[] bytesDESIV = ASCIIEncoding.ASCII.GetBytes(strDESIV);
            //把密文转换成字节数组
            byte[] bytesCipher = UnicodeEncoding.Unicode.GetBytes(strCipher);
            //声明1个新的DES对象
            DESCryptoServiceProvider desDecrypt = new DESCryptoServiceProvider();
            //开辟一块内存流,并存放密文字节数组
            MemoryStream msDecrypt = new MemoryStream(bytesCipher);
            //把内存流对象包装成解密流对象
            CryptoStream csDecrypt = new CryptoStream(msDecrypt, desDecrypt.CreateDecryptor(bytesDESKey, bytesDESIV), CryptoStreamMode.Read);
            //把解密流对象包装成读出流对象
            StreamReader srDecrypt = new StreamReader(csDecrypt);
            //明文=读出流的读出内容
            string strPlainText = srDecrypt.ReadLine();
            //读出流关闭
            srDecrypt.Close();
            //解密流关闭
            csDecrypt.Close();
            //内存流关闭
            msDecrypt.Close();
            //返回明文
            return strPlainText;
        }
        #endregion
        #region 2、加密向量默认值
        //默认密钥向量
        private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
        /// <summary>
        /// DES加密字符串
        /// </summary>
        /// <param name="encryptString">待加密的字符串</param>
        /// <param name="encryptKey">加密密钥,要求为8位</param>
        /// <returns>加密成功返回加密后的字符串,失败返回源串</returns>
        public static string EncryptDES(string encryptString, string encryptKey)
        {
            try
            {
                byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
                byte[] rgbIV = Keys;
                byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
                DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
                MemoryStream mStream = new MemoryStream();
                CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
                cStream.Write(inputByteArray, 0, inputByteArray.Length);
                cStream.FlushFinalBlock();
                return Convert.ToBase64String(mStream.ToArray());
            }
            catch
            {
                return encryptString;
            }
        }
        /// <summary>
        /// DES解密字符串
        /// </summary>
        /// <param name="decryptString">待解密的字符串</param>
        /// <param name="decryptKey">解密密钥,要求为8位,和加密密钥相同</param>
        /// <returns>解密成功返回解密后的字符串,失败返源串</returns>
        public static string DecryptDES(string decryptString, string decryptKey)
        {
            try
            {
                byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
                byte[] rgbIV = Keys;
                byte[] inputByteArray = Convert.FromBase64String(decryptString);
                DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
                MemoryStream mStream = new MemoryStream();
                CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
                cStream.Write(inputByteArray, 0, inputByteArray.Length);
                cStream.FlushFinalBlock();
                return Encoding.UTF8.GetString(mStream.ToArray());
            }
            catch
            {
                return decryptString;
            }
        }
        #endregion
    }
}
WebApi/GTech.Solution.Api.Common/Common/EncryptHelper.cs
New file
@@ -0,0 +1,183 @@
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace GTech.Solution.Api.Common
{
    public static class EncryptHelper
    {
        #region 创建字符串的MD5哈希值
        /// <summary>
        /// 创建字符串的MD5哈希值
        /// </summary>
        /// <param name="inputString"></param>
        /// <returns>字符串MD5哈希值的十六进制字符串</returns>
        public static string StringToMD5Hash(string inputString)
        {
            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
            byte[] encryptedBytes = md5.ComputeHash(Encoding.ASCII.GetBytes(inputString));
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < encryptedBytes.Length; i++)
            {
                sb.AppendFormat("{0:x2}", encryptedBytes[i]);
            }
            return sb.ToString();
        }
        #endregion
        #region  1、一般可逆加密解密
        /// <summary>
        /// 加密
        /// </summary>
        /// <param name="data">加密数据</param>
        /// <param name="KEY_64">密钥</param>
        /// <param name="IV_64">加密向量</param>
        /// <returns>加密数据结果</returns>
        public static string Encode(string data, string KEY_64, string IV_64)
        {
            byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
            byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
            DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
            int i = cryptoProvider.KeySize;
            MemoryStream ms = new MemoryStream();
            CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey, byIV), CryptoStreamMode.Write);
            StreamWriter sw = new StreamWriter(cst);
            sw.Write(data);
            sw.Flush();
            cst.FlushFinalBlock();
            sw.Flush();
            return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);
        }
        /// <summary>
        /// 解密
        /// </summary>
        /// <param name="data">解密数据</param>
        /// <param name="KEY_64">密钥</param>
        /// <param name="IV_64">加密向量</param>
        /// <returns>解密数据结果</returns>
        public static string Decode(string data, string KEY_64, string IV_64)
        {
            byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
            byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
            byte[] byEnc;
            try
            {
                byEnc = Convert.FromBase64String(data);
            }
            catch
            {
                return null;
            }
            DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
            MemoryStream ms = new MemoryStream(byEnc);
            CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, byIV), CryptoStreamMode.Read);
            StreamReader sr = new StreamReader(cst);
            return sr.ReadToEnd();
        }
        #endregion
        #region 3、DES加密解密
        /// <summary>
        /// DES 加密
        /// </summary>
        /// <param name="str">加密字符串</param>
        /// <param name="encrytKey">密钥,要求八位</param>
        /// <param name="strDESIV">向量</param>
        /// <returns></returns>
        public static string DESEncode(string str, string strDESKey, string strDESIV)
        {
            return DESEncrytion.DESEncrypt(str, strDESKey, strDESIV);
        }
        /// <summary>
        /// DES 解密
        /// </summary>
        /// <param name="str">解密字符串</param>
        /// <param name="encrytKey">密钥,要求八位</param>
        /// <param name="strDESIV">向量</param>
        /// <returns></returns>
        public static string DESDecode(string str, string strDESKey, string strDESIV)
        {
            return DESEncrytion.DESDecrypt(str, strDESKey, strDESIV);
        }
        /// <summary>
        /// DES 加密  加密向量默认
        /// </summary>
        /// <param name="str">加密字符串</param>
        /// <param name="encrytKey">密钥,要求八位</param>
        /// <returns></returns>
        public static string DESEncode(string str, string encrytKey)
        {
            return DESEncrytion.EncryptDES(str, encrytKey);
        }
        /// <summary>
        /// DES 解密  加密向量默认
        /// </summary>
        /// <param name="str">待解密字符串</param>
        /// <param name="encrytKey">解密密钥,要求为8位,和加密密钥相同</param>
        /// <returns></returns>
        public static string DESDecode(string str, string encrytKey)
        {
            return DESEncrytion.DecryptDES(str, encrytKey);
        }
        #endregion
        #region 4、文件加密解密
        /// <summary>
        /// 加密文件
        /// </summary>
        /// <param name="inName">源文件全名称</param>
        /// <param name="outName">加密后文件保存全名称</param>
        /// <param name="desKey">加密密钥</param>
        /// <param name="desIV">加密向量</param>
        private static void EncryptData(String inName, String outName, byte[] desKey, byte[] desIV)
        {
            FileEncrytion.EncryptData(inName, outName, desKey, desIV);
        }
        /// <summary>
        /// 解密文件
        /// </summary>
        /// <param name="inName">源文件全名称</param>
        /// <param name="outName">解密文件全名称</param>
        /// <param name="desKey">解密密钥</param>
        /// <param name="desIV">解密向量</param>
        private static void DecryptData(String inName, String outName, byte[] desKey, byte[] desIV)
        {
            FileEncrytion.DecryptData(inName, outName, desKey, desIV);
        }
        #endregion
        #region 6、对称加密
        /// <summary>
        /// 加密方法
        /// </summary>
        /// <param name="Source">待加密的串</param>
        /// <returns>经过加密的串</returns>
        public static string Encrypto(string Source)
        {
            return SymmetricEncrytion.Encrypto(Source);
        }
        /// <summary>
        /// 解密方法
        /// </summary>
        /// <param name="Source">待解密的串</param>
        /// <returns>经过解密的串</returns>
        public static string Decrypto(string Source)
        {
            return SymmetricEncrytion.Decrypto(Source);
        }
        #endregion
    }
}
WebApi/GTech.Solution.Api.Common/Common/EnumUtil.cs
New file
@@ -0,0 +1,86 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace GTech.Solution.Api.Common
{
    public class EnumUtil
    {
        public static TEnum Parse<TEnum>(int? value)
        {
            try
            {
                Type enumType = typeof(TEnum);
                return (TEnum)Enum.Parse(enumType, value.ToString());
            }
            catch (Exception)
            {
                throw;
            }
        }
        public static TEnum Parse<TEnum>(string str)
        {
            try
            {
                TEnum result = (TEnum)Enum.Parse(typeof(TEnum), str);
                return result;
            }
            catch (Exception)
            {
                throw;
            }
        }
        public static string GetDescription<T>(int? value)
        {
            var enumerationValue = Parse<T>(value);
            if (enumerationValue == null)
                return string.Empty;
            Type type = enumerationValue.GetType();
            MemberInfo[] memberInfo = type.GetMember(enumerationValue.ToString());
            object[] attrs = memberInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);
            if (attrs != null && attrs.Length > 0)
            {
                return ((DescriptionAttribute)attrs[0]).Description;
            }
            else
            {
                return enumerationValue.ToString();
            }
        }
        public static TDescriptionType GetDescription<TDescriptionType>(Enum enumerationValue)
        {
            Type type = enumerationValue.GetType();
            MemberInfo[] memberInfo = type.GetMember(enumerationValue.ToString());
            object[] attrs = memberInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);
            if (attrs != null && attrs.Length > 0)
            {
                var result = ((DescriptionAttribute)attrs[0]).Description;
                return (TDescriptionType)Convert.ChangeType(result, typeof(TDescriptionType));
            }
            else
            {
                return (TDescriptionType)Convert.ChangeType(enumerationValue, typeof(TDescriptionType));
            }
        }
        public static string GetEnumString<TEnum>(int? value)
        {
            if (!value.HasValue)
                return string.Empty;
            Type enumType = typeof(TEnum);
            return Enum.Parse(enumType, value.ToString()).ToString();
        }
    }
}
WebApi/GTech.Solution.Api.Common/Common/FileEncrytion.cs
New file
@@ -0,0 +1,84 @@
using System;
using System.IO;
using System.Security.Cryptography;
namespace GTech.Solution.Api.Common
{
    /// <summary>
    /// 文件加密
    /// </summary>
    public  static class FileEncrytion
    {
        /// <summary>
        /// 加密文件
        /// </summary>
        /// <param name="inName"></param>
        /// <param name="outName"></param>
        /// <param name="desKey"></param>
        /// <param name="desIV"></param>
        public static void EncryptData(String inName, String outName, byte[] desKey, byte[] desIV)
        {
            //Create the file streams to handle the input and output files.
            FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);
            FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);
            fout.SetLength(0);
            //Create variables to help with read and write.
            byte[] bin = new byte[100]; //This is intermediate storage for the encryption.
            long rdlen = 0;              //This is the total number of bytes written.
            long totlen = fin.Length;    //This is the total length of the input file.
            int len;                     //This is the number of bytes to be written at a time.
            DES des = new DESCryptoServiceProvider();
            CryptoStream encStream = new CryptoStream(fout, des.CreateEncryptor(desKey, desIV), CryptoStreamMode.Write);
            //Read from the input file, then encrypt and write to the output file.
            while (rdlen < totlen)
            {
                len = fin.Read(bin, 0, 100);
                encStream.Write(bin, 0, len);
                rdlen = rdlen + len;
            }
            encStream.Close();
            fout.Close();
            fin.Close();
        }
        /// <summary>
        /// 解密文件
        /// </summary>
        /// <param name="inName"></param>
        /// <param name="outName"></param>
        /// <param name="desKey"></param>
        /// <param name="desIV"></param>
        public static void DecryptData(String inName, String outName, byte[] desKey, byte[] desIV)
        {
            //Create the file streams to handle the input and output files.
            FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);
            FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);
            fout.SetLength(0);
            //Create variables to help with read and write.
            byte[] bin = new byte[100]; //This is intermediate storage for the encryption.
            long rdlen = 0;              //This is the total number of bytes written.
            long totlen = fin.Length;    //This is the total length of the input file.
            int len;                     //This is the number of bytes to be written at a time.
            DES des = new DESCryptoServiceProvider();
            CryptoStream encStream = new CryptoStream(fout, des.CreateDecryptor(desKey, desIV), CryptoStreamMode.Write);
            //Read from the input file, then encrypt and write to the output file.
            while (rdlen < totlen)
            {
                len = fin.Read(bin, 0, 100);
                encStream.Write(bin, 0, len);
                rdlen = rdlen + len;
            }
            encStream.Close();
            fout.Close();
            fin.Close();
        }
    }
}
WebApi/GTech.Solution.Api.Common/Common/JsonNetExt.cs
New file
@@ -0,0 +1,231 @@
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System;
using System.Data;
namespace GTech.Solution.Api.Common
{
    #region 一.忽略某些属性
    /// 一.忽略某些属性
    /// OptIn 默认情况下, 所有的成员不会被序列化, 类中的成员只有标有特性JsonProperty的才会被序列化, 当类的成员很多, 但客户端仅仅需要一部分数据时, 很有用
    /// [JsonObject(MemberSerialization.OptIn)]
    /// public class Person
    /// {
    ///     public int Age { get; set; }
    ///     [JsonProperty]
    ///     public string Name { get; set; }
    /// }
    /// Person p = new Person { Age = 10, Name = "Gary"};
    /// result: {"Name":"Gary"}
    ///
    /// OptOut 默认值, 类中所有公有成员会被序列化, 如果不想被序列化, 可以用特性JsonIgnore
    /// [JsonObject(MemberSerialization.OptOut)]
    /// public class Person
    /// {
    ///     public int Age { get; set; }
    ///     [JsonIgnore]
    ///     public string Name { get; set; }
    /// }
    /// Person p = new Person { Age = 10, Name = "Gary"};
    /// result: {"Age":"10"}
    #endregion
    #region 二.默认值处理
    /// 二.默认值处理
    ///  序列化时想忽略默认值属性可以通过JsonSerializerSettings.DefaultValueHandling来确定,该值为枚举值
    /// DefaultValueHandling.Ignore 序列化和反序列化时, 忽略默认值
    /// DefaultValueHandling.Include 序列化和反序列化时, 包含默认值
    /// [JsonObject(MemberSerialization.OptIn)]
    /// public class Person
    /// {
    ///     [DefaultValue(10)]
    ///     public int Age { get; set; }
    ///     [JsonProperty]
    ///     public string Name { get; set; }
    /// }
    /// Person p = new Person { Age = 10, Name = "Gary", Sex = "Man", IsMarry = false, Birthday = new DateTime(1991, 1, 2) };
    /// result: {"Name":"Gary","Sex":"Man","Birthday":"1991-01-02T00:00:00"}
    #endregion
    #region 三.空值的处理
    /// 三.空值的处理
    ///  序列化时需要忽略值为NULL的属性,可以通过JsonSerializerSettings.NullValueHandling来确定,
    ///  另外通过JsonSerializerSettings设置属性是对序列化过程中所有属性生效的,
    ///  想单独对某一个属性生效可以使用JsonProperty,下面将分别展示两个方式
    /// [JsonObject(MemberSerialization.OptIn)]
    /// public class Person
    /// {
    ///     [JsonProperty(NullValueHandling=NullValueHandling.Ignore)] //Must set this attibute, otherwise throw exception.
    ///     public Room room { get; set; }
    ///     [JsonProperty]
    ///     public int Age { get; set; }
    ///     [JsonProperty]
    ///     public string Name { get; set; }
    /// }
    /// Person p = new Person { room = NULL,Age = 10, Name = "Gary"};
    /// result: {"Age":"10","Name":"Gary"}
    #endregion
    #region 四.支持非公共成员
    /// 四.支持非公共成员
    ///  序列化时默认都是处理公共成员,如果需要处理非公共成员,就要在该成员上加特性"JsonProperty"
    /// [JsonObject(MemberSerialization.OptIn)]
    /// public class Person
    /// {
    ///     [JsonProperty]
    ///     public int Age { get; set; }
    ///     [JsonProperty]
    ///     public string Name { get; set; }
    ///     [JsonProperty]
    ///     private int Height { get; set; }
    /// }
    /// Person p = new Person {Age = 10, Name = "Gary",Height = "100.1"};
    /// result: {"Age":"10","Name":"Gary","Height":"100.1"}
    #endregion
    #region 五.日期处理
    /// 五.日期处理
    ///  对于Dateime类型日期的格式化就比较麻烦了,系统自带的会格式化成iso日期标准,
    ///  但是实际使用过程中大多数使用的可能是yyyy-MM-dd 或者yyyy-MM-dd HH:mm:ss两种格式的日期,
    ///  解决办法是可以将DateTime类型改成string类型自己格式化好,然后在序列化。
    ///  如果不想修改代码,可以采用下面方案实现。
    ///  Json.Net提供了IsoDateTimeConverter日期转换这个类,可以通过JsnConverter实现相应的日期转换
    ///     [JsonConverter(typeof(IsoDateTimeConverter))]
    ///     public DateTime Birthday { get; set; }
    ///  但是IsoDateTimeConverter日期格式不是我们想要的,我们可以继承该类实现自己的日期
    /// public class ChinaDateTimeConverter : DateTimeConverterBase
    /// {
    ///     private static IsoDateTimeConverter dtConverter = new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd" };
    ///     public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    ///     {
    ///         return dtConverter.ReadJson(reader, objectType, existingValue, serializer);
    ///     }
    ///     public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    ///     {
    ///         dtConverter.WriteJson(writer, value, serializer);
    ///     }
    /// }
    ///     [JsonConverter(typeof(ChinaDateTimeConverter))]
    ///     public DateTime Birthday { get; set; }
    ///
    /// [JsonObject(MemberSerialization.OptIn)]
    /// public class Person
    /// {
    ///     [JsonProperty]
    ///     public int Age { get; set; }
    ///     [JsonProperty]
    ///     public string Name { get; set; }
    ///     [JsonProperty]
    ///     private int Height { get; set; }
    ///     [JsonConverter(typeof(ChinaDateTimeConverter))]
    ///     public DateTime Birthday { get; set; }
    /// }
    /// Person p = new Person {Age = 10, Name = "Gary",Height = "100.1", Birthday = Birthday = new DateTime(1991, 1, 2)};
    /// result: {"Age":"10","Name":"Gary","Height":"100.1","Birthday":"1991-01-02-00-00-00"}
    #endregion
    public class JsonNetExt
    {
        #region Serialization
        public static string DataTableToJson(DataTable dt)
        {
            return JsonConvert.SerializeObject(dt);
        }
        public static string EntityToJson<T>(T Entity)
        {
            return JsonConvert.SerializeObject(Entity);
        }
        public static string EntityToJsonIgnoreDefaultValue<T>(T Entity)
        {
            JsonSerializerSettings jsetting = new JsonSerializerSettings();
            jsetting.DefaultValueHandling = DefaultValueHandling.Ignore;
            return JsonConvert.SerializeObject(Entity, Formatting.Indented, jsetting);
        }
        public static string EntityToJsonIgnoreNULL<T>(T Entity)
        {
            JsonSerializerSettings jsetting = new JsonSerializerSettings();
            jsetting.NullValueHandling = NullValueHandling.Ignore;
            return JsonConvert.SerializeObject(Entity, Formatting.Indented, jsetting);
        }
        public static string EntityToJsonIgnoreNULLAndDefaultValue<T>(T Entity)
        {
            JsonSerializerSettings jsetting = new JsonSerializerSettings();
            jsetting.NullValueHandling = NullValueHandling.Ignore;
            jsetting.DefaultValueHandling = DefaultValueHandling.Ignore;
            return JsonConvert.SerializeObject(Entity, Formatting.Indented, jsetting);
        }
        #endregion
        #region Deserialization
        public static DataTable JsonToDataTable(string dataTableJsonString)
        {
            return JsonConvert.DeserializeObject<DataTable>(dataTableJsonString);
        }
        public static T JsonToEntity<T>(string entityJsonString)
        {
            return JsonConvert.DeserializeObject<T>(entityJsonString);
        }
        #endregion
    }
    /// <summary>
    /// User defined time converter for convert to json string
    /// </summary>
    public class ChinaDateTimeConverter : DateTimeConverterBase
    {
        private static IsoDateTimeConverter dtConverter = new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd-hh-mm-ss" };
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            return dtConverter.ReadJson(reader, objectType, existingValue, serializer);
        }
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            dtConverter.WriteJson(writer, value, serializer);
        }
    }
    /// <summary>
    /// MemberSerialization.OptOut: OptOut 默认值, 类中所有公有成员会被序列化, 如果不想被序列化, 可以用特性JsonIgnore
    /// MemberSerialization.OptOut: OptIn 默认情况下, 所有的成员不会被序列化, 类中的成员只有标有特性JsonProperty的才会被序列化, 当类的成员很多, 但客户端仅仅需要一部分数据时, 很有用
    /// </summary>
    [JsonObject(MemberSerialization.OptIn)]
    public class JsonNetExtDemoPerson
    {
        /// <summary>
        /// JsonProperty(NullValueHandling = NullValueHandling.Ignore): ignore null value properties
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public object Data { get; set; }
        /// <summary>
        /// JsonIgnore: When converting ,Ignore this property
        /// </summary>
        [JsonIgnore]
        public int Age { get; set; }
        /// <summary>
        /// JsonProperty: When converting via MemberSerialization.OptIn, if include this property, must use this attribute.
        /// </summary>
        [JsonProperty]
        public string Name { get; set; }
        /// <summary>
        /// JsonProperty: if need private properties, must add this attribute
        /// </summary>
        [JsonProperty]
        private int Height { get; set; }
        /// <summary>
        /// ChinaDateTimeConverter: Use time converter, set time format by user.
        /// </summary>
        [JsonConverter(typeof(ChinaDateTimeConverter))]
        public DateTime Birthday { get; set; }
        /// <summary>
        /// StringEnumConverter: make "Type":"1" to "Type":"Mail"
        /// </summary>
        [JsonConverter(typeof(StringEnumConverter))]
        public JsonNetExtDemoNotifyType Type { get; set; }
    }
    public enum JsonNetExtDemoNotifyType
    {
        Mail = 0,
        SMS = 1
    }
}
WebApi/GTech.Solution.Api.Common/Common/SymmetricEncrytion.cs
New file
@@ -0,0 +1,84 @@
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace GTech.Solution.Api.Common
{
    /// <summary>
    /// 对称加密
    /// </summary>
    public static  class SymmetricEncrytion
    {
        private static SymmetricAlgorithm mobjCryptoService= new RijndaelManaged();
        private static string Key = "Guz(%&hj7x89H$yuBI0456FtmaT5&fvHUFCy76*h%(HilJ$lhj!y6&(*jkP87jH7";
        /// <summary>
        /// 获得密钥
        /// </summary>
        /// <returns>密钥</returns>
        public static byte[] GetLegalKey()
        {
            string sTemp = Key;
            mobjCryptoService.GenerateKey();
            byte[] bytTemp = mobjCryptoService.Key;
            int KeyLength = bytTemp.Length;
            if (sTemp.Length > KeyLength)
                sTemp = sTemp.Substring(0, KeyLength);
            else if (sTemp.Length < KeyLength)
                sTemp = sTemp.PadRight(KeyLength, ' ');
            return ASCIIEncoding.ASCII.GetBytes(sTemp);
        }
        /// <summary>
        /// 获得初始向量IV
        /// </summary>
        /// <returns>初试向量IV</returns>
        public static byte[] GetLegalIV()
        {
            string sTemp = "E4ghj*Ghg7!rNIfb&95GUY86GfghUb#er57HBh(u%g6HJ($jhWk7&!hg4ui%$hjk";
            mobjCryptoService.GenerateIV();
            byte[] bytTemp = mobjCryptoService.IV;
            int IVLength = bytTemp.Length;
            if (sTemp.Length > IVLength)
                sTemp = sTemp.Substring(0, IVLength);
            else if (sTemp.Length < IVLength)
                sTemp = sTemp.PadRight(IVLength, ' ');
            return ASCIIEncoding.ASCII.GetBytes(sTemp);
        }
        /// <summary>
        /// 加密方法
        /// </summary>
        /// <param name="Source">待加密的串</param>
        /// <returns>经过加密的串</returns>
        public static string Encrypto(string Source)
        {
            byte[] bytIn = UTF8Encoding.UTF8.GetBytes(Source);
            MemoryStream ms = new MemoryStream();
            mobjCryptoService.Key = GetLegalKey();
            mobjCryptoService.IV = GetLegalIV();
            ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor();
            CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);
            cs.Write(bytIn, 0, bytIn.Length);
            cs.FlushFinalBlock();
            ms.Close();
            byte[] bytOut = ms.ToArray();
            return Convert.ToBase64String(bytOut);
        }
        /// <summary>
        /// 解密方法
        /// </summary>
        /// <param name="Source">待解密的串</param>
        /// <returns>经过解密的串</returns>
        public static string Decrypto(string Source)
        {
            byte[] bytIn = Convert.FromBase64String(Source);
            MemoryStream ms = new MemoryStream(bytIn, 0, bytIn.Length);
            mobjCryptoService.Key = GetLegalKey();
            mobjCryptoService.IV = GetLegalIV();
            ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor();
            CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);
            StreamReader sr = new StreamReader(cs);
            return sr.ReadToEnd();
        }
    }
}
WebApi/GTech.Solution.Api.Common/Common/TLSVPConsole.cs
New file
@@ -0,0 +1,69 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GTech.Solution.Api.Common
{
    public class TLSVPConsole
    {
        public static void Prompt(string message)
        {
            Console.ResetColor();
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("[ Info  ] " + message);
            TLSVPFileLog.WriteIntoLogFile(message);
        }
        public static void Info(string message)
        {
            Console.ResetColor();
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("[ Info  ] " + message);
            TLSVPFileLog.WriteIntoLogFile(message);
        }
        public static void Debug(string message)
        {
            Console.ResetColor();
            Console.ForegroundColor = ConsoleColor.Blue;
            Console.WriteLine("[ Debug ] " + message);
            TLSVPFileLog.WriteIntoLogFile(message);
        }
        public static void Warn(string message)
        {
            Console.ResetColor();
            Console.ForegroundColor = ConsoleColor.DarkYellow;
            Console.WriteLine("[ Warn  ] " + message);
            TLSVPFileLog.WriteIntoLogFile(message);
        }
        public static void Error(string message)
        {
            Console.ResetColor();
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("[ Error ] " + message);
            TLSVPFileLog.WriteIntoLogFile(message);
        }
        public static void Fatal(string message)
        {
            Console.ResetColor();
            Console.ForegroundColor = ConsoleColor.DarkRed;
            Console.WriteLine("[ Fatal ] " + message);
            TLSVPFileLog.WriteIntoLogFile(message);
        }
        public static void Exception(Exception message)
        {
            Console.ResetColor();
            Console.ForegroundColor = ConsoleColor.DarkRed;
            Console.WriteLine("[ Fatal ] " + message);
            TLSVPFileLog.WriteIntoLogFile(message.Message);
        }
    }
}
WebApi/GTech.Solution.Api.Common/Common/TLSVPFileLog.cs
New file
@@ -0,0 +1,49 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GTech.Solution.Api.Common
{
    public class TLSVPFileLog
    {
        public static void WriteIntoLogFile(string message)
        {
            string folder = AppDomain.CurrentDomain.BaseDirectory + string.Format(@"DebugLog\\{0}", DateTime.Now.ToString("yyyyMMdd"));
            if (!Directory.Exists(folder))
            {
                Directory.CreateDirectory(folder);
            }
            try
            {
                //File.WriteAllText(string.Format("{0}\\{1}.txt", folder, DateTime.Now.ToString("yyyyMMdd")), "test", Encoding.UTF8);
                using (StreamWriter file = new StreamWriter(string.Format("{0}\\{1}.txt", folder, DateTime.Now.ToString("yyyyMMddhhmmss")), true))
                {
                    file.WriteLine(DateTime.Now.ToString("[yyyyMMddhhmmss]") + message);
                    file.Close();
                }
            }
            catch (Exception)
            {
            }
        }
        public static void ClearLogFile(string path)
        {
            DirectoryInfo dir = new DirectoryInfo(path);
            if (dir.Exists)
            {
                DirectoryInfo[] childs = dir.GetDirectories();
                foreach (DirectoryInfo child in childs)
                {
                    child.Delete(true);
                }
                dir.Delete(true);
            }
        }
    }
}
WebApi/GTech.Solution.Api.Common/Common/TokenGenerator.cs
New file
@@ -0,0 +1,62 @@
using System;
using System.Text;
using JWT;
using JWT.Serializers;
using JWT.Algorithms;
using JWT.Exceptions;
using GTech.Solution.Api.Domain.Model.SystemSettings;
namespace GTech.Solution.Api.Common.Common
{
    public static class TokenGenerator
    {
        private static string secret = "yokogawa";
        public static string GetToken(Userbasic u)
        {
            JWT.Algorithms.IJwtAlgorithm Algorithm = new JWT.Algorithms.HMACSHA256Algorithm();
            JWT.IJsonSerializer json = new JsonNetSerializer();
            JWT.IBase64UrlEncoder Base64 = new JWT.JwtBase64UrlEncoder();
            JwtEncoder en = new JwtEncoder(Algorithm, json, Base64);
            byte[] keyBytes = Encoding.UTF8.GetBytes(secret);
            return en.Encode(u, keyBytes);
        }
        public static Userbasic GetUserbasic(string token)
        {
            IJsonSerializer js = new JsonNetSerializer();
            JWT.IBase64UrlEncoder Base64 = new JWT.JwtBase64UrlEncoder();
            JwtDecoder en = new JwtDecoder(js, Base64);
            return en.DecodeToObject<Userbasic>(token);
        }
        public static string ValidateJwtToken(string token)
        {
            try
            {
                IJsonSerializer serializer = new JsonNetSerializer();
                IDateTimeProvider provider = new UtcDateTimeProvider();
                IJwtValidator validator = new JwtValidator(serializer, provider);
                IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
                IJwtAlgorithm alg = new HMACSHA256Algorithm();
                IJwtDecoder decoder = new JwtDecoder(serializer, validator, urlEncoder, alg);
                var json = decoder.Decode(token, secret, true);
                //校验通过,返回解密后的字符串
                return json;
            }
            catch (TokenExpiredException)
            {
                throw new Exception("Session is expired, access is denied!");
            }
            catch (SignatureVerificationException)
            {
                throw new Exception("Signature verification has error, access is denied!");
            }
            catch (Exception)
            {
                throw new Exception("Unauthorized user, Access is denied!");
            }
        }
    }
}
WebApi/GTech.Solution.Api.Common/GTech.Solution.Api.Common.csproj
New file
@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{8F7DFF8F-296B-457F-A667-941EE23ABF0B}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>GTech.Solution.Api.Common</RootNamespace>
    <AssemblyName>GTech.Solution.Api.Common</AssemblyName>
    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="JWT, Version=7.0.0.0, Culture=neutral, PublicKeyToken=6f98bca0f40f2ecf, processorArchitecture=MSIL">
      <HintPath>..\packages\JWT.7.3.0\lib\net46\JWT.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
      <HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Configuration" />
    <Reference Include="System.Core" />
    <Reference Include="System.Runtime.Serialization" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Net.Http" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Attibute\KeyAttribute.cs" />
    <Compile Include="Attibute\MaxLengthAttribute.cs" />
    <Compile Include="Common\ADODOTNETSqlHelper.cs" />
    <Compile Include="Common\ConvertUtil.cs" />
    <Compile Include="Common\DESEncrytion.cs" />
    <Compile Include="Common\EncryptHelper.cs" />
    <Compile Include="Common\EnumUtil.cs" />
    <Compile Include="Common\FileEncrytion.cs" />
    <Compile Include="Common\JsonNetExt.cs" />
    <Compile Include="Common\SymmetricEncrytion.cs" />
    <Compile Include="Common\TLSVPConsole.cs" />
    <Compile Include="Common\TLSVPFileLog.cs" />
    <Compile Include="Common\TokenGenerator.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ItemGroup>
    <None Include="packages.config" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\GTech.Solution.Api.Domain\GTech.Solution.Api.Domain.csproj">
      <Project>{4A2930DE-7BF4-4368-B6AD-B74B9043DA7D}</Project>
      <Name>GTech.Solution.Api.Domain</Name>
    </ProjectReference>
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
</Project>
WebApi/GTech.Solution.Api.Common/GTech.Solution.Api.Common.csproj.user
New file
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ProjectView>ProjectFiles</ProjectView>
  </PropertyGroup>
</Project>
WebApi/GTech.Solution.Api.Common/Properties/AssemblyInfo.cs
New file
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("GTech.Solution.Api.Common")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("GTech.Solution.Api.Common")]
[assembly: AssemblyCopyright("Copyright ©  2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components.  If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("8f7dff8f-296b-457f-a667-941ee23abf0b")]
// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version
//      Build Number
//      Revision
//
// 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("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
WebApi/GTech.Solution.Api.Common/bin/Debug/Yokogawa.TLSVP.Api.Common.pdb
Binary files differ
WebApi/GTech.Solution.Api.Common/bin/Debug/Yokogawa.TLSVP.Api.Domain.pdb
Binary files differ
WebApi/GTech.Solution.Api.Common/bin/Release/GTech.Solution.Api.Common.pdb
Binary files differ
WebApi/GTech.Solution.Api.Common/bin/Release/GTech.Solution.Api.Domain.pdb
Binary files differ
WebApi/GTech.Solution.Api.Common/bin/Release/JWT.pdb
Binary files differ
WebApi/GTech.Solution.Api.Common/bin/Release/JWT.xml
New file
@@ -0,0 +1,1218 @@
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>JWT</name>
    </assembly>
    <members>
        <member name="T:JWT.Algorithms.DelegateAlgorithmFactory">
            <summary>
            Implements <see href="IAlgorithmFactory" /> by returning the supplied <see href="IJwtAlgorithm" /> while ignoring parameters.
            </summary>
        </member>
        <member name="M:JWT.Algorithms.DelegateAlgorithmFactory.#ctor(System.Func{JWT.Algorithms.IJwtAlgorithm})">
            <summary>
            Creates an instance of <see cref="T:JWT.Algorithms.DelegateAlgorithmFactory" /> with supplied delegate to an algorithm.
            </summary>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.Algorithms.DelegateAlgorithmFactory.#ctor(JWT.Algorithms.IJwtAlgorithm)">
            <summary>
            Creates an instance of <see cref="T:JWT.Algorithms.DelegateAlgorithmFactory" /> with supplied algorithm.
            </summary>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.Algorithms.DelegateAlgorithmFactory.Create(JWT.JwtDecoderContext)">
            <inheritdoc />
        </member>
        <member name="T:JWT.Algorithms.HMACSHA256Algorithm">
            <summary>
            HMAC using SHA-256
            </summary>
        </member>
        <member name="M:JWT.Algorithms.HMACSHA256Algorithm.Sign(System.Byte[],System.Byte[])">
            <inheritdoc />
        </member>
        <member name="P:JWT.Algorithms.HMACSHA256Algorithm.Name">
            <inheritdoc />
        </member>
        <member name="T:JWT.Algorithms.HMACSHA384Algorithm">
            <summary>
            HMAC using SHA-384
            </summary>
        </member>
        <member name="M:JWT.Algorithms.HMACSHA384Algorithm.Sign(System.Byte[],System.Byte[])">
            <inheritdoc />
        </member>
        <member name="P:JWT.Algorithms.HMACSHA384Algorithm.Name">
            <inheritdoc />
        </member>
        <member name="T:JWT.Algorithms.HMACSHA512Algorithm">
            <summary>
            HMAC using SHA-512
            </summary>
        </member>
        <member name="M:JWT.Algorithms.HMACSHA512Algorithm.Sign(System.Byte[],System.Byte[])">
            <inheritdoc />
        </member>
        <member name="P:JWT.Algorithms.HMACSHA512Algorithm.Name">
            <inheritdoc />
        </member>
        <member name="T:JWT.Algorithms.HMACSHAAlgorithmFactory">
            <inheritdoc />
        </member>
        <member name="M:JWT.Algorithms.HMACSHAAlgorithmFactory.Create(JWT.JwtDecoderContext)">
            <inheritdoc />
        </member>
        <member name="T:JWT.Algorithms.IAlgorithmFactory">
            <summary>
            Provides IJwtAlgorithms.
            </summary>
        </member>
        <member name="M:JWT.Algorithms.IAlgorithmFactory.Create(JWT.JwtDecoderContext)">
            <summary>
            Creates an AlgorithmFactory using the provided algorithm enum.
            </summary>
            <param name="context">The captured context during validation of JWT inside <see cref="T:JWT.JwtDecoder"/></param>
        </member>
        <member name="T:JWT.Algorithms.IAsymmetricAlgorithm">
            <summary>
            Represents an asymmetric algorithm to generate or validate JWT signature.
            </summary>
        </member>
        <member name="M:JWT.Algorithms.IAsymmetricAlgorithm.Verify(System.Byte[],System.Byte[])">
            <summary>
            Verifies provided byte array with provided signature.
            </summary>
            <param name="bytesToSign">The data to verify</param>
            <param name="signature">The signature to verify with</param>
        </member>
        <member name="T:JWT.Algorithms.IJwtAlgorithm">
            <summary>
            Represents an algorithm to generate JWT signature.
            </summary>
        </member>
        <member name="M:JWT.Algorithms.IJwtAlgorithm.Sign(System.Byte[],System.Byte[])">
            <summary>
            Signs provided byte array with provided key.
            </summary>
            <param name="key">The key used to sign the data</param>
            <param name="bytesToSign">The data to sign</param>
        </member>
        <member name="P:JWT.Algorithms.IJwtAlgorithm.Name">
            <summary>
            Gets algorithm name.
            </summary>
        </member>
        <member name="T:JWT.Algorithms.JwtAlgorithmExtensions">
             <summary>
             Extension methods for <seealso cref="T:JWT.Algorithms.IJwtAlgorithm" />
            </summary>
        </member>
        <member name="M:JWT.Algorithms.JwtAlgorithmExtensions.IsAsymmetric(JWT.Algorithms.IJwtAlgorithm)">
            <summary>
            Returns whether or not the algorithm is asymmetric.
            </summary>
            <param name="alg">The algorithm instance.</param>
        </member>
        <member name="T:JWT.Algorithms.JwtAlgorithmName">
            <summary>
            Enum representing the various Jwt Hash Algorithms.
            </summary>
        </member>
        <member name="F:JWT.Algorithms.JwtAlgorithmName.HS256">
            <summary>
            HMAC using SHA-256
            </summary>
        </member>
        <member name="F:JWT.Algorithms.JwtAlgorithmName.HS384">
            <summary>
            HMAC using SHA-384
            </summary>
        </member>
        <member name="F:JWT.Algorithms.JwtAlgorithmName.HS512">
            <summary>
            HMAC using SHA-512
            </summary>
        </member>
        <member name="F:JWT.Algorithms.JwtAlgorithmName.RS256">
            <summary>
            RSASSA-PKCS1-v1_5 using SHA-256
            </summary>
        </member>
        <member name="T:JWT.Algorithms.RS256Algorithm">
            <summary>
            RSASSA-PKCS1-v1_5 using SHA-256
            </summary>
        </member>
        <member name="M:JWT.Algorithms.RS256Algorithm.#ctor(System.Security.Cryptography.RSA,System.Security.Cryptography.RSA)">
            <summary>
            Creates an instance of <see cref="T:JWT.Algorithms.RS256Algorithm" /> using the provided pair of public and private keys.
            </summary>
            <param name="publicKey">The public key for verifying the data.</param>
            <param name="privateKey">The private key for signing the data.</param>
        </member>
        <member name="M:JWT.Algorithms.RS256Algorithm.#ctor(System.Security.Cryptography.RSA)">
            <summary>
            Creates an instance of <see cref="T:JWT.Algorithms.RS256Algorithm" /> using the provided public key only.
            </summary>
            <remarks>
            An instance created using this constructor can only be used for verifying the data, not for signing it.
            </remarks>
            <param name="publicKey">The public key for verifying the data.</param>
        </member>
        <member name="M:JWT.Algorithms.RS256Algorithm.#ctor(System.Security.Cryptography.X509Certificates.X509Certificate2)">
            <summary>
            Creates an instance using the provided certificate.
            </summary>
            <param name="cert">The certificate having a public key and an optional private key.</param>
        </member>
        <member name="P:JWT.Algorithms.RS256Algorithm.Name">
            <inheritdoc />
        </member>
        <member name="M:JWT.Algorithms.RS256Algorithm.Sign(System.Byte[],System.Byte[])">
            <inheritdoc />
        </member>
        <member name="M:JWT.Algorithms.RS256Algorithm.Sign(System.Byte[])">
            <summary>
            Signs the provided bytes.
            </summary>
            <param name="bytesToSign">The bytes to sign.</param>
            <returns>The signed bytes.</returns>
        </member>
        <member name="M:JWT.Algorithms.RS256Algorithm.Verify(System.Byte[],System.Byte[])">
            <inheritdoc />
        </member>
        <member name="T:JWT.Algorithms.RSAlgorithmFactory">
            <inheritdoc />
        </member>
        <member name="M:JWT.Algorithms.RSAlgorithmFactory.#ctor(System.Func{System.Security.Cryptography.X509Certificates.X509Certificate2})">
            <summary>
            Creates an instance of the <see cref="T:JWT.Algorithms.RSAlgorithmFactory" /> class using the provided <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2" />.
            </summary>
            <param name="certFactory">Func that returns <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2" /> which will be used to instantiate <see cref="T:JWT.Algorithms.RS256Algorithm" /></param>
        </member>
        <member name="M:JWT.Algorithms.RSAlgorithmFactory.#ctor(System.Security.Cryptography.RSA)">
            <summary>
            Creates an instance of <see cref="T:JWT.Algorithms.RSAlgorithmFactory"/> using the provided public key only.
            </summary>
            <param name="publicKey">The public key for verifying the data.</param>
        </member>
        <member name="M:JWT.Algorithms.RSAlgorithmFactory.#ctor(System.Security.Cryptography.RSA,System.Security.Cryptography.RSA)">
            <summary>
            Creates an instance of <see cref="T:JWT.Algorithms.RSAlgorithmFactory"/> using the provided pair of public and private keys.
            </summary>
            <param name="publicKey">The public key for verifying the data.</param>
            <param name="privateKey">The private key for signing the data.</param>
        </member>
        <member name="T:JWT.Builder.ClaimName">
            <summary>
            All public claims of a JWT specified by IANA, see https://www.iana.org/assignments/jwt/jwt.xhtml
            </summary>
        </member>
        <member name="M:JWT.Builder.EnumExtensions.GetHeaderName(JWT.Builder.HeaderName)">
            <summary>
            Gets the string representation of a well-known header name enum
            </summary>
        </member>
        <member name="M:JWT.Builder.EnumExtensions.GetPublicClaimName(JWT.Builder.ClaimName)">
            <summary>
            Gets the string representation of a well-known claim name enum
            </summary>
        </member>
        <member name="M:JWT.Builder.EnumExtensions.GetDescription``1(``0)">
            <summary>
            Gets the value of the <see cref="T:System.ComponentModel.DescriptionAttribute" /> from the object.
            </summary>
        </member>
        <member name="T:JWT.Builder.HeaderName">
            <summary>
            All predefined parameter names specified by RFC 7515, see https://tools.ietf.org/html/rfc7515
            </summary>
        </member>
        <member name="T:JWT.Builder.JwtBuilder">
            <summary>
            Encode and decode JWT with Fluent API.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.AddHeader(JWT.Builder.HeaderName,System.Object)">
            <summary>
            Add header to the JWT.
            </summary>
            <param name="name">Well-known header name</param>
            <param name="value">The value you want give to the header</param>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.AddClaim(System.String,System.Object)">
            <summary>
            Adds claim to the JWT.
            </summary>
            <param name="name">Claim name</param>
            <param name="value">Claim value</param>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithSerializer(JWT.IJsonSerializer)">
            <summary>
            Sets JWT serializer.
            </summary>
            <remarks>
            If not set then default <see cref="T:JWT.Serializers.JsonNetSerializer" /> will be used.
            </remarks>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithDateTimeProvider(JWT.IDateTimeProvider)">
            <summary>
            Sets custom datetime provider.
            </summary>
            <remarks>
            If not set then default <see cref="T:JWT.UtcDateTimeProvider" /> will be used.
            </remarks>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithEncoder(JWT.IJwtEncoder)">
            <summary>
            Sets JWT encoder.
            </summary>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithDecoder(JWT.IJwtDecoder)">
            <summary>
            Sets JWT decoder.
            </summary>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithValidator(JWT.IJwtValidator)">
            <summary>
            Sets JWT validator.
            </summary>
            <remarks>
            Required to decode with verification.
            </remarks>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithUrlEncoder(JWT.IBase64UrlEncoder)">
            <summary>
            Sets custom URL encoder.
            </summary>
            <remarks>
            If not set then default <see cref="T:JWT.JwtBase64UrlEncoder" /> will be used.
            </remarks>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithAlgorithmFactory(JWT.Algorithms.IAlgorithmFactory)">
            <summary>
            Sets JWT algorithm factory.
            </summary>
            <returns>Current builder instance.</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithAlgorithm(JWT.Algorithms.IJwtAlgorithm)">
            <summary>
            Sets JWT algorithm.
            </summary>
            <returns>Current builder instance.</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithSecret(System.String[])">
            <summary>
            Sets certificate secret.
            </summary>
            <remarks>
            Required to create new token that uses an symmetric algorithm such as <seealso cref="T:JWT.Algorithms.RS256Algorithm" />
            </remarks>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithSecret(System.Byte[][])">
            <summary>
            Sets certificate secret.
            </summary>
            <remarks>
            Required to create new token that uses an symmetric algorithm such as <seealso cref="T:JWT.Algorithms.RS256Algorithm" />
            </remarks>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.MustVerifySignature">
            <summary>
            Instructs to do verify the JWT signature.
            </summary>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.DoNotVerifySignature">
            <summary>
            Instructs to do not verify the JWT signature.
            </summary>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithVerifySignature(System.Boolean)">
            <summary>
            Instructs whether to verify the JWT signature.
            </summary>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.Encode">
            <summary>
            Encodes a token using the supplied dependencies.
            </summary>
            <returns>The generated JWT</returns>
            <exception cref="T:System.InvalidOperationException">Thrown if either algorithm, serializer, encoder or secret is null</exception>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.Decode(System.String)">
            <summary>
            Decodes a token using the supplied dependencies.
            </summary>
            <param name="token">The JWT</param>
            <returns>The JSON payload</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.DecodeHeader(System.String)">
            <summary>
            Given a JWT, decodes it and return the header.
            </summary>
            <param name="token">The JWT</param>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.DecodeHeader``1(System.String)">
            <summary>
            Given a JWT, decodes it and return the header.
            </summary>
            <param name="token">The JWT</param>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.Decode``1(System.String)">
            <summary>
            Decodes a token using the supplied dependencies.
            </summary>
            <param name="token">The JWT</param>
            <returns>The payload converted to <see cref="!:T" /></returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.CanEncode">
            <summary>
            Checks whether enough dependencies were supplied to encode a new token.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.CanDecode">
            <summary>
            Checks whether enough dependencies were supplied to decode a token.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtBuilderExtensions.AddClaim(JWT.Builder.JwtBuilder,JWT.Builder.ClaimName,System.Object)">
            <summary>
            Adds well-known claim to the JWT.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtBuilderExtensions.AddClaim``1(JWT.Builder.JwtBuilder,JWT.Builder.ClaimName,``0)">
            <summary>
            Adds well-known claim to the JWT.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtBuilderExtensions.AddClaim``1(JWT.Builder.JwtBuilder,System.String,``0)">
            <summary>
            Adds well-known claim to the JWT.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtBuilderExtensions.AddClaims(JWT.Builder.JwtBuilder,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
            <summary>
            Adds several claims to the JWT
            </summary>
        </member>
        <member name="T:JWT.Builder.JwtData">
            <summary>
            Represents the Data that will store in a JWT.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtData.#ctor">
            <summary>
            Creates a new instance of <see cref="T:JWT.Builder.JwtData" /> with empty Header and Payload.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtData.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>
            Creates a new instance of <see cref="T:JWT.Builder.JwtData" />
            </summary>
            <param name="payload">Dictionary that contans the payload</param>
        </member>
        <member name="M:JWT.Builder.JwtData.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object},System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>
            Creates a new instance of <see cref="T:JWT.Builder.JwtData" />
            </summary>
            <param name="header">Dictionary that contains the headers</param>
            <param name="payload">Dictionary that contans the payload</param>
        </member>
        <member name="M:JWT.Builder.JwtData.#ctor(System.String)">
            <summary>
            Creates a new instance of <see cref="T:JWT.Builder.JwtData" />
            </summary>
            <param name="token">The JWT token</param>
        </member>
        <member name="P:JWT.Builder.JwtData.Header">
            <summary>
            The header information as a key-value store of the JWT
            </summary>
        </member>
        <member name="P:JWT.Builder.JwtData.Payload">
            <summary>
            The payload of the JWT as a key-value store
            </summary>
        </member>
        <member name="T:JWT.Builder.JwtHeader">
            <summary>
            JSON header model with predefined parameter names specified by RFC 7515, see https://tools.ietf.org/html/rfc7515
            </summary>
        </member>
        <member name="T:JWT.Exceptions.InvalidTokenPartsException">
            <summary>
            Represents an exception thrown when when a token doesn't consist of 3 delimited by dot parts.
            </summary>
        </member>
        <member name="M:JWT.Exceptions.InvalidTokenPartsException.#ctor(System.String)">
            <summary>
            Creates an instance of <see cref="T:JWT.Exceptions.InvalidTokenPartsException" />
            </summary>
            <param name="paramName">The name of the parameter that caused the exception</param>
        </member>
        <member name="T:JWT.Exceptions.SignatureVerificationException">
            <summary>
            Represents an exception thrown when a signature validation fails.
            </summary>
        </member>
        <member name="M:JWT.Exceptions.SignatureVerificationException.#ctor(System.String)">
            <summary>
            Creates an instance of <see cref="T:JWT.Exceptions.SignatureVerificationException" />
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="P:JWT.Exceptions.SignatureVerificationException.Expected">
            <summary>
            Expected key.
            </summary>
        </member>
        <member name="P:JWT.Exceptions.SignatureVerificationException.Received">
            <summary>
            Received key.
            </summary>
        </member>
        <member name="M:JWT.Exceptions.SignatureVerificationException.GetOrDefault``1(System.String)">
            <summary>
            Retrieves the value for the provided key, or default.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="key">The key</param>
            <returns></returns>
        </member>
        <member name="T:JWT.Exceptions.TokenExpiredException">
            <summary>
            Represents an exception thrown when when a token is expired.
            </summary>
        </member>
        <member name="M:JWT.Exceptions.TokenExpiredException.#ctor(System.String)">
            <summary>
            Creates an instance of <see cref="T:JWT.Exceptions.TokenExpiredException" />
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="P:JWT.Exceptions.TokenExpiredException.PayloadData">
            <summary>
            The payload.
            </summary>
        </member>
        <member name="P:JWT.Exceptions.TokenExpiredException.Expiration">
            <summary>
            The expiration DateTime of the token.
            </summary>
        </member>
        <member name="T:JWT.IBase64UrlEncoder">
            <summary>
            Represents a base64 encoder/decoder.
            </summary>
        </member>
        <member name="M:JWT.IBase64UrlEncoder.Encode(System.Byte[])">
            <summary>
            Encodes the byte array to a Base64 string.
            </summary>
        </member>
        <member name="M:JWT.IBase64UrlEncoder.Decode(System.String)">
            <summary>
            Decodes the Base64 string to a byte array.
            </summary>
        </member>
        <member name="T:JWT.IDateTimeProvider">
            <summary>
            Represents a DateTime provider.
            </summary>
        </member>
        <member name="M:JWT.IDateTimeProvider.GetNow">
            <summary>
            Gets the current DateTime.
            </summary>
        </member>
        <member name="T:JWT.IJsonSerializer">
            <summary>
            Provides JSON Serialize and Deserialize.  Allows custom serializers used.
            </summary>
        </member>
        <member name="M:JWT.IJsonSerializer.Serialize(System.Object)">
            <summary>
            Serialize an object to JSON string
            </summary>
            <param name="obj">object</param>
            <returns>JSON string</returns>
        </member>
        <member name="M:JWT.IJsonSerializer.Deserialize``1(System.String)">
            <summary>
            Deserialize a JSON string to typed object.
            </summary>
            <typeparam name="T">type of object</typeparam>
            <param name="json">JSON string</param>
            <returns>Strongly-typed object</returns>
        </member>
        <member name="T:JWT.IJwtDecoder">
            <summary>
            Represents a JWT decoder.
            </summary>
        </member>
        <member name="M:JWT.IJwtDecoder.DecodeHeader(System.String)">
            <summary>
            Given a JWT, decodes it and return the header.
            </summary>
            <param name="token">The JWT</param>
        </member>
        <member name="M:JWT.IJwtDecoder.DecodeHeader``1(JWT.JwtParts)">
            <summary>
            Given a JWT, decodes it and return the header as an object.
            </summary>
            <param name="jwt">The JWT</param>
        </member>
        <member name="M:JWT.IJwtDecoder.Decode(JWT.JwtParts)">
            <summary>
            Given a JWT, decodes it and return the payload.
            </summary>
            <param name="jwt">The JWT</param>
            <returns>A string containing the JSON payload</returns>
        </member>
        <member name="M:JWT.IJwtDecoder.Decode(JWT.JwtParts,System.Byte[],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload.
            </summary>
            <param name="jwt">The JWT</param>
            <param name="key">The key that were used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>A string containing the JSON payload</returns>
        </member>
        <member name="M:JWT.IJwtDecoder.Decode(JWT.JwtParts,System.Byte[][],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload.
            </summary>
            <param name="jwt">The JWT</param>
            <param name="keys">The keys provided which one of them was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>A string containing the JSON payload</returns>
        </member>
        <member name="M:JWT.IJwtDecoder.DecodeToObject``1(JWT.JwtParts)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="jwt">The JWT</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="M:JWT.IJwtDecoder.DecodeToObject``1(JWT.JwtParts,System.Byte[],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="jwt">The JWT</param>
            <param name="key">The key that was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="M:JWT.IJwtDecoder.DecodeToObject``1(JWT.JwtParts,System.Byte[][],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="jwt">The JWT</param>
            <param name="keys">The keys which one of them was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="T:JWT.JwtDecoderExtensions">
             <summary>
             Extension methods for <seealso cref="T:JWT.IJwtDecoder" />
            </summary>
        </member>
        <member name="M:JWT.JwtDecoderExtensions.Decode(JWT.IJwtDecoder,System.String)">
            <summary>
            Given a JWT, decodes it and return the payload.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <returns>A string containing the JSON payload</returns>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:JWT.Exceptions.InvalidTokenPartsException" />
        </member>
        <member name="M:JWT.JwtDecoderExtensions.Decode(JWT.IJwtDecoder,JWT.JwtParts)">
            <summary>
            Given a JWT, decodes it and return the payload.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="jwt">The JWT</param>
            <returns>A string containing the JSON payload</returns>
        </member>
        <member name="M:JWT.JwtDecoderExtensions.Decode(JWT.IJwtDecoder,System.String,System.Byte[],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="key">The key that was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>A string containing the JSON payload</returns>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:JWT.Exceptions.InvalidTokenPartsException" />
        </member>
        <member name="M:JWT.JwtDecoderExtensions.Decode(JWT.IJwtDecoder,System.String,System.Byte[][],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="keys">The keys that were used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>A string containing the JSON payload</returns>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:JWT.Exceptions.InvalidTokenPartsException" />
        </member>
        <member name="M:JWT.JwtDecoderExtensions.Decode(JWT.IJwtDecoder,System.String,System.String,System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an dictionary.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="key">The key that was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
        </member>
        <member name="M:JWT.JwtDecoderExtensions.Decode(JWT.IJwtDecoder,System.String,System.String[],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an dictionary.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="keys">The key which one of them was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject``1(JWT.IJwtDecoder,System.String)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject(JWT.IJwtDecoder,System.String)">
            <summary>
            Given a JWT, decodes it and return the payload as a dictionary.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject(JWT.IJwtDecoder,System.String,System.Byte[],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as a dictionary.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="key">The key that was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
            <exception cref = "T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:JWT.Exceptions.InvalidTokenPartsException" />
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject(JWT.IJwtDecoder,System.String,System.Byte[][],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as a dictionary.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="keys">The keys that were used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>A string containing the JSON payload</returns>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:JWT.Exceptions.InvalidTokenPartsException" />
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject``1(JWT.IJwtDecoder,System.String,System.String,System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="key">The key that was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject``1(JWT.IJwtDecoder,System.String,System.Byte[],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="key">The key that was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject``1(JWT.IJwtDecoder,System.String,System.Byte[][],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="keys">The keys provided which one of them was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject``1(JWT.IJwtDecoder,System.String,System.String[],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="keys">The keys provided which one of them was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="T:JWT.IJwtEncoder">
            <summary>
            Represents a JWT encoder.
            </summary>
        </member>
        <member name="M:JWT.IJwtEncoder.Encode(System.Collections.Generic.IDictionary{System.String,System.Object},System.Object,System.Byte[])">
            <summary>
            Creates a JWT given a header, a payload, the signing key, and the algorithm to use.
            </summary>
            <param name="extraHeaders">An arbitrary set of extra headers. Will be augmented with the standard "typ" and "alg" headers</param>
            <param name="payload">An arbitrary payload (must be serializable to JSON)</param>
            <param name="key">The key bytes used to sign the token</param>
            <returns>The generated JWT</returns>
        </member>
        <member name="T:JWT.JwtEncoderExtensions">
             <summary>
             Extension methods for <seealso cref="T:JWT.IJwtEncoder" />
            </summary>
        </member>
        <member name="M:JWT.JwtEncoderExtensions.Encode(JWT.IJwtEncoder,System.Object,System.String)">
            <summary>
            Creates a JWT given a payload, the signing key, and the algorithm to use.
            </summary>
            <param name="encoder">The encoder instance</param>
            <param name="payload">An arbitrary payload (must be serializable to JSON)</param>
            <param name="key">The key used to sign the token</param>
            <returns>The generated JWT</returns>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.JwtEncoderExtensions.Encode(JWT.IJwtEncoder,System.Object,System.Byte[])">
            <summary>
            Creates a JWT given a payload, the signing key, and the algorithm to use.
            </summary>
            <param name="encoder">The encoder instance</param>
            <param name="payload">An arbitrary payload (must be serializable to JSON)</param>
            <param name="key">The key used to sign the token</param>
            <returns>The generated JWT</returns>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.JwtEncoderExtensions.Encode(JWT.IJwtEncoder,System.Collections.Generic.IDictionary{System.String,System.Object},System.Object,System.String)">
            <summary>
            Creates a JWT given a set of arbitrary extra headers, a payload, the signing key, and the algorithm to use.
            </summary>
            <param name="encoder">The encoder instance</param>
            <param name="extraHeaders">An arbitrary set of extra headers. Will be augmented with the standard "typ" and "alg" headers</param>
            <param name="payload">An arbitrary payload (must be serializable to JSON)</param>
            <param name="key">The key bytes used to sign the token</param>
            <returns>The generated JWT</returns>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="T:JWT.IJwtValidator">
            <summary>
            Represents a JWT validator.
            </summary>
        </member>
        <member name="M:JWT.IJwtValidator.Validate(System.String,System.String,System.String[])">
            <summary>
            Given the JWT, verifies its signature correctness.
            </summary>
            <param name="decodedPayload">>An arbitrary payload (already serialized to JSON)</param>
            <param name="signature">Decoded body</param>
            <param name="decodedSignatures">The signatures to validate with</param>
        </member>
        <member name="M:JWT.IJwtValidator.Validate(System.String,JWT.Algorithms.IAsymmetricAlgorithm,System.Byte[],System.Byte[])">
            <summary>
            Given the JWT, verifies its signature correctness.
            </summary>
            <remarks>
            Used by the asymmetric algorithms only.
            </remarks>
            <param name="decodedPayload">>An arbitrary payload (already serialized to JSON)</param>
            <param name="alg">The asymmetric algorithm to validate with</param>
            <param name="bytesToSign">The header and payload bytes to validate</param>
            <param name="decodedSignature">The signature to validate with</param>
        </member>
        <member name="M:JWT.IJwtValidator.TryValidate(System.String,System.String,System.String,System.Exception@)">
            <summary>
            Given the JWT, verifies its signature correctness without throwing an exception but returning it instead.
            </summary>
            <param name="payloadJson">>An arbitrary payload (already serialized to JSON)</param>
            <param name="signature">Decoded body</param>
            <param name="decodedSignature">The signature to validate with</param>
            <param name="ex">The resulting validation exception, if any</param>
            <returns>Returns <c>true</c> if exception is JWT is valid and exception is null, otherwise false</returns>
        </member>
        <member name="M:JWT.IJwtValidator.TryValidate(System.String,System.String,System.String[],System.Exception@)">
            <summary>
            Given the JWT, verifies its signature correctness without throwing an exception but returning it instead.
            </summary>
            <param name="payloadJson">>An arbitrary payload (already serialized to JSON)</param>
            <param name="signature">Decoded body</param>
            <param name="decodedSignature">The signatures to validate with</param>
            <param name="ex">The resulting validation exception, if any</param>
            <returns>Returns <c>true</c> if exception is JWT is valid and exception is null, otherwise false</returns>
        </member>
        <member name="M:JWT.IJwtValidator.TryValidate(System.String,JWT.Algorithms.IAsymmetricAlgorithm,System.Byte[],System.Byte[],System.Exception@)">
            <summary>
            Given the JWT, verifies its signatures correctness without throwing an exception but returning it instead.
            </summary>
            <param name="payloadJson">>An arbitrary payload (already serialized to JSON)</param>
            <param name="alg">The asymmetric algorithm to validate with</param>
            <param name="bytesToSign">The header and payload bytes to validate</param>
            <param name="decodedSignature">The decodedSignatures to validate with</param>
            <param name="ex">Validation exception, if any</param>
            <returns>True if exception is JWT is valid and exception is null, otherwise false</returns>
        </member>
        <member name="T:JWT.JwtBase64UrlEncoder">
            <summary>
            Base64 encoding/decoding implementation according to the JWT spec
            </summary>
        </member>
        <member name="M:JWT.JwtBase64UrlEncoder.Encode(System.Byte[])">
            <inheritdoc />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
        </member>
        <member name="M:JWT.JwtBase64UrlEncoder.Decode(System.String)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.FormatException" />
        </member>
        <member name="T:JWT.JwtDecoder">
            <summary>
            Decodes JWT.
            </summary>
        </member>
        <member name="M:JWT.JwtDecoder.#ctor(JWT.IJsonSerializer,JWT.IBase64UrlEncoder)">
            <summary>
            Creates an instance of <see cref="T:JWT.JwtDecoder" />
            </summary>
            <remarks>
            This overload supplies no <see cref="T:JWT.IJwtValidator" /> and no <see cref="T:JWT.Algorithms.IAlgorithmFactory" /> so the resulting decoder cannot be used for signature validation.
            </remarks>
            <param name="jsonSerializer">The Json Serializer</param>
            <param name="urlEncoder">The Base64 URL Encoder</param>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.JwtDecoder.#ctor(JWT.IJsonSerializer,JWT.IJwtValidator,JWT.IBase64UrlEncoder,JWT.Algorithms.IAlgorithmFactory)">
            <summary>
            Creates an instance of <see cref="T:JWT.JwtDecoder" />
            </summary>
            <param name="jsonSerializer">The Json Serializer</param>
            <param name="jwtValidator">The Jwt validator</param>
            <param name="urlEncoder">The Base64 URL Encoder</param>
            <param name="algFactory">The Algorithm Factory</param>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.JwtDecoder.#ctor(JWT.IJsonSerializer,JWT.IJwtValidator,JWT.IBase64UrlEncoder,JWT.Algorithms.IJwtAlgorithm)">
            <summary>
            Creates an instance of <see cref="T:JWT.JwtDecoder" />
            </summary>
            <param name="jsonSerializer">The Json Serializer</param>
            <param name="jwtValidator">The Jwt validator</param>
            <param name="urlEncoder">The Base64 URL Encoder</param>
            <param name="algorithm">The Algorithm</param>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.JwtDecoder.DecodeHeader(System.String)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:JWT.Exceptions.InvalidTokenPartsException" />
            <exception cref="T:System.FormatException" />
        </member>
        <member name="M:JWT.JwtDecoder.DecodeHeader``1(JWT.JwtParts)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.FormatException" />
        </member>
        <member name="M:JWT.JwtDecoder.Decode(JWT.JwtParts)">
            <inheritdoc />
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.JwtDecoder.Decode(JWT.JwtParts,System.Byte[],System.Boolean)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:JWT.Exceptions.InvalidTokenPartsException" />
            <exception cref="T:System.FormatException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="M:JWT.JwtDecoder.Decode(JWT.JwtParts,System.Byte[][],System.Boolean)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:System.FormatException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="M:JWT.JwtDecoder.DecodeToObject``1(JWT.JwtParts)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:System.FormatException" />
        </member>
        <member name="M:JWT.JwtDecoder.DecodeToObject``1(JWT.JwtParts,System.Byte[],System.Boolean)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:System.FormatException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="M:JWT.JwtDecoder.DecodeToObject``1(JWT.JwtParts,System.Byte[][],System.Boolean)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:System.FormatException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="M:JWT.JwtDecoder.Validate(System.String[],System.Byte[])">
            <summary>
            Prepares data before calling <see cref="T:JWT.IJwtValidator" />
            </summary>
            <param name="parts">The array representation of a JWT</param>
            <param name="key">The key that was used to sign the JWT</param>
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:System.FormatException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="M:JWT.JwtDecoder.Validate(System.String[],System.Byte[][])">
            <summary>
            Prepares data before calling <see cref="T:JWT.IJwtValidator" />
            </summary>
            <param name="parts">The array representation of a JWT</param>
            <param name="keys">The keys provided which one of them was used to sign the JWT</param>
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:System.FormatException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="M:JWT.JwtDecoder.Validate(JWT.JwtParts,System.Byte[][])">
            <summary>
            Prepares data before calling <see cref="T:JWT.IJwtValidator" />
            </summary>
            <param name="jwt">The JWT parts</param>
            <param name="keys">The keys provided which one of them was used to sign the JWT</param>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:System.FormatException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="P:JWT.JwtDecoderContext.Token">
            <summary>
            Unmodified JWT.
            </summary>
        </member>
        <member name="P:JWT.JwtDecoderContext.Header">
            <summary>
            Deserialized JWT header.
            </summary>
        </member>
        <member name="P:JWT.JwtDecoderContext.Payload">
            <summary>
            Decoded JWT payload.
            </summary>
        </member>
        <member name="T:JWT.JwtEncoder">
            <summary>
            Encodes Jwt.
            </summary>
        </member>
        <member name="M:JWT.JwtEncoder.#ctor(JWT.Algorithms.IJwtAlgorithm,JWT.IJsonSerializer,JWT.IBase64UrlEncoder)">
            <summary>
            Creates an instance of <see cref="T:JWT.JwtEncoder" />
            </summary>
            <param name="jsonSerializer">The Json Serializer</param>
            <param name="algorithm">The Jwt Algorithm</param>
            <param name="urlEncoder">The Base64 URL Encoder</param>
        </member>
        <member name="M:JWT.JwtEncoder.Encode(System.Collections.Generic.IDictionary{System.String,System.Object},System.Object,System.Byte[])">
            <inheritdoc />
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="T:JWT.JwtParts">
            <summary>
            Represent the parts of a JWT
            </summary>
        </member>
        <member name="M:JWT.JwtParts.#ctor(System.String)">
            <summary>
            Creates a new instance of <see cref="T:JWT.JwtParts" /> from the string representation of a JWT
            </summary>
            <param name="token">The string representation of a JWT</param>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
        </member>
        <member name="M:JWT.JwtParts.#ctor(System.String[])">
            <summary>
            Creates a new instance of <see cref="T:JWT.JwtParts" /> from the array representation of a JWT
            </summary>
            <param name="parts">The array representation of a JWT</param>
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
        </member>
        <member name="P:JWT.JwtParts.Header">
            <summary>
            Gets the Header part of a JWT
            </summary>
        </member>
        <member name="P:JWT.JwtParts.Payload">
            <summary>
            Gets the Payload part of a JWT
            </summary>
        </member>
        <member name="P:JWT.JwtParts.Signature">
            <summary>
            Gets the Signature part of a JWT
            </summary>
        </member>
        <member name="P:JWT.JwtParts.Parts">
            <summary>
            Gets the parts of a JWT
            </summary>
        </member>
        <member name="T:JWT.JwtParts.JwtPartsIndex">
            <summary>
            Helper enum to get the correct part from the array representation of a JWT parts
            </summary>
        </member>
        <member name="T:JWT.JwtValidator">
            <summary>
            Jwt validator.
            </summary>
        </member>
        <member name="M:JWT.JwtValidator.#ctor(JWT.IJsonSerializer,JWT.IDateTimeProvider)">
            <summary>
            Creates an instance of <see cref="T:JWT.JwtValidator" />
            </summary>
            <param name="jsonSerializer">The Json Serializer</param>
            <param name="dateTimeProvider">The DateTime Provider</param>
        </member>
        <member name="M:JWT.JwtValidator.Validate(System.String,System.String,System.String[])">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
        </member>
        <member name="M:JWT.JwtValidator.Validate(System.String,JWT.Algorithms.IAsymmetricAlgorithm,System.Byte[],System.Byte[])">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
        </member>
        <member name="M:JWT.JwtValidator.TryValidate(System.String,System.String,System.String,System.Exception@)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
        </member>
        <member name="M:JWT.JwtValidator.TryValidate(System.String,System.String,System.String[],System.Exception@)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
        </member>
        <member name="M:JWT.JwtValidator.TryValidate(System.String,JWT.Algorithms.IAsymmetricAlgorithm,System.Byte[],System.Byte[],System.Exception@)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
        </member>
        <member name="M:JWT.JwtValidator.CompareCryptoWithSignature(System.String,System.String)">
            <remarks>In the future this method can be opened for extension hence made protected virtual</remarks>
        </member>
        <member name="M:JWT.JwtValidator.ValidateExpClaim(System.Collections.Generic.IReadOnlyDictionary{System.String,System.Object},System.Double)">
            <summary>
            Verifies the 'exp' claim.
            </summary>
            <remarks>See https://tools.ietf.org/html/rfc7515#section-4.1.4</remarks>
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="M:JWT.JwtValidator.ValidateNbfClaim(System.Collections.Generic.IReadOnlyDictionary{System.String,System.Object},System.Double)">
            <summary>
            Verifies the 'nbf' claim.
            </summary>
            <remarks>See https://tools.ietf.org/html/rfc7515#section-4.1.5</remarks>
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
        </member>
        <member name="T:JWT.Serializers.JsonNetSerializer">
            <summary>
            JSON serializer using Newtonsoft.Json implementation.
            </summary>
        </member>
        <member name="M:JWT.Serializers.JsonNetSerializer.#ctor">
            <summary>
            Creates a new instance of <see cref="T:JWT.Serializers.JsonNetSerializer" />
            </summary>
            <remarks>Uses <see cref="M:Newtonsoft.Json.JsonSerializer.CreateDefault" /> as internal serializer</remarks>
        </member>
        <member name="M:JWT.Serializers.JsonNetSerializer.#ctor(Newtonsoft.Json.JsonSerializer)">
            <summary>
            Creates a new instance of <see cref="T:JWT.Serializers.JsonNetSerializer" />
            </summary>
            <param name="serializer">Internal <see cref="T:Newtonsoft.Json.JsonSerializer" /> to use for serialization</param>
        </member>
        <member name="M:JWT.Serializers.JsonNetSerializer.Serialize(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:JWT.Serializers.JsonNetSerializer.Deserialize``1(System.String)">
            <inheritdoc />
        </member>
        <member name="P:JWT.UnixEpoch.Value">
            <summary>
            Describes a point in time, defined as the number of seconds that have elapsed since 00:00:00 UTC, Thursday, 1 January 1970, not counting leap seconds.
            See https://en.wikipedia.org/wiki/Unix_time />
            </summary>
        </member>
        <member name="T:JWT.UtcDateTimeProvider">
            <summary>
            Provider for UTC DateTime.
            </summary>
        </member>
        <member name="M:JWT.UtcDateTimeProvider.GetNow">
            <summary>
            Retuns the current time (UTC).
            </summary>
            <returns></returns>
        </member>
    </members>
</doc>
WebApi/GTech.Solution.Api.Common/bin/Release/Newtonsoft.Json.xml
New file
Diff too large
WebApi/GTech.Solution.Api.Common/bin/Release/Yokogawa.TLSVP.Api.Common.pdb
Binary files differ
WebApi/GTech.Solution.Api.Common/bin/Release/Yokogawa.TLSVP.Api.Domain.pdb
Binary files differ
WebApi/GTech.Solution.Api.Common/obj/Debug/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs
New file
@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.1", FrameworkDisplayName = ".NET Framework 4.6.1")]
WebApi/GTech.Solution.Api.Common/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
WebApi/GTech.Solution.Api.Common/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
WebApi/GTech.Solution.Api.Common/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
WebApi/GTech.Solution.Api.Common/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
WebApi/GTech.Solution.Api.Common/obj/Debug/Yokogawa.TLSVP.Api.Common.csproj.FileListAbsolute.txt
New file
@@ -0,0 +1,54 @@
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.TLSVP.Api.Common.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.TLSVP.Api.Common.pdb
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\JWT.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Newtonsoft.Json.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.TLSVP.Api.Domain.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.Utilities.AuditTrail.Client.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.Utilities.AuditTrail.ServiceInterface.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.Utilities.Configuration.Client.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.Utilities.Configuration.Service.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.Utilities.Configuration.ServiceInterface.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.Utilities.Log.Client.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.Utilities.Log.Interface.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.Utilities.Log.Service.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.Utilities.ReportPrint.Client.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.Utilities.ReportPrint.ServiceInterface.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.Utilities.Security.Client.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.Utilities.Security.Entity.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.Utilities.Security.Interface.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.Utilities.Timer.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.Utilities.WebMultiLanguages.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\EntityFramework.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.TLSVP.Api.Domain.pdb
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\JWT.pdb
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\JWT.xml
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Newtonsoft.Json.xml
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\obj\Debug\Yokogawa.TLSVP.Api.Common.csprojResolveAssemblyReference.cache
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\obj\Debug\Yokogawa.TLSVP.Api.Common.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\obj\Debug\Yokogawa.TLSVP.Api.Common.pdb
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.TLSVP.Api.Common.dll
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.TLSVP.Api.Common.pdb
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\JWT.dll
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Newtonsoft.Json.dll
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.TLSVP.Api.Domain.dll
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.TLSVP.Api.Domain.pdb
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\JWT.pdb
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\JWT.xml
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Common\bin\Debug\Newtonsoft.Json.xml
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Common\obj\Debug\Yokogawa.TLSVP.Api.Common.csprojAssemblyReference.cache
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Common\obj\Debug\Yokogawa.TLSVP.Api.Common.csproj.CoreCompileInputs.cache
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Common\obj\Debug\Yokogawa.TLSVP.Api.Common.csproj.CopyComplete
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Common\obj\Debug\Yokogawa.TLSVP.Api.Common.dll
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Common\obj\Debug\Yokogawa.TLSVP.Api.Common.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.TLSVP.Api.Common.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.TLSVP.Api.Common.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\bin\Debug\JWT.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\bin\Debug\Newtonsoft.Json.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.TLSVP.Api.Domain.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\bin\Debug\Yokogawa.TLSVP.Api.Domain.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\bin\Debug\JWT.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\bin\Debug\JWT.xml
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\bin\Debug\Newtonsoft.Json.xml
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\obj\Debug\Yokogawa.TLSVP.Api.Common.csprojResolveAssemblyReference.cache
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\obj\Debug\Yokogawa.TLSVP.Api.Common.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\obj\Debug\Yokogawa.TLSVP.Api.Common.pdb
WebApi/GTech.Solution.Api.Common/obj/Debug/Yokogawa.TLSVP.Api.Common.csprojResolveAssemblyReference.cache
Binary files differ
WebApi/GTech.Solution.Api.Common/obj/Debug/Yokogawa.TLSVP.Api.Common.pdb
Binary files differ
WebApi/GTech.Solution.Api.Common/obj/Debug/build.force
WebApi/GTech.Solution.Api.Common/obj/Release/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs
New file
@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.1", FrameworkDisplayName = ".NET Framework 4.6.1")]
WebApi/GTech.Solution.Api.Common/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
WebApi/GTech.Solution.Api.Common/obj/Release/GTech.Solution.Api.Common.csproj.FileListAbsolute.txt
New file
@@ -0,0 +1,12 @@
D:\Solution\GTech.Solution.Api.Common\bin\Release\GTech.Solution.Api.Common.dll
D:\Solution\GTech.Solution.Api.Common\bin\Release\GTech.Solution.Api.Common.pdb
D:\Solution\GTech.Solution.Api.Common\bin\Release\GTech.Solution.Api.Domain.dll
D:\Solution\GTech.Solution.Api.Common\bin\Release\JWT.dll
D:\Solution\GTech.Solution.Api.Common\bin\Release\Newtonsoft.Json.dll
D:\Solution\GTech.Solution.Api.Common\bin\Release\GTech.Solution.Api.Domain.pdb
D:\Solution\GTech.Solution.Api.Common\bin\Release\JWT.pdb
D:\Solution\GTech.Solution.Api.Common\bin\Release\JWT.xml
D:\Solution\GTech.Solution.Api.Common\bin\Release\Newtonsoft.Json.xml
D:\Solution\GTech.Solution.Api.Common\obj\Release\GTech.Solution.Api.Common.csprojResolveAssemblyReference.cache
D:\Solution\GTech.Solution.Api.Common\obj\Release\GTech.Solution.Api.Common.dll
D:\Solution\GTech.Solution.Api.Common\obj\Release\GTech.Solution.Api.Common.pdb
WebApi/GTech.Solution.Api.Common/obj/Release/GTech.Solution.Api.Common.csprojResolveAssemblyReference.cache
Binary files differ
WebApi/GTech.Solution.Api.Common/obj/Release/GTech.Solution.Api.Common.pdb
Binary files differ
WebApi/GTech.Solution.Api.Common/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
WebApi/GTech.Solution.Api.Common/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
WebApi/GTech.Solution.Api.Common/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
WebApi/GTech.Solution.Api.Common/obj/Release/Yokogawa.TLSVP.Api.Common.csproj.FileListAbsolute.txt
New file
@@ -0,0 +1,68 @@
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.TLSVP.Api.Common.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.TLSVP.Api.Common.pdb
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\JWT.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Newtonsoft.Json.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.TLSVP.Api.Domain.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.AuditTrail.Client.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.AuditTrail.ServiceInterface.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.Configuration.Client.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.Configuration.Service.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.Configuration.ServiceInterface.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.Log.Client.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.Log.Interface.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.Log.Service.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.ReportPrint.Client.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.ReportPrint.ServiceInterface.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.Security.Client.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.Security.Entity.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.Security.Interface.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.Timer.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.WebMultiLanguages.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\EntityFramework.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.TLSVP.Api.Domain.pdb
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\JWT.pdb
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\JWT.xml
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Newtonsoft.Json.xml
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\obj\Release\Yokogawa.TLSVP.Api.Common.csprojResolveAssemblyReference.cache
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\obj\Release\Yokogawa.TLSVP.Api.Common.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\obj\Release\Yokogawa.TLSVP.Api.Common.pdb
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.TLSVP.Api.Common.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.TLSVP.Api.Common.pdb
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\JWT.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Newtonsoft.Json.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.TLSVP.Api.Domain.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.AuditTrail.Client.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.AuditTrail.ServiceInterface.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.Configuration.Client.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.Configuration.Service.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.Configuration.ServiceInterface.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.Log.Client.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.Log.Interface.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.Log.Service.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.ReportPrint.Client.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.ReportPrint.ServiceInterface.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.Security.Client.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.Security.Entity.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.Security.Interface.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.Timer.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.Utilities.WebMultiLanguages.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\EntityFramework.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.TLSVP.Api.Domain.pdb
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\JWT.pdb
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\JWT.xml
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\bin\Release\Newtonsoft.Json.xml
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\obj\Release\Yokogawa.TLSVP.Api.Common.csprojResolveAssemblyReference.cache
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\obj\Release\Yokogawa.TLSVP.Api.Common.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Common\obj\Release\Yokogawa.TLSVP.Api.Common.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.TLSVP.Api.Common.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.TLSVP.Api.Common.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\bin\Release\JWT.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\bin\Release\Newtonsoft.Json.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.TLSVP.Api.Domain.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\bin\Release\Yokogawa.TLSVP.Api.Domain.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\bin\Release\JWT.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\bin\Release\JWT.xml
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\bin\Release\Newtonsoft.Json.xml
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\obj\Release\Yokogawa.TLSVP.Api.Common.csprojResolveAssemblyReference.cache
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\obj\Release\Yokogawa.TLSVP.Api.Common.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Common\obj\Release\Yokogawa.TLSVP.Api.Common.pdb
WebApi/GTech.Solution.Api.Common/obj/Release/Yokogawa.TLSVP.Api.Common.csprojResolveAssemblyReference.cache
Binary files differ
WebApi/GTech.Solution.Api.Common/obj/Release/Yokogawa.TLSVP.Api.Common.pdb
Binary files differ
WebApi/GTech.Solution.Api.Common/packages.config
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="JWT" version="7.3.0" targetFramework="net461" />
  <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
</packages>
WebApi/GTech.Solution.Api.Contract/GTech.Solution.Api.Contract.csproj
New file
@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{13B3BD45-EBD9-477D-BF78-472DD065E7A2}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>GTech.Solution.Api.Contract</RootNamespace>
    <AssemblyName>GTech.Solution.Api.Contract</AssemblyName>
    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.ServiceModel" />
    <Reference Include="System.ServiceModel.Web" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Net.Http" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="ITruckAlarm.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\GTech.Solution.Api.Domain\GTech.Solution.Api.Domain.csproj">
      <Project>{4A2930DE-7BF4-4368-B6AD-B74B9043DA7D}</Project>
      <Name>GTech.Solution.Api.Domain</Name>
    </ProjectReference>
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
</Project>
WebApi/GTech.Solution.Api.Contract/ITruckAlarm.cs
New file
@@ -0,0 +1,23 @@
using System.ServiceModel;
using System.ServiceModel.Web;
using GTech.Solution.Api.Domain.Model;
namespace GTech.Solution.Api.Contract
{
    /// <summary>
    /// 汽车预警
    /// </summary>
    [ServiceContract]
    public interface ITruckAlarm
    {
        /// <summary>
        /// 汽车预警
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        [OperationContract]
        [WebInvoke(Method = "POST", UriTemplate = "api/truckalarm/postalarm", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
        ApiData<TruckAlarmResult> POSTAlarm(TruckAlarmData dto);
    }
}
WebApi/GTech.Solution.Api.Contract/Properties/AssemblyInfo.cs
New file
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("GTech.Solution.Api.Contract")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("GTech.Solution.Api.Contract")]
[assembly: AssemblyCopyright("Copyright ©  2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components.  If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("13b3bd45-ebd9-477d-bf78-472dd065e7a2")]
// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version
//      Build Number
//      Revision
//
// 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("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
WebApi/GTech.Solution.Api.Contract/bin/Debug/Yokogawa.TLSVP.Api.Contract.pdb
Binary files differ
WebApi/GTech.Solution.Api.Contract/bin/Debug/Yokogawa.TLSVP.Api.Domain.pdb
Binary files differ
WebApi/GTech.Solution.Api.Contract/bin/Release/GTech.Solution.Api.Contract.pdb
Binary files differ
WebApi/GTech.Solution.Api.Contract/bin/Release/GTech.Solution.Api.Domain.pdb
Binary files differ
WebApi/GTech.Solution.Api.Contract/bin/Release/Yokogawa.TLSVP.Api.Contract.pdb
Binary files differ
WebApi/GTech.Solution.Api.Contract/bin/Release/Yokogawa.TLSVP.Api.Domain.pdb
Binary files differ
WebApi/GTech.Solution.Api.Contract/obj/Debug/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs
New file
@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.1", FrameworkDisplayName = ".NET Framework 4.6.1")]
WebApi/GTech.Solution.Api.Contract/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
WebApi/GTech.Solution.Api.Contract/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
WebApi/GTech.Solution.Api.Contract/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
WebApi/GTech.Solution.Api.Contract/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
WebApi/GTech.Solution.Api.Contract/obj/Debug/Yokogawa.TLSVP.Api.Contract.csproj.FileListAbsolute.txt
New file
@@ -0,0 +1,27 @@
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Debug\Yokogawa.TLSVP.Api.Contract.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Debug\Yokogawa.TLSVP.Api.Contract.pdb
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Debug\Yokogawa.TLSVP.Api.Domain.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Debug\Yokogawa.TLSVP.CommonMasterData.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Debug\EntityFramework.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Debug\Yokogawa.Utilities.Log.Client.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Debug\Yokogawa.Utilities.Log.Interface.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Debug\Yokogawa.TLSVP.Api.Domain.pdb
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\obj\Debug\Yokogawa.TLSVP.Api.Contract.csprojResolveAssemblyReference.cache
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\obj\Debug\Yokogawa.TLSVP.Api.Contract.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\obj\Debug\Yokogawa.TLSVP.Api.Contract.pdb
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Contract\obj\Debug\Yokogawa.TLSVP.Api.Contract.csprojAssemblyReference.cache
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Contract\obj\Debug\Yokogawa.TLSVP.Api.Contract.csproj.CoreCompileInputs.cache
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Debug\Yokogawa.TLSVP.Api.Contract.dll
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Debug\Yokogawa.TLSVP.Api.Contract.pdb
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Debug\Yokogawa.TLSVP.Api.Domain.dll
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Debug\Yokogawa.TLSVP.Api.Domain.pdb
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Contract\obj\Debug\Yokogawa.TLSVP.Api.Contract.csproj.CopyComplete
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Contract\obj\Debug\Yokogawa.TLSVP.Api.Contract.dll
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Contract\obj\Debug\Yokogawa.TLSVP.Api.Contract.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Contract\bin\Debug\Yokogawa.TLSVP.Api.Contract.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Contract\bin\Debug\Yokogawa.TLSVP.Api.Contract.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Contract\bin\Debug\Yokogawa.TLSVP.Api.Domain.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Contract\bin\Debug\Yokogawa.TLSVP.Api.Domain.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Contract\obj\Debug\Yokogawa.TLSVP.Api.Contract.csprojResolveAssemblyReference.cache
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Contract\obj\Debug\Yokogawa.TLSVP.Api.Contract.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Contract\obj\Debug\Yokogawa.TLSVP.Api.Contract.pdb
WebApi/GTech.Solution.Api.Contract/obj/Debug/Yokogawa.TLSVP.Api.Contract.csprojResolveAssemblyReference.cache
Binary files differ
WebApi/GTech.Solution.Api.Contract/obj/Debug/Yokogawa.TLSVP.Api.Contract.pdb
Binary files differ
WebApi/GTech.Solution.Api.Contract/obj/Debug/build.force
WebApi/GTech.Solution.Api.Contract/obj/Release/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs
New file
@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.1", FrameworkDisplayName = ".NET Framework 4.6.1")]
WebApi/GTech.Solution.Api.Contract/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
WebApi/GTech.Solution.Api.Contract/obj/Release/GTech.Solution.Api.Contract.csproj.FileListAbsolute.txt
New file
@@ -0,0 +1,7 @@
D:\Solution\GTech.Solution.Api.Contract\bin\Release\GTech.Solution.Api.Contract.dll
D:\Solution\GTech.Solution.Api.Contract\bin\Release\GTech.Solution.Api.Contract.pdb
D:\Solution\GTech.Solution.Api.Contract\bin\Release\GTech.Solution.Api.Domain.dll
D:\Solution\GTech.Solution.Api.Contract\bin\Release\GTech.Solution.Api.Domain.pdb
D:\Solution\GTech.Solution.Api.Contract\obj\Release\GTech.Solution.Api.Contract.csprojResolveAssemblyReference.cache
D:\Solution\GTech.Solution.Api.Contract\obj\Release\GTech.Solution.Api.Contract.dll
D:\Solution\GTech.Solution.Api.Contract\obj\Release\GTech.Solution.Api.Contract.pdb
WebApi/GTech.Solution.Api.Contract/obj/Release/GTech.Solution.Api.Contract.csprojResolveAssemblyReference.cache
Binary files differ
WebApi/GTech.Solution.Api.Contract/obj/Release/GTech.Solution.Api.Contract.pdb
Binary files differ
WebApi/GTech.Solution.Api.Contract/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
WebApi/GTech.Solution.Api.Contract/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
WebApi/GTech.Solution.Api.Contract/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
WebApi/GTech.Solution.Api.Contract/obj/Release/Yokogawa.TLSVP.Api.Contract.csproj.FileListAbsolute.txt
New file
@@ -0,0 +1,30 @@
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Release\Yokogawa.TLSVP.Api.Contract.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Release\Yokogawa.TLSVP.Api.Contract.pdb
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Release\Yokogawa.TLSVP.Api.Domain.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Release\Yokogawa.TLSVP.CommonMasterData.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Release\EntityFramework.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Release\Yokogawa.Utilities.Log.Client.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Release\Yokogawa.Utilities.Log.Interface.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Release\Yokogawa.TLSVP.Api.Domain.pdb
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\obj\Release\Yokogawa.TLSVP.Api.Contract.csprojResolveAssemblyReference.cache
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\obj\Release\Yokogawa.TLSVP.Api.Contract.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\obj\Release\Yokogawa.TLSVP.Api.Contract.pdb
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Release\Yokogawa.TLSVP.Api.Contract.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Release\Yokogawa.TLSVP.Api.Contract.pdb
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Release\Yokogawa.TLSVP.Api.Domain.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Release\Yokogawa.TLSVP.CommonMasterData.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Release\EntityFramework.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Release\Yokogawa.Utilities.Log.Client.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Release\Yokogawa.Utilities.Log.Interface.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Release\Yokogawa.TLSVP.Api.Domain.pdb
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\obj\Release\Yokogawa.TLSVP.Api.Contract.csprojResolveAssemblyReference.cache
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\obj\Release\Yokogawa.TLSVP.Api.Contract.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\obj\Release\Yokogawa.TLSVP.Api.Contract.pdb
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Contract\bin\Release\Yokogawa.TLSVP.CommonMasterData.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Contract\bin\Release\Yokogawa.TLSVP.Api.Contract.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Contract\bin\Release\Yokogawa.TLSVP.Api.Contract.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Contract\bin\Release\Yokogawa.TLSVP.Api.Domain.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Contract\bin\Release\Yokogawa.TLSVP.Api.Domain.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Contract\obj\Release\Yokogawa.TLSVP.Api.Contract.csprojResolveAssemblyReference.cache
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Contract\obj\Release\Yokogawa.TLSVP.Api.Contract.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Contract\obj\Release\Yokogawa.TLSVP.Api.Contract.pdb
WebApi/GTech.Solution.Api.Contract/obj/Release/Yokogawa.TLSVP.Api.Contract.csprojResolveAssemblyReference.cache
Binary files differ
WebApi/GTech.Solution.Api.Contract/obj/Release/Yokogawa.TLSVP.Api.Contract.pdb
Binary files differ
WebApi/GTech.Solution.Api.Domain/GTech.Solution.Api.Domain.csproj
New file
@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{4A2930DE-7BF4-4368-B6AD-B74B9043DA7D}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>GTech.Solution.Api.Domain</RootNamespace>
    <AssemblyName>GTech.Solution.Api.Domain</AssemblyName>
    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Runtime.Serialization" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Net.Http" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Model\ApiData.cs" />
    <Compile Include="Model\SystemSettings\Userbasic.cs" />
    <Compile Include="Model\TruckAlarmData.cs" />
    <Compile Include="Model\TruckAlarmResult.cs" />
    <Compile Include="Option\ApiDataStatus.cs" />
    <Compile Include="Option\WeeddirectionOption.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ItemGroup />
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
</Project>
WebApi/GTech.Solution.Api.Domain/GTech.Solution.Api.Domain.csproj.user
New file
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ProjectView>ProjectFiles</ProjectView>
  </PropertyGroup>
</Project>
WebApi/GTech.Solution.Api.Domain/Model/ApiData.cs
New file
@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Web;
namespace GTech.Solution.Api.Domain.Model
{
    [DataContract]
    public class ApiData<T>
    {
        [DataMember]
        public int Code { get; set; }
        [DataMember]
        public string Status { get; set; }
        [DataMember]
        public string Message { get; set; }
        [DataMember]
        public T Data { get; set; }
    }
}
WebApi/GTech.Solution.Api.Domain/Model/SystemSettings/Userbasic.cs
New file
@@ -0,0 +1,14 @@
using System.Runtime.Serialization;
namespace GTech.Solution.Api.Domain.Model.SystemSettings
{
    [DataContract]
    public class Userbasic
    {
        [DataMember]
        public string Username { get; set; }
        [DataMember]
        public string Password { get; set; }
    }
}
WebApi/GTech.Solution.Api.Domain/Model/TruckAlarmData.cs
New file
@@ -0,0 +1,15 @@
using System.Runtime.Serialization;
namespace GTech.Solution.Api.Domain.Model
{
    [DataContract]
    public class TruckAlarmData
    {
        [DataMember]
        public string name { get; set; }
        [DataMember]
        public string cam_ip { get; set; }
        [DataMember]
        public double distance { get; set; }
    }
}
WebApi/GTech.Solution.Api.Domain/Model/TruckAlarmResult.cs
New file
@@ -0,0 +1,15 @@
using System.Runtime.Serialization;
namespace GTech.Solution.Api.Domain.Model
{
    [DataContract]
    public class TruckAlarmResult
    {
        [DataMember]
        public string name { get; set; }
        [DataMember]
        public string cam_ip { get; set; }
        [DataMember]
        public double distance { get; set; }
    }
}
WebApi/GTech.Solution.Api.Domain/Option/ApiDataStatus.cs
New file
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GTech.Solution.Api.Domain.Option
{
    public enum ApiDataStatus
    {
        SUCCESS = 200,
        FAILED = 500,
        ACCESSISDENIED = 401,
    }
}
WebApi/GTech.Solution.Api.Domain/Option/WeeddirectionOption.cs
New file
@@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GTech.Solution.Api.Domain.Option
{
    public enum WeeddirectionOption
    {
        东风 = 1,
        西风 = 2,
        北风 = 3,
        南风 = 4,
        西南风 = 5,
        东南风 = 6,
        西北风 = 7,
        东北风 = 8,
    }
}
WebApi/GTech.Solution.Api.Domain/Properties/AssemblyInfo.cs
New file
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("GTech.Solution.Api.Domain")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("GTech.Solution.Api.Domain")]
[assembly: AssemblyCopyright("Copyright ©  2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components.  If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("4a2930de-7bf4-4368-b6ad-b74b9043da7d")]
// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version
//      Build Number
//      Revision
//
// 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("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
WebApi/GTech.Solution.Api.Domain/bin/Debug/Yokogawa.TLSVP.Api.Domain.pdb
Binary files differ
WebApi/GTech.Solution.Api.Domain/bin/Release/GTech.Solution.Api.Domain.pdb
Binary files differ
WebApi/GTech.Solution.Api.Domain/bin/Release/Yokogawa.TLSVP.Api.Domain.pdb
Binary files differ
WebApi/GTech.Solution.Api.Domain/obj/Debug/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs
New file
@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.1", FrameworkDisplayName = ".NET Framework 4.6.1")]
WebApi/GTech.Solution.Api.Domain/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
WebApi/GTech.Solution.Api.Domain/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
WebApi/GTech.Solution.Api.Domain/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
WebApi/GTech.Solution.Api.Domain/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
WebApi/GTech.Solution.Api.Domain/obj/Debug/Yokogawa.TLSVP.Api.Domain.csproj.FileListAbsolute.txt
New file
@@ -0,0 +1,15 @@
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Domain\bin\Debug\Yokogawa.TLSVP.Api.Domain.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Domain\bin\Debug\Yokogawa.TLSVP.Api.Domain.pdb
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Domain\obj\Debug\Yokogawa.TLSVP.Api.Domain.csprojResolveAssemblyReference.cache
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Domain\obj\Debug\Yokogawa.TLSVP.Api.Domain.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Domain\obj\Debug\Yokogawa.TLSVP.Api.Domain.pdb
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Domain\bin\Debug\Yokogawa.TLSVP.Api.Domain.dll
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Domain\bin\Debug\Yokogawa.TLSVP.Api.Domain.pdb
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Domain\obj\Debug\Yokogawa.TLSVP.Api.Domain.csproj.CoreCompileInputs.cache
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Domain\obj\Debug\Yokogawa.TLSVP.Api.Domain.dll
D:\Banwang\02-Code\Yokogawa.TLSVP.Api.Domain\obj\Debug\Yokogawa.TLSVP.Api.Domain.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Domain\bin\Debug\Yokogawa.TLSVP.Api.Domain.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Domain\bin\Debug\Yokogawa.TLSVP.Api.Domain.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Domain\obj\Debug\Yokogawa.TLSVP.Api.Domain.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Domain\obj\Debug\Yokogawa.TLSVP.Api.Domain.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Domain\obj\Debug\Yokogawa.TLSVP.Api.Domain.csprojResolveAssemblyReference.cache
WebApi/GTech.Solution.Api.Domain/obj/Debug/Yokogawa.TLSVP.Api.Domain.csprojResolveAssemblyReference.cache
Binary files differ
WebApi/GTech.Solution.Api.Domain/obj/Debug/Yokogawa.TLSVP.Api.Domain.pdb
Binary files differ
WebApi/GTech.Solution.Api.Domain/obj/Release/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs
New file
@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.1", FrameworkDisplayName = ".NET Framework 4.6.1")]
WebApi/GTech.Solution.Api.Domain/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
WebApi/GTech.Solution.Api.Domain/obj/Release/GTech.Solution.Api.Domain.csproj.FileListAbsolute.txt
New file
@@ -0,0 +1,5 @@
D:\Solution\GTech.Solution.Api.Domain\bin\Release\GTech.Solution.Api.Domain.dll
D:\Solution\GTech.Solution.Api.Domain\bin\Release\GTech.Solution.Api.Domain.pdb
D:\Solution\GTech.Solution.Api.Domain\obj\Release\GTech.Solution.Api.Domain.dll
D:\Solution\GTech.Solution.Api.Domain\obj\Release\GTech.Solution.Api.Domain.pdb
D:\Solution\GTech.Solution.Api.Domain\obj\Release\GTech.Solution.Api.Domain.csprojResolveAssemblyReference.cache
WebApi/GTech.Solution.Api.Domain/obj/Release/GTech.Solution.Api.Domain.csprojResolveAssemblyReference.cache
Binary files differ
WebApi/GTech.Solution.Api.Domain/obj/Release/GTech.Solution.Api.Domain.pdb
Binary files differ
WebApi/GTech.Solution.Api.Domain/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
WebApi/GTech.Solution.Api.Domain/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
WebApi/GTech.Solution.Api.Domain/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
WebApi/GTech.Solution.Api.Domain/obj/Release/Yokogawa.TLSVP.Api.Domain.csproj.FileListAbsolute.txt
New file
@@ -0,0 +1,14 @@
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Domain\bin\Release\Yokogawa.TLSVP.Api.Domain.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Domain\bin\Release\Yokogawa.TLSVP.Api.Domain.pdb
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Domain\obj\Release\Yokogawa.TLSVP.Api.Domain.dll
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Domain\obj\Release\Yokogawa.TLSVP.Api.Domain.pdb
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Domain\bin\Release\Yokogawa.TLSVP.Api.Domain.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Domain\bin\Release\Yokogawa.TLSVP.Api.Domain.pdb
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Domain\obj\Release\Yokogawa.TLSVP.Api.Domain.csprojResolveAssemblyReference.cache
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Domain\obj\Release\Yokogawa.TLSVP.Api.Domain.dll
Z:\Workspace\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Domain\obj\Release\Yokogawa.TLSVP.Api.Domain.pdb
D:\Yokogawa\TLSVP_YVN\TLSVP_YVN_Mobile\01-Working\04-Development\02-Code\Yokogawa.TLSVP.Api.Domain\obj\Release\Yokogawa.TLSVP.Api.Domain.csprojResolveAssemblyReference.cache
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Domain\bin\Release\Yokogawa.TLSVP.Api.Domain.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Domain\bin\Release\Yokogawa.TLSVP.Api.Domain.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Domain\obj\Release\Yokogawa.TLSVP.Api.Domain.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.Domain\obj\Release\Yokogawa.TLSVP.Api.Domain.pdb
WebApi/GTech.Solution.Api.Domain/obj/Release/Yokogawa.TLSVP.Api.Domain.pdb
Binary files differ
WebApi/GTech.Solution.Api.WebSite/ApiServicesBase.cs
New file
@@ -0,0 +1,98 @@
using System;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.Web.Script.Serialization;
namespace GTech.Solution.Api
{
    public abstract class ApiServicesBase
    {
        #region Properties And Feilds
        #endregion
        #region common method
        public dynamic GetPostData(Stream stream)
        {
            if (stream.Length != 0)
            {
                StreamReader sr = new StreamReader(stream);
                var json = sr.ReadToEnd();
                JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
                dynamic data = javaScriptSerializer.Deserialize<dynamic>(json);
                return data;
            }
            else
            {
                return null;
            }
        }
        public IQueryable<T> Sort<T>(IQueryable<T> data, string orderByName, bool orderDirection)
        {
            try
            {
                if (string.IsNullOrEmpty(orderByName))
                {
                    return data;
                }
                var dataType = typeof(T);
                var property = dataType.GetProperty(orderByName);
                if (property == null) return data;
                var paramter = Expression.Parameter(dataType, string.Empty);
                var propertyAccess = Expression.MakeMemberAccess(paramter, property);
                var orderByExp = Expression.Lambda(propertyAccess, paramter);
                string command = orderDirection ? "OrderBy" : "OrderByDescending";
                var resultExp = Expression.Call(typeof(Queryable), command, new Type[] { dataType, property.PropertyType }, data.Expression, Expression.Quote(orderByExp));
                return data.Provider.CreateQuery<T>(resultExp);
            }
            catch (Exception ex)
            {
                return null;
            }
        }
        public Binding ConfigBinding()
        {
            BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.None);
            binding.ReceiveTimeout = new TimeSpan(0, 1, 00);
            binding.SendTimeout = new TimeSpan(0, 1, 00);
            binding.CloseTimeout = new TimeSpan(0, 0, 20);
            binding.OpenTimeout = new TimeSpan(0, 0, 20);
            binding.MaxBufferPoolSize = 524288;
            binding.MaxReceivedMessageSize = 655360000;
            binding.ReaderQuotas.MaxDepth = 32;
            binding.ReaderQuotas.MaxStringContentLength = 8192;
            binding.ReaderQuotas.MaxArrayLength = 1638400;
            binding.ReaderQuotas.MaxBytesPerRead = 40960000;
            binding.ReaderQuotas.MaxNameTableCharCount = 1638400;
            return binding;
        }
        public static void CopyModel(object target, object source)
        {
            Type type1 = target.GetType();
            Type type2 = source.GetType();
            foreach (var mi in type1.GetProperties())
            {
                var des = type1.GetProperty(mi.Name);
                if (des != null)
                {
                    try
                    {
                        des.SetValue(target, mi.GetValue(source, null), null);
                    }
                    catch (Exception ex)
                    {
                    }
                }
            }
        }
        #endregion
    }
}
WebApi/GTech.Solution.Api.WebSite/ApplicationInsights.config
New file
@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8"?>
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings">
    <TelemetryModules>
        <Add Type="Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule, Microsoft.AI.DependencyCollector"/>
        <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule, Microsoft.AI.PerfCounterCollector">
            <!--
      Use the following syntax here to collect additional performance counters:
      <Counters>
        <Add PerformanceCounter="\Process(??APP_WIN32_PROC??)\Handle Count" ReportAs="Process handle count" />
        ...
      </Counters>
      PerformanceCounter must be either \CategoryName(InstanceName)\CounterName or \CategoryName\CounterName
      Counter names may only contain letters, round brackets, forward slashes, hyphens, underscores, spaces and dots.
      You may provide an optional ReportAs attribute which will be used as the metric name when reporting counter data.
      For the purposes of reporting, metric names will be sanitized by removing all invalid characters from the resulting metric name.
      NOTE: performance counters configuration will be lost upon NuGet upgrade.
      The following placeholders are supported as InstanceName:
        ??APP_WIN32_PROC?? - instance name of the application process  for Win32 counters.
        ??APP_W3SVC_PROC?? - instance name of the application IIS worker process for IIS/ASP.NET counters.
        ??APP_CLR_PROC?? - instance name of the application CLR process for .NET counters.
      -->
        </Add>
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.DeveloperModeWithDebuggerAttachedTelemetryModule, Microsoft.AI.WindowsServer"/>
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule, Microsoft.AI.WindowsServer"/>
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule, Microsoft.AI.WindowsServer"/>
        <Add Type="Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule, Microsoft.AI.Web">
            <Handlers>
                <!--
        Add entries here to filter out additional handlers:
        NOTE: handler configuration will be lost upon NuGet upgrade.
        -->
                <Add>System.Web.Handlers.TransferRequestHandler</Add>
                <Add>Microsoft.VisualStudio.Web.PageInspector.Runtime.Tracing.RequestDataHttpHandler</Add>
                <Add>System.Web.StaticFileHandler</Add>
                <Add>System.Web.Handlers.AssemblyResourceLoader</Add>
                <Add>System.Web.Optimization.BundleHandler</Add>
                <Add>System.Web.Script.Services.ScriptHandlerFactory</Add>
                <Add>System.Web.Handlers.TraceHandler</Add>
                <Add>System.Web.Services.Discovery.DiscoveryRequestHandler</Add>
                <Add>System.Web.HttpDebugHandler</Add>
            </Handlers>
        </Add>
        <Add Type="Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule, Microsoft.AI.Web"/>
    </TelemetryModules>
    <TelemetryChannel Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel, Microsoft.AI.ServerTelemetryChannel"/>
    <TelemetryProcessors>
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
            <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
        </Add>
    </TelemetryProcessors>
<!--
    Learn more about Application Insights configuration with ApplicationInsights.config here:
    http://go.microsoft.com/fwlink/?LinkID=513840
    Note: If not present, please add <InstrumentationKey>Your Key</InstrumentationKey> to the top of this file.
  -->
<TelemetryInitializers>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer"/>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.DomainNameRoleInstanceTelemetryInitializer, Microsoft.AI.WindowsServer"/>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.BuildInfoConfigComponentVersionTelemetryInitializer, Microsoft.AI.WindowsServer"/>
<Add Type="Microsoft.ApplicationInsights.Web.WebTestTelemetryInitializer, Microsoft.AI.Web"/>
<Add Type="Microsoft.ApplicationInsights.Web.SyntheticUserAgentTelemetryInitializer, Microsoft.AI.Web">
<Filters>
<Add Pattern="(YottaaMonitor|BrowserMob|HttpMonitor|YandexBot|BingPreview|PagePeeker|ThumbShotsBot|WebThumb|URL2PNG|ZooShot|GomezA|Catchpoint bot|Willow Internet Crawler|Google SketchUp|Read%20Later|KTXN|Pingdom|AlwaysOn)"/>
<Add Pattern="Slurp" SourceName="Yahoo Bot"/>
<Add Pattern="(bot|zao|borg|Bot|oegp|silk|Xenu|zeal|^NING|crawl|Crawl|htdig|lycos|slurp|teoma|voila|yahoo|Sogou|CiBra|Nutch|^Java/|^JNLP/|Daumoa|Genieo|ichiro|larbin|pompos|Scrapy|snappy|speedy|spider|Spider|vortex|favicon|indexer|Riddler|scooter|scraper|scrubby|WhatWeb|WinHTTP|^voyager|archiver|Icarus6j|mogimogi|Netvibes|altavista|charlotte|findlinks|Retreiver|TLSProber|WordPress|wsr\-agent|Squrl Java|A6\-Indexer|netresearch|searchsight|http%20client|Python-urllib|dataparksearch|Screaming Frog|AppEngine-Google|YahooCacheSystem|semanticdiscovery|facebookexternalhit|Google.*/\+/web/snippet|Google-HTTP-Java-Client)"
SourceName="Spider"/>
</Filters>
</Add>
<Add Type="Microsoft.ApplicationInsights.Web.ClientIpHeaderTelemetryInitializer, Microsoft.AI.Web"/>
<Add Type="Microsoft.ApplicationInsights.Web.OperationNameTelemetryInitializer, Microsoft.AI.Web"/>
<Add Type="Microsoft.ApplicationInsights.Web.OperationCorrelationTelemetryInitializer, Microsoft.AI.Web"/>
<Add Type="Microsoft.ApplicationInsights.Web.UserTelemetryInitializer, Microsoft.AI.Web"/>
<Add Type="Microsoft.ApplicationInsights.Web.AuthenticatedUserIdTelemetryInitializer, Microsoft.AI.Web"/>
<Add Type="Microsoft.ApplicationInsights.Web.AccountIdTelemetryInitializer, Microsoft.AI.Web"/>
<Add Type="Microsoft.ApplicationInsights.Web.SessionTelemetryInitializer, Microsoft.AI.Web"/>
</TelemetryInitializers>
</ApplicationInsights>
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/TDatabaseContext.cs
New file
@@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Data.Entity.ModelConfiguration.Conventions;
using System.Linq;
using System.Web;
namespace GTech.Solution.Api.WebSite.DatabaseContent
{
    public class TDatabaseContext : DbContext
    {
        public TDatabaseContext() : base("Default")
        {
        }
        #region MasterData
        public virtual DbSet<out_chemicals> out_chemicals { get; set; }
        public virtual DbSet<out_light_cloud> out_light_cloud { get; set; }
        public virtual DbSet<out_meteorological> out_meteorological { get; set; }
        public virtual DbSet<out_result> out_result { get; set; }
        public virtual DbSet<out_result_explosion> out_result_explosion { get; set; }
        public virtual DbSet<out_result_gas_cloud> out_result_gas_cloud { get; set; }
        public virtual DbSet<out_result_heat_radiation> out_result_heat_radiation { get; set; }
        public virtual DbSet<out_result_overburnt> out_result_overburnt { get; set; }
        public virtual DbSet<out_scenar> out_scenar { get; set; }
        public virtual DbSet<out_source> out_source { get; set; }
        public virtual DbSet<out_source_exposure> out_source_exposure { get; set; }
        public virtual DbSet<out_source_gas> out_source_gas { get; set; }
        public virtual DbSet<out_source_liquid> out_source_liquid { get; set; }
        public virtual DbSet<out_source_tank> out_source_tank { get; set; }
        public virtual DbSet<out_surface> out_surface { get; set; }
        #endregion
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
            modelBuilder.Types().Configure(f => f.ToTable("" + f.ClrType.Name));
        }
    }
}
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_chemicals.cs
New file
@@ -0,0 +1,97 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Web;
namespace GTech.Solution.Api.WebSite.DatabaseContent
{
    [DataContract]
    public class out_chemicals
    {
        [DataMember]
        public int id { get; set; }
        [DataMember]
        public string chemicalChinese { get; set; }
        [DataMember]
        public string chemicalEnglish { get; set; }
        [DataMember]
        public string cas { get; set; }
        [DataMember]
        public string mw { get; set; }
        [DataMember]
        public string aegl1 { get; set; }
        [DataMember]
        public string aegl2 { get; set; }
        [DataMember]
        public string aegl3 { get; set; }
        [DataMember]
        public string boilingPoint { get; set; }
        [DataMember]
        public string criticalPressure { get; set; }
        [DataMember]
        public string loc1 { get; set; }
        [DataMember]
        public string loc2 { get; set; }
        [DataMember]
        public string loc3 { get; set; }
        [DataMember]
        public string densityPgt { get; set; }
        [DataMember]
        public string densityTemperature { get; set; }
        [DataMember]
        public string densityPressure { get; set; }
        [DataMember]
        public string erpg1 { get; set; }
        [DataMember]
        public string erpg2 { get; set; }
        [DataMember]
        public string erpg3 { get; set; }
        [DataMember]
        public string flashPoint { get; set; }
        [DataMember]
        public string freezingTemperature { get; set; }
        [DataMember]
        public string shcGaseousNormalPressureCp { get; set; }
        [DataMember]
        public string shcGaseousNormalPressureTemperature { get; set; }
        [DataMember]
        public string shcGaseousNormalPressurePressure { get; set; }
        [DataMember]
        public string shcLiquidNormalPressureCvl { get; set; }
        [DataMember]
        public string shcLiquidNormalPressureTemperature { get; set; }
        [DataMember]
        public string shcLiquidNormalPressurePressure { get; set; }
        [DataMember]
        public string heatOfCombustion { get; set; }
        [DataMember]
        public string idlh { get; set; }
        [DataMember]
        public string lel { get; set; }
        [DataMember]
        public string lel60 { get; set; }
        [DataMember]
        public string lel10 { get; set; }
        [DataMember]
        public string uel { get; set; }
        [DataMember]
        public string pac1 { get; set; }
        [DataMember]
        public string pac2 { get; set; }
        [DataMember]
        public string pac3 { get; set; }
        [DataMember]
        public string vaporPressure { get; set; }
        [DataMember]
        public string vaporPressureTemperature { get; set; }
        [DataMember]
        public string createTime { get; set; }
        [DataMember]
        public string updateTime { get; set; }
        [DataMember]
        public bool flag { get; set; }
    }
}
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_light_cloud.cs
New file
@@ -0,0 +1,63 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Web;
namespace GTech.Solution.Api.WebSite.DatabaseContent
{
    /// <summary>
    /// 光照量及稳定性等级表
    /// </summary>
    [DataContract]
    public class out_light_cloud
    {
        [DataMember]
        public int id { get; set; }
        /// <summary>
        /// 风速
        /// </summary>
        [DataMember]
        public int windVelocity { get; set; }
        /// <summary>
        /// 光照亮强度
        /// </summary>
        [DataMember]
        public string lightStrength { get; set; }
        /// <summary>
        /// 光照亮中度
        /// </summary>
        [DataMember]
        public string lightMedium { get; set; }
        /// <summary>
        /// 光照亮轻度
        /// </summary>
        [DataMember]
        public string lightMild { get; set; }
        /// <summary>
        /// 云量>50%
        /// </summary>
        [DataMember]
        public string cloudCoverMax { get; set; }
        /// <summary>
        /// 云量<50%
        /// </summary>
        [DataMember]
        public string cloudCoverMin { get; set; }
        /// <summary>
        /// 创建时间,时间戳格式
        /// </summary>
        [DataMember]
        public string createTime { get; set; }
        /// <summary>
        /// 修改时间,时间戳格式
        /// </summary>
        [DataMember]
        public string updateTime { get; set; }
        /// <summary>
        /// 删除标志,1的为不删除,0的标识已经删除,默认为1
        /// </summary>
        [DataMember]
        public string flag { get; set; }
    }
}
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_meteorological.cs
New file
@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Web;
namespace GTech.Solution.Api.WebSite.DatabaseContent
{
    [DataContract]
    public class out_meteorological
    {
        [DataMember]
        public int id { get; set; }
        [DataMember]
        public int scenarioID { get; set; }
        [DataMember]
        public string windSpeed { get; set; }
        [DataMember]
        public string windDirection { get; set; }
        [DataMember]
        public string windMeasurementAltitude { get; set; }
        [DataMember]
        public string groundRoughness { get; set; }
        [DataMember]
        public string cloudCover { get; set; }
        [DataMember]
        public string airTemperature { get; set; }
        [DataMember]
        public string relativeHumidity { get; set; }
    }
}
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_result.cs
New file
@@ -0,0 +1,77 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Web;
namespace GTech.Solution.Api.WebSite.DatabaseContent
{
    [DataContract]
    public class out_result
    {
        [DataMember]
        public int id { get; set; }
        [DataMember]
        public int scenarioID { get; set; }
        [DataMember]
        public string fireballDiameter { get; set; }
        [DataMember]
        public string fireballBurningTime { get; set; }
        [DataMember]
        public string firepoolDiameter { get; set; }
        [DataMember]
        public string firepoolBurningTime { get; set; }
        [DataMember]
        public string burnMaxFireLength { get; set; }
        [DataMember]
        public string burnTime { get; set; }
        [DataMember]
        public string burnSpeed { get; set; }
        [DataMember]
        public string burnTotal { get; set; }
        [DataMember]
        public string burnRemark { get; set; }
        [DataMember]
        public string tankChemicalsQuality { get; set; }
        [DataMember]
        public string tankLeakTime { get; set; }
        [DataMember]
        public string tankLeakAverageSpeed { get; set; }
        [DataMember]
        public string tankLeakTotal { get; set; }
        [DataMember]
        public string tankRemark { get; set; }
        [DataMember]
        public string DirectExposureSpeed { get; set; }
        [DataMember]
        public string DirectExposureTime { get; set; }
        [DataMember]
        public string DirectExposureTotal { get; set; }
        [DataMember]
        public string DirectExposureRemark { get; set; }
        [DataMember]
        public string poisonGasX { get; set; }
        [DataMember]
        public string poisonGasY { get; set; }
        [DataMember]
        public string poisonGasIndoor { get; set; }
        [DataMember]
        public string poisonGasOutdoor { get; set; }
        [DataMember]
        public string heatRadiationX { get; set; }
        [DataMember]
        public string heatRadiationY { get; set; }
        [DataMember]
        public string heatRadiationIndoor { get; set; }
        [DataMember]
        public string heatRadiationOutdoor { get; set; }
        [DataMember]
        public string heatRadiationMax { get; set; }
        [DataMember]
        public string overpressureX { get; set; }
        [DataMember]
        public string overpressureY { get; set; }
        [DataMember]
        public string overpressureP { get; set; }
    }
}
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_result_explosion.cs
New file
@@ -0,0 +1,40 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Web;
namespace GTech.Solution.Api.WebSite.DatabaseContent
{
    [DataContract]
    public class out_result_explosion
    {
        [DataMember]
        public int id { get; set; }
        [DataMember]
        public int scenarioID { get; set; }
        [DataMember]
        public string chemicalChinese { get; set; }
        [DataMember]
        public string chemicalEnglish { get; set; }
        [DataMember]
        public string vaporCloudignitionTime { get; set; }
        [DataMember]
        public string ignitionType { get; set; }
        [DataMember]
        public string density { get; set; }
        [DataMember]
        public string concernLevel { get; set; }
        [DataMember]
        public string level1 { get; set; }
        [DataMember]
        public string level2 { get; set; }
        [DataMember]
        public string level3 { get; set; }
        [DataMember]
        public string customizeInput { get; set; }
        [DataMember]
        public string customizeOutput { get; set; }
    }
}
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_result_gas_cloud.cs
New file
@@ -0,0 +1,47 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Web;
namespace GTech.Solution.Api.WebSite.DatabaseContent
{
    [DataContract]
    public class out_result_gas_cloud
    {
        [DataMember]
        public int id { get; set; }
        [DataMember]
        public int scenarioID { get; set; }
        [DataMember]
        public string chemicalChinese { get; set; }
        [DataMember]
        public string chemicalEnglish { get; set; }
        [DataMember]
        public string concernLevel { get; set; }
        [DataMember]
        public string aegl3 { get; set; }
        [DataMember]
        public string aegl2 { get; set; }
        [DataMember]
        public string aegl1 { get; set; }
        [DataMember]
        public string erpg3 { get; set; }
        [DataMember]
        public string erpg2 { get; set; }
        [DataMember]
        public string erpg1 { get; set; }
        [DataMember]
        public string pac3 { get; set; }
        [DataMember]
        public string pac2 { get; set; }
        [DataMember]
        public string pac1 { get; set; }
        [DataMember]
        public string idlh { get; set; }
        [DataMember]
        public string customizeInput { get; set; }
        [DataMember]
        public string customizeOutput { get; set; }
    }
}
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_result_heat_radiation.cs
New file
@@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Web;
namespace GTech.Solution.Api.WebSite.DatabaseContent
{
    [DataContract]
    public class out_result_heat_radiation
    {
        [DataMember]
        public int id { get; set; }
        [DataMember]
        public int scenarioID { get; set; }
        [DataMember]
        public string chemicalChinese { get; set; }
        [DataMember]
        public string chemicalEnglish { get; set; }
        [DataMember]
        public string concernLevel { get; set; }
        [DataMember]
        public string level1 { get; set; }
        [DataMember]
        public string level2 { get; set; }
        [DataMember]
        public string level3 { get; set; }
        [DataMember]
        public string customizeInput { get; set; }
        [DataMember]
        public string customizeOutput { get; set; }
    }
}
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_result_overburnt.cs
New file
@@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Web;
namespace GTech.Solution.Api.WebSite.DatabaseContent
{
    [DataContract]
    public class out_result_overburnt
    {
        [DataMember]
        public int id { get; set; }
        [DataMember]
        public int scenarioID { get; set; }
        [DataMember]
        public string chemicalChinese { get; set; }
        [DataMember]
        public string chemicalEnglish { get; set; }
        [DataMember]
        public string concernLevel { get; set; }
        [DataMember]
        public string lel { get; set; }
        [DataMember]
        public string lel60 { get; set; }
        [DataMember]
        public string lel10 { get; set; }
        [DataMember]
        public string customizeInput { get; set; }
        [DataMember]
        public string customizeOutput { get; set; }
    }
}
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_scenar.cs
New file
@@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Web;
namespace GTech.Solution.Api.WebSite.DatabaseContent
{
    [DataContract]
    public class out_scenar
    {
        [DataMember]
        public int id { get; set; }
        [DataMember]
        public string cityName { get; set; }
        [DataMember]
        public string elevation { get; set; }
        [DataMember]
        public string longitude { get; set; }
        [DataMember]
        public string latitude { get; set; }
        [DataMember]
        public string airExchangeRate { get; set; }
        [DataMember]
        public string accidentYear { get; set; }
        [DataMember]
        public string accidentMonth { get; set; }
        [DataMember]
        public string accidentDay { get; set; }
        [DataMember]
        public string accidentHour { get; set; }
        [DataMember]
        public string accidentMinute { get; set; }
        [DataMember]
        public string createTime { get; set; }
        [DataMember]
        public string updateTime { get; set; }
        [DataMember]
        public bool flag { get; set; }
    }
}
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_source.cs
New file
@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Web;
namespace GTech.Solution.Api.WebSite.DatabaseContent
{
    [DataContract]
    public class out_source
    {
        [DataMember]
        public int id { get; set; }
        [DataMember]
        public int scenarioID { get; set; }
        [DataMember]
        public string sourceType { get; set; }
    }
}
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_source_exposure.cs
New file
@@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Web;
namespace GTech.Solution.Api.WebSite.DatabaseContent
{
    [DataContract]
    public class out_source_exposure
    {
        [DataMember]
        public int id { get; set; }
        [DataMember]
        public int scenarioID { get; set; }
        [DataMember]
        public string leakSourceType { get; set; }
        [DataMember]
        public string gasVolume { get; set; }
        [DataMember]
        public string gasSpeed { get; set; }
        [DataMember]
        public string gasDuration { get; set; }
        [DataMember]
        public string sourceHeight { get; set; }
        [DataMember]
        public string storageStatus { get; set; }
        [DataMember]
        public string chemicalsTemperature { get; set; }
        [DataMember]
        public string chemicalsPressure { get; set; }
    }
}
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_source_gas.cs
New file
@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Web;
namespace GTech.Solution.Api.WebSite.DatabaseContent
{
    [DataContract]
    public class out_source_gas
    {
        [DataMember]
        public int id { get; set; }
        [DataMember]
        public int scenarioID { get; set; }
        [DataMember]
        public string leakSourceType { get; set; }
        [DataMember]
        public string pipeDiameter { get; set; }
        [DataMember]
        public string pipeLength { get; set; }
        [DataMember]
        public string pipeAnotherSide { get; set; }
        [DataMember]
        public string pipeInnerRoughness { get; set; }
        [DataMember]
        public string pipePressure { get; set; }
        [DataMember]
        public string pipeTemperature { get; set; }
    }
}
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_source_liquid.cs
New file
@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Web;
namespace GTech.Solution.Api.WebSite.DatabaseContent
{
    [DataContract]
    public class out_source_liquid
    {
        [DataMember]
        public int id { get; set; }
        [DataMember]
        public int scenarioID { get; set; }
        [DataMember]
        public string leakSourceType { get; set; }
        [DataMember]
        public string poolArea { get; set; }
        [DataMember]
        public string poolVolume { get; set; }
        [DataMember]
        public string poolType { get; set; }
        [DataMember]
        public string poolGroundTemperature { get; set; }
        [DataMember]
        public string initialPoolTemperature { get; set; }
    }
}
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_source_tank.cs
New file
@@ -0,0 +1,63 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Web;
namespace GTech.Solution.Api.WebSite.DatabaseContent
{
    [DataContract]
    public class out_source_tank
    {
        [DataMember]
        public int id { get; set; }
        [DataMember]
        public int scenarioID { get; set; }
        [DataMember]
        public string tankType { get; set; }
        [DataMember]
        public string tankDiameter { get; set; }
        [DataMember]
        public string tankLength { get; set; }
        [DataMember]
        public string chemicalsStatus { get; set; }
        [DataMember]
        public string liquidVolume { get; set; }
        [DataMember]
        public string gasPressure { get; set; }
        [DataMember]
        public string chemicalsNumber { get; set; }
        [DataMember]
        public string chemicalsTemperature { get; set; }
        [DataMember]
        public string failureType { get; set; }
        [DataMember]
        public string burnedAmount { get; set; }
        [DataMember]
        public string massPercentage { get; set; }
        [DataMember]
        public string failureTankPressure { get; set; }
        [DataMember]
        public string failureTankTemperature { get; set; }
        [DataMember]
        public string leakHoleType { get; set; }
        [DataMember]
        public string holeDiameter { get; set; }
        [DataMember]
        public string holeLength { get; set; }
        [DataMember]
        public string holeWidth { get; set; }
        [DataMember]
        public string holeHeight { get; set; }
        [DataMember]
        public string groundType { get; set; }
        [DataMember]
        public string groundTemperature { get; set; }
        [DataMember]
        public string poolSize { get; set; }
        [DataMember]
        public string poolDiameter { get; set; }
        [DataMember]
        public string poolArea { get; set; }
    }
}
WebApi/GTech.Solution.Api.WebSite/DatabaseContent/out_surface.cs
New file
@@ -0,0 +1,75 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Web;
namespace GTech.Solution.Api.WebSite.DatabaseContent
{
    /// <summary>
    /// 地表粗糙度与大气稳定等级
    /// </summary>
    [DataContract]
    public class out_surface
    {
        [DataMember]
        public int id { get; set; }
        /// <summary>
        /// 大地表粗糙度类别
        /// 粗糙度分为城市地区,农村地区
        /// city:城市地区,countryside:农村地区
        /// </summary>
        [DataMember]
        public string surfaceType { get; set; }
        /// <summary>
        /// 系数 sx1,sx2,sy1,sy2,sz1,sz1,sz1,
        /// </summary>
        [DataMember]
        public string coefficient { get; set; }
        /// <summary>
        /// 大气稳定等级A
        /// </summary>
        [DataMember]
        public string atmosphereGradeA { get; set; }
        /// <summary>
        /// 大气稳定等级B
        /// </summary>
        [DataMember]
        public string atmosphereGradeB { get; set; }
        /// <summary>
        /// 大气稳定等级C
        /// </summary>
        [DataMember]
        public string atmosphereGradeC { get; set; }
        /// <summary>
        /// 大气稳定等级D
        /// </summary>
        [DataMember]
        public string atmosphereGradeD { get; set; }
        /// <summary>
        /// 大气稳定等级E
        /// </summary>
        [DataMember]
        public string atmosphereGradeE { get; set; }
        /// <summary>
        /// 大气稳定等级F
        /// </summary>
        [DataMember]
        public string atmosphereGradeF { get; set; }
        /// <summary>
        /// 创建时间,时间戳格式
        /// </summary>
        [DataMember]
        public string createTime { get; set; }
        /// <summary>
        /// 修改时间,时间戳格式
        /// </summary>
        [DataMember]
        public string updateTime { get; set; }
        /// <summary>
        /// 删除标志,1的为不删除,0的标识已经删除,默认为1
        /// </summary>
        [DataMember]
        public bool flag { get; set; }
    }
}
WebApi/GTech.Solution.Api.WebSite/GTech.Solution.Api.WebSite.csproj
New file
@@ -0,0 +1,232 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>
    </ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{33766936-4425-4E2C-B196-A5C1772560E9}</ProjectGuid>
    <ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>GTech.Solution.Api.WebSite</RootNamespace>
    <AssemblyName>GTech.Solution.Api.WebSite</AssemblyName>
    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
    <WcfConfigValidationEnabled>True</WcfConfigValidationEnabled>
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    <UseIISExpress>true</UseIISExpress>
    <IISExpressSSLPort />
    <IISExpressAnonymousAuthentication />
    <IISExpressWindowsAuthentication />
    <IISExpressUseClassicPipelineMode />
    <UseGlobalApplicationHostFile />
    <Use64BitIISExpress />
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="EntityFramework">
      <HintPath>..\Library\EntityFramework.dll</HintPath>
    </Reference>
    <Reference Include="EntityFramework.SqlServer">
      <HintPath>..\Library\EntityFramework.SqlServer.dll</HintPath>
    </Reference>
    <Reference Include="EPPlus">
      <HintPath>..\Library\EPPlus.dll</HintPath>
    </Reference>
    <Reference Include="FTPMethod">
      <HintPath>..\Library\FTPMethod.dll</HintPath>
    </Reference>
    <Reference Include="JWT, Version=7.0.0.0, Culture=neutral, PublicKeyToken=6f98bca0f40f2ecf, processorArchitecture=MSIL">
      <HintPath>..\packages\JWT.7.3.0\lib\net46\JWT.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="Microsoft.AI.Agent.Intercept, Version=1.2.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
      <HintPath>..\packages\Microsoft.ApplicationInsights.Agent.Intercept.1.2.1\lib\net45\Microsoft.AI.Agent.Intercept.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="Microsoft.AI.DependencyCollector, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
      <HintPath>..\packages\Microsoft.ApplicationInsights.DependencyCollector.2.0.0\lib\net45\Microsoft.AI.DependencyCollector.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="Microsoft.AI.PerfCounterCollector, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
      <HintPath>..\packages\Microsoft.ApplicationInsights.PerfCounterCollector.2.0.0\lib\net45\Microsoft.AI.PerfCounterCollector.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="Microsoft.AI.ServerTelemetryChannel, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
      <HintPath>..\packages\Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.0.0\lib\net45\Microsoft.AI.ServerTelemetryChannel.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="Microsoft.AI.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
      <HintPath>..\packages\Microsoft.ApplicationInsights.Web.2.0.0\lib\net45\Microsoft.AI.Web.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="Microsoft.AI.WindowsServer, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
      <HintPath>..\packages\Microsoft.ApplicationInsights.WindowsServer.2.0.0\lib\net45\Microsoft.AI.WindowsServer.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="Microsoft.ApplicationInsights, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
      <HintPath>..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net46\Microsoft.ApplicationInsights.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="MySql.Data, Version=8.0.19.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\Library\MySql.Data.dll</HintPath>
    </Reference>
    <Reference Include="MySql.Data.Entity.EF6">
      <HintPath>..\Library\MySql.Data.Entity.EF6.dll</HintPath>
    </Reference>
    <Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
      <HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="SQLite.CodeFirst">
      <HintPath>..\Library\SQLite.CodeFirst.dll</HintPath>
    </Reference>
    <Reference Include="System.Data.SQLite">
      <HintPath>..\Library\System.Data.SQLite.dll</HintPath>
    </Reference>
    <Reference Include="System.Data.SQLite.EF6">
      <HintPath>..\Library\System.Data.SQLite.EF6.dll</HintPath>
    </Reference>
    <Reference Include="System.Data.SQLite.Linq">
      <HintPath>..\Library\System.Data.SQLite.Linq.dll</HintPath>
    </Reference>
    <Reference Include="System.Web.DynamicData" />
    <Reference Include="System.Web.Entity" />
    <Reference Include="System.Web.ApplicationServices" />
    <Reference Include="System" />
    <Reference Include="System.Configuration" />
    <Reference Include="System.Core" />
    <Reference Include="System.Data" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.EnterpriseServices" />
    <Reference Include="System.Runtime.Serialization" />
    <Reference Include="System.ServiceModel" />
    <Reference Include="System.ServiceModel.Web" />
    <Reference Include="System.Web" />
    <Reference Include="System.Web.Extensions" />
    <Reference Include="System.Web.Services" />
    <Reference Include="System.Xml" />
    <Reference Include="System.Xml.Linq" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="Global.asax" />
    <Content Include="scripts\ai.0.22.9-build00167.js" />
    <Content Include="scripts\ai.0.22.9-build00167.min.js" />
    <Content Include="TruckAlarm.svc" />
    <Content Include="Web.config">
      <SubType>Designer</SubType>
    </Content>
    <None Include="Properties\PublishProfiles\TMSAPI.pubxml" />
    <None Include="Webhttps.config" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="ApiServicesBase.cs" />
    <Compile Include="DatabaseContent\out_chemicals.cs" />
    <Compile Include="DatabaseContent\out_light_cloud.cs" />
    <Compile Include="DatabaseContent\out_meteorological.cs" />
    <Compile Include="DatabaseContent\out_result.cs" />
    <Compile Include="DatabaseContent\out_result_explosion.cs" />
    <Compile Include="DatabaseContent\out_result_gas_cloud.cs" />
    <Compile Include="DatabaseContent\out_result_heat_radiation.cs" />
    <Compile Include="DatabaseContent\out_result_overburnt.cs" />
    <Compile Include="DatabaseContent\out_scenar.cs" />
    <Compile Include="DatabaseContent\out_source.cs" />
    <Compile Include="DatabaseContent\out_source_exposure.cs" />
    <Compile Include="DatabaseContent\out_source_gas.cs" />
    <Compile Include="DatabaseContent\out_source_liquid.cs" />
    <Compile Include="DatabaseContent\out_source_tank.cs" />
    <Compile Include="DatabaseContent\out_surface.cs" />
    <Compile Include="DatabaseContent\TDatabaseContext.cs" />
    <Compile Include="Global.asax.cs">
      <DependentUpon>Global.asax</DependentUpon>
    </Compile>
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="TruckAlarm.svc.cs">
      <DependentUpon>TruckAlarm.svc</DependentUpon>
    </Compile>
  </ItemGroup>
  <ItemGroup>
    <Folder Include="App_Data\" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="packages.config" />
    <Content Include="ApplicationInsights.config">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <None Include="Web.Debug.config">
      <DependentUpon>Web.config</DependentUpon>
    </None>
    <None Include="Web.Release.config">
      <DependentUpon>Web.config</DependentUpon>
    </None>
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\GTech.Solution.Api.Common\GTech.Solution.Api.Common.csproj">
      <Project>{8f7dff8f-296b-457f-a667-941ee23abf0b}</Project>
      <Name>GTech.Solution.Api.Common</Name>
    </ProjectReference>
    <ProjectReference Include="..\GTech.Solution.Api.Contract\GTech.Solution.Api.Contract.csproj">
      <Project>{13b3bd45-ebd9-477d-bf78-472dd065e7a2}</Project>
      <Name>GTech.Solution.Api.Contract</Name>
    </ProjectReference>
    <ProjectReference Include="..\GTech.Solution.Api.Domain\GTech.Solution.Api.Domain.csproj">
      <Project>{4a2930de-7bf4-4368-b6ad-b74b9043da7d}</Project>
      <Name>GTech.Solution.Api.Domain</Name>
    </ProjectReference>
  </ItemGroup>
  <ItemGroup>
    <WCFMetadata Include="Service References\" />
  </ItemGroup>
  <PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
  </PropertyGroup>
  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
  <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
  <ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
        <WebProjectProperties>
          <UseIIS>True</UseIIS>
          <AutoAssignPort>True</AutoAssignPort>
          <DevelopmentServerPort>2925</DevelopmentServerPort>
          <DevelopmentServerVPath>/</DevelopmentServerVPath>
          <IISUrl>http://localhost:2306/</IISUrl>
          <NTLMAuthentication>False</NTLMAuthentication>
          <UseCustomServer>False</UseCustomServer>
          <CustomServerUrl>
          </CustomServerUrl>
          <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
        </WebProjectProperties>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
</Project>
WebApi/GTech.Solution.Api.WebSite/GTech.Solution.Api.WebSite.csproj.user
New file
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <UseIISExpress>true</UseIISExpress>
    <ProjectView>ProjectFiles</ProjectView>
    <NameOfLastUsedPublishProfile>TMSAPI</NameOfLastUsedPublishProfile>
    <LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig>
    <Use64BitIISExpress />
    <IISExpressSSLPort />
    <IISExpressAnonymousAuthentication />
    <IISExpressWindowsAuthentication />
    <IISExpressUseClassicPipelineMode />
    <UseGlobalApplicationHostFile />
  </PropertyGroup>
  <ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
        <WebProjectProperties>
          <StartPageUrl>TruckAlarm.svc</StartPageUrl>
          <StartAction>SpecificPage</StartAction>
          <AspNetDebugging>True</AspNetDebugging>
          <SilverlightDebugging>False</SilverlightDebugging>
          <NativeDebugging>False</NativeDebugging>
          <SQLDebugging>False</SQLDebugging>
          <ExternalProgram>
          </ExternalProgram>
          <StartExternalURL>
          </StartExternalURL>
          <StartCmdLineArguments>
          </StartCmdLineArguments>
          <StartWorkingDirectory>
          </StartWorkingDirectory>
          <EnableENC>True</EnableENC>
          <AlwaysStartWebServerOnDebug>True</AlwaysStartWebServerOnDebug>
        </WebProjectProperties>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
</Project>
WebApi/GTech.Solution.Api.WebSite/Global.asax
New file
@@ -0,0 +1 @@
<%@ Application Codebehind="Global.asax.cs" Inherits="GTech.Solution.Api.Global" Language="C#" %>
WebApi/GTech.Solution.Api.WebSite/Global.asax.cs
New file
@@ -0,0 +1,140 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Web;
using GTech.Solution.Api.Common.Common;
namespace GTech.Solution.Api
{
    public class Global : System.Web.HttpApplication
    {
        protected void Application_Start(object sender, EventArgs e)
        {
        }
        protected void Application_BeginRequest(object sender, EventArgs e)
        {
            var context = HttpContext.Current;
            var request = context.Request;
            var response = context.Response;
            HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
            if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
            {
                HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "*");
                HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "*");
                HttpContext.Current.Response.AddHeader("Access-Control-Request-Headers", "*");
                HttpContext.Current.Response.End();
            }
            CheckAccessPermission(request, response);
        }
        private void CheckAccessPermission(HttpRequest request, HttpResponse response)
        {
            try
            {
                var requestHeader = request.Headers;
                var requestUrl = request.Url;
                var token = request.Headers["Authorization"];
                var isNeedValidateJwtToken = true;
                if (requestUrl.AbsolutePath == "/")
                {
                    isNeedValidateJwtToken = false;
                }
                else
                {
                    var IgnoringAntPathRequestMatcher = new List<string>();
                    var ignoringAntPathRequestMatcherStr = ConfigurationManager.AppSettings["IgnoringAntPathRequestMatcher"];
                    if (!string.IsNullOrEmpty(ignoringAntPathRequestMatcherStr))
                    {
                        var ignoringAntPathRequestMatcherArray = ignoringAntPathRequestMatcherStr.Split(',');
                        IgnoringAntPathRequestMatcher.AddRange(ignoringAntPathRequestMatcherArray);
                    }
                    IgnoringAntPathRequestMatcher.ForEach(en =>
                    {
                        if (requestUrl.AbsolutePath.Contains(en))
                        {
                            isNeedValidateJwtToken = false;
                        }
                    });
                }
                if (isNeedValidateJwtToken)
                {
                    TokenGenerator.ValidateJwtToken(token);
                    var userbasic = TokenGenerator.GetUserbasic(token);
                    if (userbasic != null)
                    {
                        //Check permissions
                    }
                }
            }
            catch (Exception ex)
            {
                response.ContentType = "application/json";
                response.Write(ex.Message);
                response.End();
            }
        }
        protected void Application_EndRequest(object sender, EventArgs e)
        {
        }
        protected void Application_Error(object sender, EventArgs e)
        {
            Exception exception = Server.GetLastError();
            try
            {
            }
            catch { }
        }
        protected void Application_End(object sender, EventArgs e)
        {
            try
            {
            }
            catch { }
        }
        private ResponseCompressionType GetCompressionMode(HttpRequest request)
        {
            string acceptEncoding = request.Headers["Accept-Encoding"];
            if (string.IsNullOrEmpty(acceptEncoding))
            {
                return ResponseCompressionType.None;
            }
            acceptEncoding = acceptEncoding.ToUpperInvariant();
            if (acceptEncoding.Contains("GZIP"))
            {
                return ResponseCompressionType.GZip;
            }
            else if (acceptEncoding.Contains("DEFLATE"))
            {
                return ResponseCompressionType.Deflate;
            }
            else
            {
                return ResponseCompressionType.None;
            }
        }
        private enum ResponseCompressionType { None, GZip, Deflate }
    }
}
WebApi/GTech.Solution.Api.WebSite/Properties/AssemblyInfo.cs
New file
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("GTech.Solution.Api.WebSite")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("GTech.Solution.Api.WebSite")]
[assembly: AssemblyCopyright("Copyright ©  2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components.  If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("33766936-4425-4e2c-b196-a5c1772560e9")]
// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
WebApi/GTech.Solution.Api.WebSite/Properties/PublishProfiles/TMSAPI.pubxml
New file
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <publishUrl>C:\TruckAlarmApi</publishUrl>
    <DeleteExistingFiles>False</DeleteExistingFiles>
  </PropertyGroup>
</Project>
WebApi/GTech.Solution.Api.WebSite/Properties/PublishProfiles/TMSAPI.pubxml.user
New file
@@ -0,0 +1,254 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <TimeStampOfAssociatedLegacyPublishXmlFile />
    <_PublishTargetUrl>C:\TruckAlarmApi</_PublishTargetUrl>
    <History>True|2021-05-10T13:55:20.5225650Z;True|2021-05-10T00:49:53.5973207+08:00;True|2021-05-10T00:48:15.3088741+08:00;True|2021-04-29T16:31:54.6031676+08:00;True|2021-04-29T15:37:36.8614687+08:00;</History>
  </PropertyGroup>
  <ItemGroup>
    <File Include="ApplicationInsights.config">
      <publishTime>11/02/2020 17:06:19</publishTime>
    </File>
    <File Include="bin/ApplicationInsights.config">
      <publishTime>11/02/2020 17:06:19</publishTime>
    </File>
    <File Include="bin/EntityFramework.dll">
      <publishTime>10/23/2017 13:15:18</publishTime>
    </File>
    <File Include="bin/EntityFramework.SqlServer.dll">
      <publishTime>10/23/2017 13:15:20</publishTime>
    </File>
    <File Include="bin/EPPlus.dll">
      <publishTime>07/16/2020 17:32:06</publishTime>
    </File>
    <File Include="bin/FTPMethod.dll">
      <publishTime>07/16/2020 17:31:40</publishTime>
    </File>
    <File Include="bin/GTech.Solution.Api.Common.dll">
      <publishTime>05/25/2021 14:11:47</publishTime>
    </File>
    <File Include="bin/GTech.Solution.Api.Contract.dll">
      <publishTime>05/25/2021 14:11:47</publishTime>
    </File>
    <File Include="bin/GTech.Solution.Api.Domain.dll">
      <publishTime>05/25/2021 14:11:47</publishTime>
    </File>
    <File Include="bin/GTech.Solution.Api.WebSite.dll">
      <publishTime>05/25/2021 14:11:47</publishTime>
    </File>
    <File Include="bin/JWT.dll">
      <publishTime>10/30/2020 23:14:04</publishTime>
    </File>
    <File Include="bin/JWT.pdb">
      <publishTime>10/30/2020 23:14:04</publishTime>
    </File>
    <File Include="bin/Microsoft.AI.Agent.Intercept.dll">
      <publishTime>12/07/2015 19:04:38</publishTime>
    </File>
    <File Include="bin/Microsoft.AI.DependencyCollector.dll">
      <publishTime>03/10/2016 14:26:18</publishTime>
    </File>
    <File Include="bin/Microsoft.AI.PerfCounterCollector.dll">
      <publishTime>03/10/2016 14:26:26</publishTime>
    </File>
    <File Include="bin/Microsoft.AI.ServerTelemetryChannel.dll">
      <publishTime>03/09/2016 12:00:14</publishTime>
    </File>
    <File Include="bin/Microsoft.AI.Web.dll">
      <publishTime>03/10/2016 14:26:26</publishTime>
    </File>
    <File Include="bin/Microsoft.AI.WindowsServer.dll">
      <publishTime>03/10/2016 14:26:26</publishTime>
    </File>
    <File Include="bin/Microsoft.ApplicationInsights.dll">
      <publishTime>03/09/2016 11:57:34</publishTime>
    </File>
    <File Include="bin/MSOPCServer.Client.MSOPCClient.dll">
      <publishTime>07/16/2020 17:31:42</publishTime>
    </File>
    <File Include="bin/MSOPCServer.ClientContract.dll">
      <publishTime>07/16/2020 17:31:42</publishTime>
    </File>
    <File Include="bin/MSOPCServer.ServiceContract.dll">
      <publishTime>07/16/2020 17:31:42</publishTime>
    </File>
    <File Include="bin/MSOPCServer.ServiceModel.dll">
      <publishTime>07/16/2020 17:31:43</publishTime>
    </File>
    <File Include="bin/MSOPCServer.Workers.Utils.dll">
      <publishTime>07/16/2020 17:31:43</publishTime>
    </File>
    <File Include="bin/MySql.Data.dll">
      <publishTime>08/07/2018 02:21:58</publishTime>
    </File>
    <File Include="bin/MySql.Data.Entity.EF6.dll">
      <publishTime>08/07/2018 02:22:26</publishTime>
    </File>
    <File Include="bin/Newtonsoft.Json.dll">
      <publishTime>06/13/2016 23:06:14</publishTime>
    </File>
    <File Include="bin/OpcNetApi.dll">
      <publishTime>07/16/2020 17:31:49</publishTime>
    </File>
    <File Include="bin/SQLite.CodeFirst.dll">
      <publishTime>07/16/2020 19:32:45</publishTime>
    </File>
    <File Include="bin/System.Data.SQLite.dll">
      <publishTime>08/12/2018 21:34:02</publishTime>
    </File>
    <File Include="bin/System.Data.SQLite.EF6.dll">
      <publishTime>08/12/2018 21:34:04</publishTime>
    </File>
    <File Include="bin/System.Data.SQLite.Linq.dll">
      <publishTime>08/12/2018 21:34:02</publishTime>
    </File>
    <File Include="bin/Yokogawa.License.dll">
      <publishTime>07/16/2020 17:31:45</publishTime>
    </File>
    <File Include="bin/Yokogawa.TLSVP.Api.Common.dll">
      <publishTime>05/19/2021 00:17:38</publishTime>
    </File>
    <File Include="bin/Yokogawa.TLSVP.Api.Common.pdb">
      <publishTime>05/10/2021 21:54:46</publishTime>
    </File>
    <File Include="bin/Yokogawa.TLSVP.Api.Contract.dll">
      <publishTime>05/19/2021 00:17:38</publishTime>
    </File>
    <File Include="bin/Yokogawa.TLSVP.Api.Contract.pdb">
      <publishTime>05/10/2021 21:54:45</publishTime>
    </File>
    <File Include="bin/Yokogawa.TLSVP.Api.dll">
      <publishTime>11/12/2020 10:32:24</publishTime>
    </File>
    <File Include="bin/Yokogawa.TLSVP.Api.Domain.dll">
      <publishTime>05/19/2021 00:17:37</publishTime>
    </File>
    <File Include="bin/Yokogawa.TLSVP.Api.Domain.pdb">
      <publishTime>05/10/2021 21:54:45</publishTime>
    </File>
    <File Include="bin/Yokogawa.TLSVP.Api.WebSite.dll">
      <publishTime>05/19/2021 00:17:38</publishTime>
    </File>
    <File Include="bin/Yokogawa.TLSVP.Api.WebSite.pdb">
      <publishTime>05/10/2021 21:54:46</publishTime>
    </File>
    <File Include="bin/Yokogawa.TLSVP.CommonMasterData.dll">
      <publishTime>02/04/2021 14:17:56</publishTime>
    </File>
    <File Include="bin/Yokogawa.TLSVP.Core.Interface.dll">
      <publishTime>07/16/2020 17:31:47</publishTime>
    </File>
    <File Include="bin/Yokogawa.TLSVP.Core.Service.dll">
      <publishTime>07/16/2020 17:31:45</publishTime>
    </File>
    <File Include="bin/Yokogawa.TLSVP.Core.ServiceInterface.dll">
      <publishTime>07/16/2020 17:31:45</publishTime>
    </File>
    <File Include="bin/Yokogawa.TLSVP.PageOrganizer.dll">
      <publishTime>07/16/2020 17:31:45</publishTime>
    </File>
    <File Include="bin/Yokogawa.Utilities.AuditTrail.Client.dll">
      <publishTime>07/16/2020 17:31:45</publishTime>
    </File>
    <File Include="bin/Yokogawa.Utilities.AuditTrail.ServiceInterface.dll">
      <publishTime>07/16/2020 17:31:45</publishTime>
    </File>
    <File Include="bin/Yokogawa.Utilities.Configuration.Client.dll">
      <publishTime>07/16/2020 17:31:45</publishTime>
    </File>
    <File Include="bin/Yokogawa.Utilities.Configuration.Service.dll">
      <publishTime>07/16/2020 17:31:46</publishTime>
    </File>
    <File Include="bin/Yokogawa.Utilities.Configuration.ServiceInterface.dll">
      <publishTime>07/16/2020 17:31:46</publishTime>
    </File>
    <File Include="bin/Yokogawa.Utilities.Log.Client.dll">
      <publishTime>07/16/2020 17:31:47</publishTime>
    </File>
    <File Include="bin/Yokogawa.Utilities.Log.Interface.dll">
      <publishTime>07/16/2020 17:31:46</publishTime>
    </File>
    <File Include="bin/Yokogawa.Utilities.Log.Service.dll">
      <publishTime>07/16/2020 17:31:47</publishTime>
    </File>
    <File Include="bin/Yokogawa.Utilities.ReportPrint.Client.dll">
      <publishTime>07/16/2020 17:31:47</publishTime>
    </File>
    <File Include="bin/Yokogawa.Utilities.ReportPrint.ServiceInterface.dll">
      <publishTime>07/16/2020 17:31:47</publishTime>
    </File>
    <File Include="bin/Yokogawa.Utilities.Security.Client.dll">
      <publishTime>07/16/2020 17:31:48</publishTime>
    </File>
    <File Include="bin/Yokogawa.Utilities.Security.Entity.dll">
      <publishTime>07/16/2020 17:31:51</publishTime>
    </File>
    <File Include="bin/Yokogawa.Utilities.Security.Interface.dll">
      <publishTime>07/16/2020 17:31:48</publishTime>
    </File>
    <File Include="bin/Yokogawa.Utilities.Timer.dll">
      <publishTime>07/16/2020 17:31:48</publishTime>
    </File>
    <File Include="bin/Yokogawa.Utilities.WebMultiLanguages.dll">
      <publishTime>07/16/2020 17:31:48</publishTime>
    </File>
    <File Include="bin/Yokogawa.Web.UI.WebControls.ComboBox.dll">
      <publishTime>07/16/2020 17:31:49</publishTime>
    </File>
    <File Include="CalculateDataServices.svc">
      <publishTime>05/18/2021 15:20:39</publishTime>
    </File>
    <File Include="EarthquakeAffectedAreaServices.svc">
      <publishTime>05/18/2021 16:11:18</publishTime>
    </File>
    <File Include="Global.asax">
      <publishTime>05/25/2021 13:36:42</publishTime>
    </File>
    <File Include="GrasslandFireDisasterServices.svc">
      <publishTime>05/18/2021 22:36:06</publishTime>
    </File>
    <File Include="GrasslandFloodDisasterServices.svc">
      <publishTime>05/18/2021 22:53:08</publishTime>
    </File>
    <File Include="JobTransactionMonitorServices.svc">
      <publishTime>11/12/2020 14:56:02</publishTime>
    </File>
    <File Include="MasterDataServices.svc">
      <publishTime>11/03/2020 11:21:00</publishTime>
    </File>
    <File Include="OrderManagementServices.svc">
      <publishTime>11/12/2020 14:56:38</publishTime>
    </File>
    <File Include="packages.config">
      <publishTime>11/02/2020 18:08:10</publishTime>
    </File>
    <File Include="scripts/ai.0.22.9-build00167.js">
      <publishTime>11/02/2020 17:06:19</publishTime>
    </File>
    <File Include="scripts/ai.0.22.9-build00167.min.js">
      <publishTime>11/02/2020 17:06:19</publishTime>
    </File>
    <File Include="SecurityServices.svc">
      <publishTime>11/03/2020 15:31:23</publishTime>
    </File>
    <File Include="TankInventoryServices.svc">
      <publishTime>11/12/2020 14:57:00</publishTime>
    </File>
    <File Include="TruckAlarm.svc">
      <publishTime>05/25/2021 13:53:16</publishTime>
    </File>
    <File Include="VesselNominationHandlingServices.svc">
      <publishTime>11/12/2020 14:57:13</publishTime>
    </File>
    <File Include="VesselShipmentManagementServices.svc">
      <publishTime>11/12/2020 14:57:23</publishTime>
    </File>
    <File Include="Web.config">
      <publishTime>05/25/2021 14:12:09</publishTime>
    </File>
  </ItemGroup>
</Project>
WebApi/GTech.Solution.Api.WebSite/TruckAlarm.svc
New file
@@ -0,0 +1,4 @@
<%@ ServiceHost Language="C#" Debug="true"
    Service="GTech.Solution.Api.WebSite.TruckAlarm"
    CodeBehind="TruckAlarm.svc.cs"
    Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory"%>
WebApi/GTech.Solution.Api.WebSite/TruckAlarm.svc.cs
New file
@@ -0,0 +1,77 @@
using System;
using System.Collections.Generic;
using System.ServiceModel.Activation;
using GTech.Solution.Api.Contract;
using GTech.Solution.Api.Domain.Model;
using GTech.Solution.Api.Domain.Option;
namespace GTech.Solution.Api.WebSite
{
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public class TruckAlarm : ApiServicesBase, ITruckAlarm
    {
        public ApiData<TruckAlarmResult> POSTAlarm(TruckAlarmData dto)
        {
            ApiData<TruckAlarmResult> data = new ApiData<TruckAlarmResult>();
            string message = string.Empty;
            if (doCheck(dto, out message))
            {
                var result = AlarmHandler(dto, out message);
                if (result != null)
                {
                    data.Code = (int)ApiDataStatus.SUCCESS;
                    data.Status = ApiDataStatus.SUCCESS.ToString();
                    data.Message = "Operation is successful!";
                    data.Data = result;
                }
                else
                {
                    data.Code = (int)ApiDataStatus.FAILED;
                    data.Status = ApiDataStatus.FAILED.ToString();
                    data.Message = message;
                    data.Data = null;
                }
            }
            else
            {
                data.Code = (int)ApiDataStatus.FAILED;
                data.Status = ApiDataStatus.FAILED.ToString();
                data.Message = message;
                data.Data = null;
            }
            return data;
        }
        private bool doCheck(TruckAlarmData dto, out string message)
        {
            message = string.Empty;
            return true;
        }
        private TruckAlarmResult AlarmHandler(TruckAlarmData dto, out string message)
        {
            TruckAlarmResult result = new TruckAlarmResult();
            message = string.Empty;
            try
            {
                result.name = dto.name;
                result.cam_ip = dto.cam_ip;
                result.distance = dto.distance;
                //TODO: handle alarm logic
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                message = "服务器内部错误,请稍后重试或联系服务器管理员!错误信息:" + e.StackTrace;
                return null;
            }
            return result;
        }
    }
}
WebApi/GTech.Solution.Api.WebSite/Web.Debug.config
New file
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <!--
    In the example below, the "SetAttributes" transform will change the value of
    "connectionString" to use "ReleaseSQLServer" only when the "Match" locator
    finds an attribute "name" that has a value of "MyDB".
    <connectionStrings>
      <add name="MyDB"
        connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
        xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
    </connectionStrings>
  -->
  <system.web>
    <!--
      In the example below, the "Replace" transform will replace the entire
      <customErrors> section of your web.config file.
      Note that because there is only one customErrors section under the
      <system.web> node, there is no need to use the "xdt:Locator" attribute.
      <customErrors defaultRedirect="GenericError.htm"
        mode="RemoteOnly" xdt:Transform="Replace">
        <error statusCode="500" redirect="InternalError.htm"/>
      </customErrors>
    -->
  </system.web>
</configuration>
WebApi/GTech.Solution.Api.WebSite/Web.Release.config
New file
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <!--
    In the example below, the "SetAttributes" transform will change the value of
    "connectionString" to use "ReleaseSQLServer" only when the "Match" locator
    finds an attribute "name" that has a value of "MyDB".
    <connectionStrings>
      <add name="MyDB"
        connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
        xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
    </connectionStrings>
  -->
  <system.web>
    <compilation xdt:Transform="RemoveAttributes(debug)" />
    <!--
      In the example below, the "Replace" transform will replace the entire
      <customErrors> section of your web.config file.
      Note that because there is only one customErrors section under the
      <system.web> node, there is no need to use the "xdt:Locator" attribute.
      <customErrors defaultRedirect="GenericError.htm"
        mode="RemoteOnly" xdt:Transform="Replace">
        <error statusCode="500" redirect="InternalError.htm"/>
      </customErrors>
    -->
  </system.web>
</configuration>
WebApi/GTech.Solution.Api.WebSite/Web.config
New file
@@ -0,0 +1,128 @@
<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true"/>
    <add key="IgnoringAntPathRequestMatcher"
         value="TruckAlarm.svc" />
  </appSettings>
  <connectionStrings>
    <add name="Default" connectionString="Data Source=39.98.182.30;port=3306;Initial Catalog=calculte;user id=root;password=abcd,.1234;" providerName="MySql.Data.MySqlClient" />
  </connectionStrings>
  <system.web>
    <customErrors mode="Off" />
    <compilation debug="true" targetFramework="4.6.1" />
    <authentication mode="None" />
    <httpRuntime maxRequestLength="2097151" />
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" />
  </system.web>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
      </customHeaders>
    </httpProtocol>
    <modules runAllManagedModulesForAllRequests="false" />
    <staticContent>
      <mimeMap fileExtension=".apk" mimeType="application/vnd.android.package-archive" />
      <mimeMap fileExtension=".svc" mimeType="application/octet-stream" />
    </staticContent>
    <directoryBrowse enabled="false" />
  </system.webServer>
  <!--<system.diagnostics>
    <trace autoflush="true" />
    <sources>
      <source name="System.ServiceModel.MessageLogging">
        <listeners>
          <add name="ServiceModelMessageLoggingListener">
            <filter type="" />
          </add>
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add initializeData="Logs\Messages.svclog"
           type="System.Diagnostics.XmlWriterTraceListener"
           name="ServiceModelMessageLoggingListener"
           traceOutputOptions="Timestamp">
        <filter type="" />
      </add>
    </sharedListeners>
  </system.diagnostics>-->
  <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
    <diagnostics>
      <messageLogging logEntireMessage="true"
                      logMalformedMessages="true"
                      logMessagesAtServiceLevel="true"
                      logMessagesAtTransportLevel="true"
                      maxMessagesToLog="2147483647"
                      maxSizeOfMessageToLog="2147483647" />
    </diagnostics>
    <services>
      <service behaviorConfiguration="GTech.Solution.Api.AppServiceBehavior"
        name="GTech.Solution.Api.WebSite.TruckAlarm">
        <endpoint address="" behaviorConfiguration="WebHttpBindingBehavior"
          binding="webHttpBinding" bindingConfiguration="MyServiceBinding"
          contract="GTech.Solution.Api.Contract.ITruckAlarm" />
      </service>
    </services>
    <behaviors>
      <endpointBehaviors>
        <behavior name="WebHttpBindingBehavior">
          <webHttp />
        </behavior>
        <behavior name="webHttp">
          <webHttp helpEnabled="true" />
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior name="GTech.Solution.Api.AppServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
        <behavior name="">
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <bindings>
      <webHttpBinding>
        <binding name="MyServiceBinding" sendTimeout="00:10:00" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferPoolSize="2147483647">
          <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <security mode="None" />
        </binding>
        <binding name="webHttpBindConfig" receiveTimeout="00:30:00" sendTimeout="00:30:00" maxReceivedMessageSize="104857600" transferMode="Streamed">
          <readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647" />
          <security mode="None" />
        </binding>
      </webHttpBinding>
      <basicHttpBinding />
    </bindings>
    <client />
  </system.serviceModel>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.10.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
      <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
    </providers>
  </entityFramework>
  <system.data>
    <DbProviderFactories>
      <remove invariant="MySql.Data.MySqlClient" />
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.10.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
      <remove invariant="System.Data.SQLite.EF6" />
      <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
      <remove invariant="System.Data.SQLite" />
      <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
    </DbProviderFactories>
  </system.data>
</configuration>
WebApi/GTech.Solution.Api.WebSite/Webhttps.config
New file
@@ -0,0 +1,139 @@
<?xml version="1.0"?>
<configuration>
  <appSettings>
    <add key="ConfigServer" value="175.24.53.180" />
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true"/>
    <add key="IgnoringAntPathRequestMatcher" value="SecurityServices.svc,MasterDataServices.svc" />
  </appSettings>
  <system.web>
    <customErrors mode="Off"/>
    <compilation debug="true" targetFramework="4.6.1" />
    <authentication mode="None"/>
    <httpRuntime maxRequestLength="2097151"/>
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
  </system.web>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <!--<add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="*" />
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE" />-->
      </customHeaders>
    </httpProtocol>
    <modules runAllManagedModulesForAllRequests="false"/>
    <staticContent>
      <mimeMap fileExtension=".apk" mimeType="application/vnd.android.package-archive"/>
      <mimeMap fileExtension=".svc" mimeType="application/octet-stream"/>
    </staticContent>
    <directoryBrowse enabled="false"/>
  </system.webServer>
  <system.diagnostics>
    <trace autoflush="true" />
    <sources>
      <source name="System.ServiceModel.MessageLogging">
        <listeners>
          <add name="ServiceModelMessageLoggingListener">
            <filter type="" />
          </add>
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add initializeData="Logs\Messages.svclog"
           type="System.Diagnostics.XmlWriterTraceListener"
           name="ServiceModelMessageLoggingListener"
           traceOutputOptions="Timestamp">
        <filter type="" />
      </add>
    </sharedListeners>
  </system.diagnostics>
  <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
    <diagnostics>
      <messageLogging logEntireMessage="true"
                      logMalformedMessages="true"
                      logMessagesAtServiceLevel="true"
                      logMessagesAtTransportLevel="true"
                      maxMessagesToLog="2147483647"
                      maxSizeOfMessageToLog="2147483647" />
    </diagnostics>
    <services>
      <service behaviorConfiguration="GTech.Solution.Api.AppServiceBehavior"
        name="GTech.Solution.Api.SecurityServices">
        <endpoint address="" behaviorConfiguration="WebHttpBindingBehavior"
                  binding="webHttpBinding" bindingConfiguration="MyServiceBinding"
                  contract="GTech.Solution.Api.Contract.ISecurityServices" />
      </service>
      <service behaviorConfiguration="GTech.Solution.Api.AppServiceBehavior"
         name="GTech.Solution.Api.MasterDataServices">
        <endpoint address="" behaviorConfiguration="WebHttpBindingBehavior"
          binding="webHttpBinding" bindingConfiguration="MyServiceBinding"
          contract="GTech.Solution.Api.Contract.IMasterDataServices" />
      </service>
      <service behaviorConfiguration="GTech.Solution.Api.AppServiceBehavior"
        name="GTech.Solution.Api.JobTransactionMonitorServices">
        <endpoint address="" behaviorConfiguration="WebHttpBindingBehavior"
          binding="webHttpBinding" bindingConfiguration="MyServiceBinding"
          contract="GTech.Solution.Api.Contract.IJobTransactionMonitorServices" />
      </service>
      <service behaviorConfiguration="GTech.Solution.Api.AppServiceBehavior"
        name="GTech.Solution.Api.OrderManagementServices">
        <endpoint address="" behaviorConfiguration="WebHttpBindingBehavior"
          binding="webHttpBinding" bindingConfiguration="MyServiceBinding"
          contract="GTech.Solution.Api.Contract.IOrderManagementServices" />
      </service>
      <service behaviorConfiguration="GTech.Solution.Api.AppServiceBehavior"
        name="GTech.Solution.Api.TankInventoryServices">
        <endpoint address="" behaviorConfiguration="WebHttpBindingBehavior"
          binding="webHttpBinding" bindingConfiguration="MyServiceBinding"
          contract="GTech.Solution.Api.Contract.ITankInventoryServices" />
      </service>
      <service behaviorConfiguration="GTech.Solution.Api.AppServiceBehavior"
        name="GTech.Solution.Api.VesselNominationHandlingServices">
        <endpoint address="" behaviorConfiguration="WebHttpBindingBehavior"
          binding="webHttpBinding" bindingConfiguration="MyServiceBinding"
          contract="GTech.Solution.Api.Contract.IVesselNominationHandlingServices" />
      </service>
      <service behaviorConfiguration="GTech.Solution.Api.AppServiceBehavior"
        name="GTech.Solution.Api.VesselShipmentManagementServices">
        <endpoint address="" behaviorConfiguration="WebHttpBindingBehavior"
          binding="webHttpBinding" bindingConfiguration="MyServiceBinding"
          contract="GTech.Solution.Api.Contract.IVesselShipmentManagementServices" />
      </service>
    </services>
    <behaviors>
      <endpointBehaviors>
        <behavior name="WebHttpBindingBehavior">
          <webHttp/>
        </behavior>
        <behavior name="webHttp">
          <webHttp helpEnabled="true"/>
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior name="GTech.Solution.Api.AppServiceBehavior">
          <serviceMetadata httpGetEnabled="false" httpsGetEnabled="false"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <bindings>
      <webHttpBinding>
        <binding name="MyServiceBinding" sendTimeout="00:10:00" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferPoolSize="2147483647">
          <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
          <security mode="Transport" >
          </security>
        </binding>
        <binding name="webHttpBindConfig" receiveTimeout="00:30:00" sendTimeout="00:30:00" maxReceivedMessageSize="104857600" transferMode="Streamed">
          <readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647"/>
          <security mode="Transport" >
          </security>
        </binding>
      </webHttpBinding>
      <basicHttpBinding>
      </basicHttpBinding>
    </bindings>
    <client>
    </client>
  </system.serviceModel>
</configuration>
WebApi/GTech.Solution.Api.WebSite/bin/ApplicationInsights.config
New file
@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8"?>
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings">
    <TelemetryModules>
        <Add Type="Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule, Microsoft.AI.DependencyCollector"/>
        <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule, Microsoft.AI.PerfCounterCollector">
            <!--
      Use the following syntax here to collect additional performance counters:
      <Counters>
        <Add PerformanceCounter="\Process(??APP_WIN32_PROC??)\Handle Count" ReportAs="Process handle count" />
        ...
      </Counters>
      PerformanceCounter must be either \CategoryName(InstanceName)\CounterName or \CategoryName\CounterName
      Counter names may only contain letters, round brackets, forward slashes, hyphens, underscores, spaces and dots.
      You may provide an optional ReportAs attribute which will be used as the metric name when reporting counter data.
      For the purposes of reporting, metric names will be sanitized by removing all invalid characters from the resulting metric name.
      NOTE: performance counters configuration will be lost upon NuGet upgrade.
      The following placeholders are supported as InstanceName:
        ??APP_WIN32_PROC?? - instance name of the application process  for Win32 counters.
        ??APP_W3SVC_PROC?? - instance name of the application IIS worker process for IIS/ASP.NET counters.
        ??APP_CLR_PROC?? - instance name of the application CLR process for .NET counters.
      -->
        </Add>
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.DeveloperModeWithDebuggerAttachedTelemetryModule, Microsoft.AI.WindowsServer"/>
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule, Microsoft.AI.WindowsServer"/>
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule, Microsoft.AI.WindowsServer"/>
        <Add Type="Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule, Microsoft.AI.Web">
            <Handlers>
                <!--
        Add entries here to filter out additional handlers:
        NOTE: handler configuration will be lost upon NuGet upgrade.
        -->
                <Add>System.Web.Handlers.TransferRequestHandler</Add>
                <Add>Microsoft.VisualStudio.Web.PageInspector.Runtime.Tracing.RequestDataHttpHandler</Add>
                <Add>System.Web.StaticFileHandler</Add>
                <Add>System.Web.Handlers.AssemblyResourceLoader</Add>
                <Add>System.Web.Optimization.BundleHandler</Add>
                <Add>System.Web.Script.Services.ScriptHandlerFactory</Add>
                <Add>System.Web.Handlers.TraceHandler</Add>
                <Add>System.Web.Services.Discovery.DiscoveryRequestHandler</Add>
                <Add>System.Web.HttpDebugHandler</Add>
            </Handlers>
        </Add>
        <Add Type="Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule, Microsoft.AI.Web"/>
    </TelemetryModules>
    <TelemetryChannel Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel, Microsoft.AI.ServerTelemetryChannel"/>
    <TelemetryProcessors>
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
            <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
        </Add>
    </TelemetryProcessors>
<!--
    Learn more about Application Insights configuration with ApplicationInsights.config here:
    http://go.microsoft.com/fwlink/?LinkID=513840
    Note: If not present, please add <InstrumentationKey>Your Key</InstrumentationKey> to the top of this file.
  -->
<TelemetryInitializers>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer"/>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.DomainNameRoleInstanceTelemetryInitializer, Microsoft.AI.WindowsServer"/>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.BuildInfoConfigComponentVersionTelemetryInitializer, Microsoft.AI.WindowsServer"/>
<Add Type="Microsoft.ApplicationInsights.Web.WebTestTelemetryInitializer, Microsoft.AI.Web"/>
<Add Type="Microsoft.ApplicationInsights.Web.SyntheticUserAgentTelemetryInitializer, Microsoft.AI.Web">
<Filters>
<Add Pattern="(YottaaMonitor|BrowserMob|HttpMonitor|YandexBot|BingPreview|PagePeeker|ThumbShotsBot|WebThumb|URL2PNG|ZooShot|GomezA|Catchpoint bot|Willow Internet Crawler|Google SketchUp|Read%20Later|KTXN|Pingdom|AlwaysOn)"/>
<Add Pattern="Slurp" SourceName="Yahoo Bot"/>
<Add Pattern="(bot|zao|borg|Bot|oegp|silk|Xenu|zeal|^NING|crawl|Crawl|htdig|lycos|slurp|teoma|voila|yahoo|Sogou|CiBra|Nutch|^Java/|^JNLP/|Daumoa|Genieo|ichiro|larbin|pompos|Scrapy|snappy|speedy|spider|Spider|vortex|favicon|indexer|Riddler|scooter|scraper|scrubby|WhatWeb|WinHTTP|^voyager|archiver|Icarus6j|mogimogi|Netvibes|altavista|charlotte|findlinks|Retreiver|TLSProber|WordPress|wsr\-agent|Squrl Java|A6\-Indexer|netresearch|searchsight|http%20client|Python-urllib|dataparksearch|Screaming Frog|AppEngine-Google|YahooCacheSystem|semanticdiscovery|facebookexternalhit|Google.*/\+/web/snippet|Google-HTTP-Java-Client)"
SourceName="Spider"/>
</Filters>
</Add>
<Add Type="Microsoft.ApplicationInsights.Web.ClientIpHeaderTelemetryInitializer, Microsoft.AI.Web"/>
<Add Type="Microsoft.ApplicationInsights.Web.OperationNameTelemetryInitializer, Microsoft.AI.Web"/>
<Add Type="Microsoft.ApplicationInsights.Web.OperationCorrelationTelemetryInitializer, Microsoft.AI.Web"/>
<Add Type="Microsoft.ApplicationInsights.Web.UserTelemetryInitializer, Microsoft.AI.Web"/>
<Add Type="Microsoft.ApplicationInsights.Web.AuthenticatedUserIdTelemetryInitializer, Microsoft.AI.Web"/>
<Add Type="Microsoft.ApplicationInsights.Web.AccountIdTelemetryInitializer, Microsoft.AI.Web"/>
<Add Type="Microsoft.ApplicationInsights.Web.SessionTelemetryInitializer, Microsoft.AI.Web"/>
</TelemetryInitializers>
</ApplicationInsights>
WebApi/GTech.Solution.Api.WebSite/bin/GTech.Solution.Api.Common.pdb
Binary files differ
WebApi/GTech.Solution.Api.WebSite/bin/GTech.Solution.Api.Contract.pdb
Binary files differ
WebApi/GTech.Solution.Api.WebSite/bin/GTech.Solution.Api.Domain.pdb
Binary files differ
WebApi/GTech.Solution.Api.WebSite/bin/GTech.Solution.Api.WebSite.dll.config
New file
@@ -0,0 +1,128 @@
<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true"/>
    <add key="IgnoringAntPathRequestMatcher"
         value="TruckAlarm.svc" />
  </appSettings>
  <connectionStrings>
    <add name="Default" connectionString="Data Source=39.98.182.30;port=3306;Initial Catalog=calculte;user id=root;password=abcd,.1234;" providerName="MySql.Data.MySqlClient" />
  </connectionStrings>
  <system.web>
    <customErrors mode="Off" />
    <compilation debug="true" targetFramework="4.6.1" />
    <authentication mode="None" />
    <httpRuntime maxRequestLength="2097151" />
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" />
  </system.web>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
      </customHeaders>
    </httpProtocol>
    <modules runAllManagedModulesForAllRequests="false" />
    <staticContent>
      <mimeMap fileExtension=".apk" mimeType="application/vnd.android.package-archive" />
      <mimeMap fileExtension=".svc" mimeType="application/octet-stream" />
    </staticContent>
    <directoryBrowse enabled="false" />
  </system.webServer>
  <!--<system.diagnostics>
    <trace autoflush="true" />
    <sources>
      <source name="System.ServiceModel.MessageLogging">
        <listeners>
          <add name="ServiceModelMessageLoggingListener">
            <filter type="" />
          </add>
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add initializeData="Logs\Messages.svclog"
           type="System.Diagnostics.XmlWriterTraceListener"
           name="ServiceModelMessageLoggingListener"
           traceOutputOptions="Timestamp">
        <filter type="" />
      </add>
    </sharedListeners>
  </system.diagnostics>-->
  <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
    <diagnostics>
      <messageLogging logEntireMessage="true"
                      logMalformedMessages="true"
                      logMessagesAtServiceLevel="true"
                      logMessagesAtTransportLevel="true"
                      maxMessagesToLog="2147483647"
                      maxSizeOfMessageToLog="2147483647" />
    </diagnostics>
    <services>
      <service behaviorConfiguration="GTech.Solution.Api.AppServiceBehavior"
        name="GTech.Solution.Api.WebSite.TruckAlarm">
        <endpoint address="" behaviorConfiguration="WebHttpBindingBehavior"
          binding="webHttpBinding" bindingConfiguration="MyServiceBinding"
          contract="GTech.Solution.Api.Contract.ITruckAlarm" />
      </service>
    </services>
    <behaviors>
      <endpointBehaviors>
        <behavior name="WebHttpBindingBehavior">
          <webHttp />
        </behavior>
        <behavior name="webHttp">
          <webHttp helpEnabled="true" />
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior name="GTech.Solution.Api.AppServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
        <behavior name="">
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <bindings>
      <webHttpBinding>
        <binding name="MyServiceBinding" sendTimeout="00:10:00" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferPoolSize="2147483647">
          <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <security mode="None" />
        </binding>
        <binding name="webHttpBindConfig" receiveTimeout="00:30:00" sendTimeout="00:30:00" maxReceivedMessageSize="104857600" transferMode="Streamed">
          <readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647" />
          <security mode="None" />
        </binding>
      </webHttpBinding>
      <basicHttpBinding />
    </bindings>
    <client />
  </system.serviceModel>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.10.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
      <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
    </providers>
  </entityFramework>
  <system.data>
    <DbProviderFactories>
      <remove invariant="MySql.Data.MySqlClient" />
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.10.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
      <remove invariant="System.Data.SQLite.EF6" />
      <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
      <remove invariant="System.Data.SQLite" />
      <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
    </DbProviderFactories>
  </system.data>
</configuration>
WebApi/GTech.Solution.Api.WebSite/bin/GTech.Solution.Api.WebSite.pdb
Binary files differ
WebApi/GTech.Solution.Api.WebSite/bin/JWT.pdb
Binary files differ
WebApi/GTech.Solution.Api.WebSite/bin/JWT.xml
New file
@@ -0,0 +1,1218 @@
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>JWT</name>
    </assembly>
    <members>
        <member name="T:JWT.Algorithms.DelegateAlgorithmFactory">
            <summary>
            Implements <see href="IAlgorithmFactory" /> by returning the supplied <see href="IJwtAlgorithm" /> while ignoring parameters.
            </summary>
        </member>
        <member name="M:JWT.Algorithms.DelegateAlgorithmFactory.#ctor(System.Func{JWT.Algorithms.IJwtAlgorithm})">
            <summary>
            Creates an instance of <see cref="T:JWT.Algorithms.DelegateAlgorithmFactory" /> with supplied delegate to an algorithm.
            </summary>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.Algorithms.DelegateAlgorithmFactory.#ctor(JWT.Algorithms.IJwtAlgorithm)">
            <summary>
            Creates an instance of <see cref="T:JWT.Algorithms.DelegateAlgorithmFactory" /> with supplied algorithm.
            </summary>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.Algorithms.DelegateAlgorithmFactory.Create(JWT.JwtDecoderContext)">
            <inheritdoc />
        </member>
        <member name="T:JWT.Algorithms.HMACSHA256Algorithm">
            <summary>
            HMAC using SHA-256
            </summary>
        </member>
        <member name="M:JWT.Algorithms.HMACSHA256Algorithm.Sign(System.Byte[],System.Byte[])">
            <inheritdoc />
        </member>
        <member name="P:JWT.Algorithms.HMACSHA256Algorithm.Name">
            <inheritdoc />
        </member>
        <member name="T:JWT.Algorithms.HMACSHA384Algorithm">
            <summary>
            HMAC using SHA-384
            </summary>
        </member>
        <member name="M:JWT.Algorithms.HMACSHA384Algorithm.Sign(System.Byte[],System.Byte[])">
            <inheritdoc />
        </member>
        <member name="P:JWT.Algorithms.HMACSHA384Algorithm.Name">
            <inheritdoc />
        </member>
        <member name="T:JWT.Algorithms.HMACSHA512Algorithm">
            <summary>
            HMAC using SHA-512
            </summary>
        </member>
        <member name="M:JWT.Algorithms.HMACSHA512Algorithm.Sign(System.Byte[],System.Byte[])">
            <inheritdoc />
        </member>
        <member name="P:JWT.Algorithms.HMACSHA512Algorithm.Name">
            <inheritdoc />
        </member>
        <member name="T:JWT.Algorithms.HMACSHAAlgorithmFactory">
            <inheritdoc />
        </member>
        <member name="M:JWT.Algorithms.HMACSHAAlgorithmFactory.Create(JWT.JwtDecoderContext)">
            <inheritdoc />
        </member>
        <member name="T:JWT.Algorithms.IAlgorithmFactory">
            <summary>
            Provides IJwtAlgorithms.
            </summary>
        </member>
        <member name="M:JWT.Algorithms.IAlgorithmFactory.Create(JWT.JwtDecoderContext)">
            <summary>
            Creates an AlgorithmFactory using the provided algorithm enum.
            </summary>
            <param name="context">The captured context during validation of JWT inside <see cref="T:JWT.JwtDecoder"/></param>
        </member>
        <member name="T:JWT.Algorithms.IAsymmetricAlgorithm">
            <summary>
            Represents an asymmetric algorithm to generate or validate JWT signature.
            </summary>
        </member>
        <member name="M:JWT.Algorithms.IAsymmetricAlgorithm.Verify(System.Byte[],System.Byte[])">
            <summary>
            Verifies provided byte array with provided signature.
            </summary>
            <param name="bytesToSign">The data to verify</param>
            <param name="signature">The signature to verify with</param>
        </member>
        <member name="T:JWT.Algorithms.IJwtAlgorithm">
            <summary>
            Represents an algorithm to generate JWT signature.
            </summary>
        </member>
        <member name="M:JWT.Algorithms.IJwtAlgorithm.Sign(System.Byte[],System.Byte[])">
            <summary>
            Signs provided byte array with provided key.
            </summary>
            <param name="key">The key used to sign the data</param>
            <param name="bytesToSign">The data to sign</param>
        </member>
        <member name="P:JWT.Algorithms.IJwtAlgorithm.Name">
            <summary>
            Gets algorithm name.
            </summary>
        </member>
        <member name="T:JWT.Algorithms.JwtAlgorithmExtensions">
             <summary>
             Extension methods for <seealso cref="T:JWT.Algorithms.IJwtAlgorithm" />
            </summary>
        </member>
        <member name="M:JWT.Algorithms.JwtAlgorithmExtensions.IsAsymmetric(JWT.Algorithms.IJwtAlgorithm)">
            <summary>
            Returns whether or not the algorithm is asymmetric.
            </summary>
            <param name="alg">The algorithm instance.</param>
        </member>
        <member name="T:JWT.Algorithms.JwtAlgorithmName">
            <summary>
            Enum representing the various Jwt Hash Algorithms.
            </summary>
        </member>
        <member name="F:JWT.Algorithms.JwtAlgorithmName.HS256">
            <summary>
            HMAC using SHA-256
            </summary>
        </member>
        <member name="F:JWT.Algorithms.JwtAlgorithmName.HS384">
            <summary>
            HMAC using SHA-384
            </summary>
        </member>
        <member name="F:JWT.Algorithms.JwtAlgorithmName.HS512">
            <summary>
            HMAC using SHA-512
            </summary>
        </member>
        <member name="F:JWT.Algorithms.JwtAlgorithmName.RS256">
            <summary>
            RSASSA-PKCS1-v1_5 using SHA-256
            </summary>
        </member>
        <member name="T:JWT.Algorithms.RS256Algorithm">
            <summary>
            RSASSA-PKCS1-v1_5 using SHA-256
            </summary>
        </member>
        <member name="M:JWT.Algorithms.RS256Algorithm.#ctor(System.Security.Cryptography.RSA,System.Security.Cryptography.RSA)">
            <summary>
            Creates an instance of <see cref="T:JWT.Algorithms.RS256Algorithm" /> using the provided pair of public and private keys.
            </summary>
            <param name="publicKey">The public key for verifying the data.</param>
            <param name="privateKey">The private key for signing the data.</param>
        </member>
        <member name="M:JWT.Algorithms.RS256Algorithm.#ctor(System.Security.Cryptography.RSA)">
            <summary>
            Creates an instance of <see cref="T:JWT.Algorithms.RS256Algorithm" /> using the provided public key only.
            </summary>
            <remarks>
            An instance created using this constructor can only be used for verifying the data, not for signing it.
            </remarks>
            <param name="publicKey">The public key for verifying the data.</param>
        </member>
        <member name="M:JWT.Algorithms.RS256Algorithm.#ctor(System.Security.Cryptography.X509Certificates.X509Certificate2)">
            <summary>
            Creates an instance using the provided certificate.
            </summary>
            <param name="cert">The certificate having a public key and an optional private key.</param>
        </member>
        <member name="P:JWT.Algorithms.RS256Algorithm.Name">
            <inheritdoc />
        </member>
        <member name="M:JWT.Algorithms.RS256Algorithm.Sign(System.Byte[],System.Byte[])">
            <inheritdoc />
        </member>
        <member name="M:JWT.Algorithms.RS256Algorithm.Sign(System.Byte[])">
            <summary>
            Signs the provided bytes.
            </summary>
            <param name="bytesToSign">The bytes to sign.</param>
            <returns>The signed bytes.</returns>
        </member>
        <member name="M:JWT.Algorithms.RS256Algorithm.Verify(System.Byte[],System.Byte[])">
            <inheritdoc />
        </member>
        <member name="T:JWT.Algorithms.RSAlgorithmFactory">
            <inheritdoc />
        </member>
        <member name="M:JWT.Algorithms.RSAlgorithmFactory.#ctor(System.Func{System.Security.Cryptography.X509Certificates.X509Certificate2})">
            <summary>
            Creates an instance of the <see cref="T:JWT.Algorithms.RSAlgorithmFactory" /> class using the provided <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2" />.
            </summary>
            <param name="certFactory">Func that returns <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2" /> which will be used to instantiate <see cref="T:JWT.Algorithms.RS256Algorithm" /></param>
        </member>
        <member name="M:JWT.Algorithms.RSAlgorithmFactory.#ctor(System.Security.Cryptography.RSA)">
            <summary>
            Creates an instance of <see cref="T:JWT.Algorithms.RSAlgorithmFactory"/> using the provided public key only.
            </summary>
            <param name="publicKey">The public key for verifying the data.</param>
        </member>
        <member name="M:JWT.Algorithms.RSAlgorithmFactory.#ctor(System.Security.Cryptography.RSA,System.Security.Cryptography.RSA)">
            <summary>
            Creates an instance of <see cref="T:JWT.Algorithms.RSAlgorithmFactory"/> using the provided pair of public and private keys.
            </summary>
            <param name="publicKey">The public key for verifying the data.</param>
            <param name="privateKey">The private key for signing the data.</param>
        </member>
        <member name="T:JWT.Builder.ClaimName">
            <summary>
            All public claims of a JWT specified by IANA, see https://www.iana.org/assignments/jwt/jwt.xhtml
            </summary>
        </member>
        <member name="M:JWT.Builder.EnumExtensions.GetHeaderName(JWT.Builder.HeaderName)">
            <summary>
            Gets the string representation of a well-known header name enum
            </summary>
        </member>
        <member name="M:JWT.Builder.EnumExtensions.GetPublicClaimName(JWT.Builder.ClaimName)">
            <summary>
            Gets the string representation of a well-known claim name enum
            </summary>
        </member>
        <member name="M:JWT.Builder.EnumExtensions.GetDescription``1(``0)">
            <summary>
            Gets the value of the <see cref="T:System.ComponentModel.DescriptionAttribute" /> from the object.
            </summary>
        </member>
        <member name="T:JWT.Builder.HeaderName">
            <summary>
            All predefined parameter names specified by RFC 7515, see https://tools.ietf.org/html/rfc7515
            </summary>
        </member>
        <member name="T:JWT.Builder.JwtBuilder">
            <summary>
            Encode and decode JWT with Fluent API.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.AddHeader(JWT.Builder.HeaderName,System.Object)">
            <summary>
            Add header to the JWT.
            </summary>
            <param name="name">Well-known header name</param>
            <param name="value">The value you want give to the header</param>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.AddClaim(System.String,System.Object)">
            <summary>
            Adds claim to the JWT.
            </summary>
            <param name="name">Claim name</param>
            <param name="value">Claim value</param>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithSerializer(JWT.IJsonSerializer)">
            <summary>
            Sets JWT serializer.
            </summary>
            <remarks>
            If not set then default <see cref="T:JWT.Serializers.JsonNetSerializer" /> will be used.
            </remarks>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithDateTimeProvider(JWT.IDateTimeProvider)">
            <summary>
            Sets custom datetime provider.
            </summary>
            <remarks>
            If not set then default <see cref="T:JWT.UtcDateTimeProvider" /> will be used.
            </remarks>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithEncoder(JWT.IJwtEncoder)">
            <summary>
            Sets JWT encoder.
            </summary>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithDecoder(JWT.IJwtDecoder)">
            <summary>
            Sets JWT decoder.
            </summary>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithValidator(JWT.IJwtValidator)">
            <summary>
            Sets JWT validator.
            </summary>
            <remarks>
            Required to decode with verification.
            </remarks>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithUrlEncoder(JWT.IBase64UrlEncoder)">
            <summary>
            Sets custom URL encoder.
            </summary>
            <remarks>
            If not set then default <see cref="T:JWT.JwtBase64UrlEncoder" /> will be used.
            </remarks>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithAlgorithmFactory(JWT.Algorithms.IAlgorithmFactory)">
            <summary>
            Sets JWT algorithm factory.
            </summary>
            <returns>Current builder instance.</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithAlgorithm(JWT.Algorithms.IJwtAlgorithm)">
            <summary>
            Sets JWT algorithm.
            </summary>
            <returns>Current builder instance.</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithSecret(System.String[])">
            <summary>
            Sets certificate secret.
            </summary>
            <remarks>
            Required to create new token that uses an symmetric algorithm such as <seealso cref="T:JWT.Algorithms.RS256Algorithm" />
            </remarks>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithSecret(System.Byte[][])">
            <summary>
            Sets certificate secret.
            </summary>
            <remarks>
            Required to create new token that uses an symmetric algorithm such as <seealso cref="T:JWT.Algorithms.RS256Algorithm" />
            </remarks>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.MustVerifySignature">
            <summary>
            Instructs to do verify the JWT signature.
            </summary>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.DoNotVerifySignature">
            <summary>
            Instructs to do not verify the JWT signature.
            </summary>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithVerifySignature(System.Boolean)">
            <summary>
            Instructs whether to verify the JWT signature.
            </summary>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.Encode">
            <summary>
            Encodes a token using the supplied dependencies.
            </summary>
            <returns>The generated JWT</returns>
            <exception cref="T:System.InvalidOperationException">Thrown if either algorithm, serializer, encoder or secret is null</exception>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.Decode(System.String)">
            <summary>
            Decodes a token using the supplied dependencies.
            </summary>
            <param name="token">The JWT</param>
            <returns>The JSON payload</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.DecodeHeader(System.String)">
            <summary>
            Given a JWT, decodes it and return the header.
            </summary>
            <param name="token">The JWT</param>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.DecodeHeader``1(System.String)">
            <summary>
            Given a JWT, decodes it and return the header.
            </summary>
            <param name="token">The JWT</param>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.Decode``1(System.String)">
            <summary>
            Decodes a token using the supplied dependencies.
            </summary>
            <param name="token">The JWT</param>
            <returns>The payload converted to <see cref="!:T" /></returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.CanEncode">
            <summary>
            Checks whether enough dependencies were supplied to encode a new token.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.CanDecode">
            <summary>
            Checks whether enough dependencies were supplied to decode a token.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtBuilderExtensions.AddClaim(JWT.Builder.JwtBuilder,JWT.Builder.ClaimName,System.Object)">
            <summary>
            Adds well-known claim to the JWT.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtBuilderExtensions.AddClaim``1(JWT.Builder.JwtBuilder,JWT.Builder.ClaimName,``0)">
            <summary>
            Adds well-known claim to the JWT.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtBuilderExtensions.AddClaim``1(JWT.Builder.JwtBuilder,System.String,``0)">
            <summary>
            Adds well-known claim to the JWT.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtBuilderExtensions.AddClaims(JWT.Builder.JwtBuilder,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
            <summary>
            Adds several claims to the JWT
            </summary>
        </member>
        <member name="T:JWT.Builder.JwtData">
            <summary>
            Represents the Data that will store in a JWT.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtData.#ctor">
            <summary>
            Creates a new instance of <see cref="T:JWT.Builder.JwtData" /> with empty Header and Payload.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtData.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>
            Creates a new instance of <see cref="T:JWT.Builder.JwtData" />
            </summary>
            <param name="payload">Dictionary that contans the payload</param>
        </member>
        <member name="M:JWT.Builder.JwtData.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object},System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>
            Creates a new instance of <see cref="T:JWT.Builder.JwtData" />
            </summary>
            <param name="header">Dictionary that contains the headers</param>
            <param name="payload">Dictionary that contans the payload</param>
        </member>
        <member name="M:JWT.Builder.JwtData.#ctor(System.String)">
            <summary>
            Creates a new instance of <see cref="T:JWT.Builder.JwtData" />
            </summary>
            <param name="token">The JWT token</param>
        </member>
        <member name="P:JWT.Builder.JwtData.Header">
            <summary>
            The header information as a key-value store of the JWT
            </summary>
        </member>
        <member name="P:JWT.Builder.JwtData.Payload">
            <summary>
            The payload of the JWT as a key-value store
            </summary>
        </member>
        <member name="T:JWT.Builder.JwtHeader">
            <summary>
            JSON header model with predefined parameter names specified by RFC 7515, see https://tools.ietf.org/html/rfc7515
            </summary>
        </member>
        <member name="T:JWT.Exceptions.InvalidTokenPartsException">
            <summary>
            Represents an exception thrown when when a token doesn't consist of 3 delimited by dot parts.
            </summary>
        </member>
        <member name="M:JWT.Exceptions.InvalidTokenPartsException.#ctor(System.String)">
            <summary>
            Creates an instance of <see cref="T:JWT.Exceptions.InvalidTokenPartsException" />
            </summary>
            <param name="paramName">The name of the parameter that caused the exception</param>
        </member>
        <member name="T:JWT.Exceptions.SignatureVerificationException">
            <summary>
            Represents an exception thrown when a signature validation fails.
            </summary>
        </member>
        <member name="M:JWT.Exceptions.SignatureVerificationException.#ctor(System.String)">
            <summary>
            Creates an instance of <see cref="T:JWT.Exceptions.SignatureVerificationException" />
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="P:JWT.Exceptions.SignatureVerificationException.Expected">
            <summary>
            Expected key.
            </summary>
        </member>
        <member name="P:JWT.Exceptions.SignatureVerificationException.Received">
            <summary>
            Received key.
            </summary>
        </member>
        <member name="M:JWT.Exceptions.SignatureVerificationException.GetOrDefault``1(System.String)">
            <summary>
            Retrieves the value for the provided key, or default.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="key">The key</param>
            <returns></returns>
        </member>
        <member name="T:JWT.Exceptions.TokenExpiredException">
            <summary>
            Represents an exception thrown when when a token is expired.
            </summary>
        </member>
        <member name="M:JWT.Exceptions.TokenExpiredException.#ctor(System.String)">
            <summary>
            Creates an instance of <see cref="T:JWT.Exceptions.TokenExpiredException" />
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="P:JWT.Exceptions.TokenExpiredException.PayloadData">
            <summary>
            The payload.
            </summary>
        </member>
        <member name="P:JWT.Exceptions.TokenExpiredException.Expiration">
            <summary>
            The expiration DateTime of the token.
            </summary>
        </member>
        <member name="T:JWT.IBase64UrlEncoder">
            <summary>
            Represents a base64 encoder/decoder.
            </summary>
        </member>
        <member name="M:JWT.IBase64UrlEncoder.Encode(System.Byte[])">
            <summary>
            Encodes the byte array to a Base64 string.
            </summary>
        </member>
        <member name="M:JWT.IBase64UrlEncoder.Decode(System.String)">
            <summary>
            Decodes the Base64 string to a byte array.
            </summary>
        </member>
        <member name="T:JWT.IDateTimeProvider">
            <summary>
            Represents a DateTime provider.
            </summary>
        </member>
        <member name="M:JWT.IDateTimeProvider.GetNow">
            <summary>
            Gets the current DateTime.
            </summary>
        </member>
        <member name="T:JWT.IJsonSerializer">
            <summary>
            Provides JSON Serialize and Deserialize.  Allows custom serializers used.
            </summary>
        </member>
        <member name="M:JWT.IJsonSerializer.Serialize(System.Object)">
            <summary>
            Serialize an object to JSON string
            </summary>
            <param name="obj">object</param>
            <returns>JSON string</returns>
        </member>
        <member name="M:JWT.IJsonSerializer.Deserialize``1(System.String)">
            <summary>
            Deserialize a JSON string to typed object.
            </summary>
            <typeparam name="T">type of object</typeparam>
            <param name="json">JSON string</param>
            <returns>Strongly-typed object</returns>
        </member>
        <member name="T:JWT.IJwtDecoder">
            <summary>
            Represents a JWT decoder.
            </summary>
        </member>
        <member name="M:JWT.IJwtDecoder.DecodeHeader(System.String)">
            <summary>
            Given a JWT, decodes it and return the header.
            </summary>
            <param name="token">The JWT</param>
        </member>
        <member name="M:JWT.IJwtDecoder.DecodeHeader``1(JWT.JwtParts)">
            <summary>
            Given a JWT, decodes it and return the header as an object.
            </summary>
            <param name="jwt">The JWT</param>
        </member>
        <member name="M:JWT.IJwtDecoder.Decode(JWT.JwtParts)">
            <summary>
            Given a JWT, decodes it and return the payload.
            </summary>
            <param name="jwt">The JWT</param>
            <returns>A string containing the JSON payload</returns>
        </member>
        <member name="M:JWT.IJwtDecoder.Decode(JWT.JwtParts,System.Byte[],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload.
            </summary>
            <param name="jwt">The JWT</param>
            <param name="key">The key that were used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>A string containing the JSON payload</returns>
        </member>
        <member name="M:JWT.IJwtDecoder.Decode(JWT.JwtParts,System.Byte[][],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload.
            </summary>
            <param name="jwt">The JWT</param>
            <param name="keys">The keys provided which one of them was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>A string containing the JSON payload</returns>
        </member>
        <member name="M:JWT.IJwtDecoder.DecodeToObject``1(JWT.JwtParts)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="jwt">The JWT</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="M:JWT.IJwtDecoder.DecodeToObject``1(JWT.JwtParts,System.Byte[],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="jwt">The JWT</param>
            <param name="key">The key that was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="M:JWT.IJwtDecoder.DecodeToObject``1(JWT.JwtParts,System.Byte[][],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="jwt">The JWT</param>
            <param name="keys">The keys which one of them was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="T:JWT.JwtDecoderExtensions">
             <summary>
             Extension methods for <seealso cref="T:JWT.IJwtDecoder" />
            </summary>
        </member>
        <member name="M:JWT.JwtDecoderExtensions.Decode(JWT.IJwtDecoder,System.String)">
            <summary>
            Given a JWT, decodes it and return the payload.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <returns>A string containing the JSON payload</returns>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:JWT.Exceptions.InvalidTokenPartsException" />
        </member>
        <member name="M:JWT.JwtDecoderExtensions.Decode(JWT.IJwtDecoder,JWT.JwtParts)">
            <summary>
            Given a JWT, decodes it and return the payload.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="jwt">The JWT</param>
            <returns>A string containing the JSON payload</returns>
        </member>
        <member name="M:JWT.JwtDecoderExtensions.Decode(JWT.IJwtDecoder,System.String,System.Byte[],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="key">The key that was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>A string containing the JSON payload</returns>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:JWT.Exceptions.InvalidTokenPartsException" />
        </member>
        <member name="M:JWT.JwtDecoderExtensions.Decode(JWT.IJwtDecoder,System.String,System.Byte[][],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="keys">The keys that were used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>A string containing the JSON payload</returns>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:JWT.Exceptions.InvalidTokenPartsException" />
        </member>
        <member name="M:JWT.JwtDecoderExtensions.Decode(JWT.IJwtDecoder,System.String,System.String,System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an dictionary.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="key">The key that was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
        </member>
        <member name="M:JWT.JwtDecoderExtensions.Decode(JWT.IJwtDecoder,System.String,System.String[],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an dictionary.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="keys">The key which one of them was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject``1(JWT.IJwtDecoder,System.String)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject(JWT.IJwtDecoder,System.String)">
            <summary>
            Given a JWT, decodes it and return the payload as a dictionary.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject(JWT.IJwtDecoder,System.String,System.Byte[],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as a dictionary.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="key">The key that was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
            <exception cref = "T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:JWT.Exceptions.InvalidTokenPartsException" />
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject(JWT.IJwtDecoder,System.String,System.Byte[][],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as a dictionary.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="keys">The keys that were used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>A string containing the JSON payload</returns>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:JWT.Exceptions.InvalidTokenPartsException" />
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject``1(JWT.IJwtDecoder,System.String,System.String,System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="key">The key that was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject``1(JWT.IJwtDecoder,System.String,System.Byte[],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="key">The key that was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject``1(JWT.IJwtDecoder,System.String,System.Byte[][],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="keys">The keys provided which one of them was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject``1(JWT.IJwtDecoder,System.String,System.String[],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="keys">The keys provided which one of them was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="T:JWT.IJwtEncoder">
            <summary>
            Represents a JWT encoder.
            </summary>
        </member>
        <member name="M:JWT.IJwtEncoder.Encode(System.Collections.Generic.IDictionary{System.String,System.Object},System.Object,System.Byte[])">
            <summary>
            Creates a JWT given a header, a payload, the signing key, and the algorithm to use.
            </summary>
            <param name="extraHeaders">An arbitrary set of extra headers. Will be augmented with the standard "typ" and "alg" headers</param>
            <param name="payload">An arbitrary payload (must be serializable to JSON)</param>
            <param name="key">The key bytes used to sign the token</param>
            <returns>The generated JWT</returns>
        </member>
        <member name="T:JWT.JwtEncoderExtensions">
             <summary>
             Extension methods for <seealso cref="T:JWT.IJwtEncoder" />
            </summary>
        </member>
        <member name="M:JWT.JwtEncoderExtensions.Encode(JWT.IJwtEncoder,System.Object,System.String)">
            <summary>
            Creates a JWT given a payload, the signing key, and the algorithm to use.
            </summary>
            <param name="encoder">The encoder instance</param>
            <param name="payload">An arbitrary payload (must be serializable to JSON)</param>
            <param name="key">The key used to sign the token</param>
            <returns>The generated JWT</returns>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.JwtEncoderExtensions.Encode(JWT.IJwtEncoder,System.Object,System.Byte[])">
            <summary>
            Creates a JWT given a payload, the signing key, and the algorithm to use.
            </summary>
            <param name="encoder">The encoder instance</param>
            <param name="payload">An arbitrary payload (must be serializable to JSON)</param>
            <param name="key">The key used to sign the token</param>
            <returns>The generated JWT</returns>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.JwtEncoderExtensions.Encode(JWT.IJwtEncoder,System.Collections.Generic.IDictionary{System.String,System.Object},System.Object,System.String)">
            <summary>
            Creates a JWT given a set of arbitrary extra headers, a payload, the signing key, and the algorithm to use.
            </summary>
            <param name="encoder">The encoder instance</param>
            <param name="extraHeaders">An arbitrary set of extra headers. Will be augmented with the standard "typ" and "alg" headers</param>
            <param name="payload">An arbitrary payload (must be serializable to JSON)</param>
            <param name="key">The key bytes used to sign the token</param>
            <returns>The generated JWT</returns>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="T:JWT.IJwtValidator">
            <summary>
            Represents a JWT validator.
            </summary>
        </member>
        <member name="M:JWT.IJwtValidator.Validate(System.String,System.String,System.String[])">
            <summary>
            Given the JWT, verifies its signature correctness.
            </summary>
            <param name="decodedPayload">>An arbitrary payload (already serialized to JSON)</param>
            <param name="signature">Decoded body</param>
            <param name="decodedSignatures">The signatures to validate with</param>
        </member>
        <member name="M:JWT.IJwtValidator.Validate(System.String,JWT.Algorithms.IAsymmetricAlgorithm,System.Byte[],System.Byte[])">
            <summary>
            Given the JWT, verifies its signature correctness.
            </summary>
            <remarks>
            Used by the asymmetric algorithms only.
            </remarks>
            <param name="decodedPayload">>An arbitrary payload (already serialized to JSON)</param>
            <param name="alg">The asymmetric algorithm to validate with</param>
            <param name="bytesToSign">The header and payload bytes to validate</param>
            <param name="decodedSignature">The signature to validate with</param>
        </member>
        <member name="M:JWT.IJwtValidator.TryValidate(System.String,System.String,System.String,System.Exception@)">
            <summary>
            Given the JWT, verifies its signature correctness without throwing an exception but returning it instead.
            </summary>
            <param name="payloadJson">>An arbitrary payload (already serialized to JSON)</param>
            <param name="signature">Decoded body</param>
            <param name="decodedSignature">The signature to validate with</param>
            <param name="ex">The resulting validation exception, if any</param>
            <returns>Returns <c>true</c> if exception is JWT is valid and exception is null, otherwise false</returns>
        </member>
        <member name="M:JWT.IJwtValidator.TryValidate(System.String,System.String,System.String[],System.Exception@)">
            <summary>
            Given the JWT, verifies its signature correctness without throwing an exception but returning it instead.
            </summary>
            <param name="payloadJson">>An arbitrary payload (already serialized to JSON)</param>
            <param name="signature">Decoded body</param>
            <param name="decodedSignature">The signatures to validate with</param>
            <param name="ex">The resulting validation exception, if any</param>
            <returns>Returns <c>true</c> if exception is JWT is valid and exception is null, otherwise false</returns>
        </member>
        <member name="M:JWT.IJwtValidator.TryValidate(System.String,JWT.Algorithms.IAsymmetricAlgorithm,System.Byte[],System.Byte[],System.Exception@)">
            <summary>
            Given the JWT, verifies its signatures correctness without throwing an exception but returning it instead.
            </summary>
            <param name="payloadJson">>An arbitrary payload (already serialized to JSON)</param>
            <param name="alg">The asymmetric algorithm to validate with</param>
            <param name="bytesToSign">The header and payload bytes to validate</param>
            <param name="decodedSignature">The decodedSignatures to validate with</param>
            <param name="ex">Validation exception, if any</param>
            <returns>True if exception is JWT is valid and exception is null, otherwise false</returns>
        </member>
        <member name="T:JWT.JwtBase64UrlEncoder">
            <summary>
            Base64 encoding/decoding implementation according to the JWT spec
            </summary>
        </member>
        <member name="M:JWT.JwtBase64UrlEncoder.Encode(System.Byte[])">
            <inheritdoc />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
        </member>
        <member name="M:JWT.JwtBase64UrlEncoder.Decode(System.String)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.FormatException" />
        </member>
        <member name="T:JWT.JwtDecoder">
            <summary>
            Decodes JWT.
            </summary>
        </member>
        <member name="M:JWT.JwtDecoder.#ctor(JWT.IJsonSerializer,JWT.IBase64UrlEncoder)">
            <summary>
            Creates an instance of <see cref="T:JWT.JwtDecoder" />
            </summary>
            <remarks>
            This overload supplies no <see cref="T:JWT.IJwtValidator" /> and no <see cref="T:JWT.Algorithms.IAlgorithmFactory" /> so the resulting decoder cannot be used for signature validation.
            </remarks>
            <param name="jsonSerializer">The Json Serializer</param>
            <param name="urlEncoder">The Base64 URL Encoder</param>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.JwtDecoder.#ctor(JWT.IJsonSerializer,JWT.IJwtValidator,JWT.IBase64UrlEncoder,JWT.Algorithms.IAlgorithmFactory)">
            <summary>
            Creates an instance of <see cref="T:JWT.JwtDecoder" />
            </summary>
            <param name="jsonSerializer">The Json Serializer</param>
            <param name="jwtValidator">The Jwt validator</param>
            <param name="urlEncoder">The Base64 URL Encoder</param>
            <param name="algFactory">The Algorithm Factory</param>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.JwtDecoder.#ctor(JWT.IJsonSerializer,JWT.IJwtValidator,JWT.IBase64UrlEncoder,JWT.Algorithms.IJwtAlgorithm)">
            <summary>
            Creates an instance of <see cref="T:JWT.JwtDecoder" />
            </summary>
            <param name="jsonSerializer">The Json Serializer</param>
            <param name="jwtValidator">The Jwt validator</param>
            <param name="urlEncoder">The Base64 URL Encoder</param>
            <param name="algorithm">The Algorithm</param>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.JwtDecoder.DecodeHeader(System.String)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:JWT.Exceptions.InvalidTokenPartsException" />
            <exception cref="T:System.FormatException" />
        </member>
        <member name="M:JWT.JwtDecoder.DecodeHeader``1(JWT.JwtParts)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.FormatException" />
        </member>
        <member name="M:JWT.JwtDecoder.Decode(JWT.JwtParts)">
            <inheritdoc />
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.JwtDecoder.Decode(JWT.JwtParts,System.Byte[],System.Boolean)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:JWT.Exceptions.InvalidTokenPartsException" />
            <exception cref="T:System.FormatException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="M:JWT.JwtDecoder.Decode(JWT.JwtParts,System.Byte[][],System.Boolean)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:System.FormatException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="M:JWT.JwtDecoder.DecodeToObject``1(JWT.JwtParts)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:System.FormatException" />
        </member>
        <member name="M:JWT.JwtDecoder.DecodeToObject``1(JWT.JwtParts,System.Byte[],System.Boolean)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:System.FormatException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="M:JWT.JwtDecoder.DecodeToObject``1(JWT.JwtParts,System.Byte[][],System.Boolean)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:System.FormatException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="M:JWT.JwtDecoder.Validate(System.String[],System.Byte[])">
            <summary>
            Prepares data before calling <see cref="T:JWT.IJwtValidator" />
            </summary>
            <param name="parts">The array representation of a JWT</param>
            <param name="key">The key that was used to sign the JWT</param>
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:System.FormatException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="M:JWT.JwtDecoder.Validate(System.String[],System.Byte[][])">
            <summary>
            Prepares data before calling <see cref="T:JWT.IJwtValidator" />
            </summary>
            <param name="parts">The array representation of a JWT</param>
            <param name="keys">The keys provided which one of them was used to sign the JWT</param>
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:System.FormatException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="M:JWT.JwtDecoder.Validate(JWT.JwtParts,System.Byte[][])">
            <summary>
            Prepares data before calling <see cref="T:JWT.IJwtValidator" />
            </summary>
            <param name="jwt">The JWT parts</param>
            <param name="keys">The keys provided which one of them was used to sign the JWT</param>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:System.FormatException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="P:JWT.JwtDecoderContext.Token">
            <summary>
            Unmodified JWT.
            </summary>
        </member>
        <member name="P:JWT.JwtDecoderContext.Header">
            <summary>
            Deserialized JWT header.
            </summary>
        </member>
        <member name="P:JWT.JwtDecoderContext.Payload">
            <summary>
            Decoded JWT payload.
            </summary>
        </member>
        <member name="T:JWT.JwtEncoder">
            <summary>
            Encodes Jwt.
            </summary>
        </member>
        <member name="M:JWT.JwtEncoder.#ctor(JWT.Algorithms.IJwtAlgorithm,JWT.IJsonSerializer,JWT.IBase64UrlEncoder)">
            <summary>
            Creates an instance of <see cref="T:JWT.JwtEncoder" />
            </summary>
            <param name="jsonSerializer">The Json Serializer</param>
            <param name="algorithm">The Jwt Algorithm</param>
            <param name="urlEncoder">The Base64 URL Encoder</param>
        </member>
        <member name="M:JWT.JwtEncoder.Encode(System.Collections.Generic.IDictionary{System.String,System.Object},System.Object,System.Byte[])">
            <inheritdoc />
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="T:JWT.JwtParts">
            <summary>
            Represent the parts of a JWT
            </summary>
        </member>
        <member name="M:JWT.JwtParts.#ctor(System.String)">
            <summary>
            Creates a new instance of <see cref="T:JWT.JwtParts" /> from the string representation of a JWT
            </summary>
            <param name="token">The string representation of a JWT</param>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
        </member>
        <member name="M:JWT.JwtParts.#ctor(System.String[])">
            <summary>
            Creates a new instance of <see cref="T:JWT.JwtParts" /> from the array representation of a JWT
            </summary>
            <param name="parts">The array representation of a JWT</param>
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
        </member>
        <member name="P:JWT.JwtParts.Header">
            <summary>
            Gets the Header part of a JWT
            </summary>
        </member>
        <member name="P:JWT.JwtParts.Payload">
            <summary>
            Gets the Payload part of a JWT
            </summary>
        </member>
        <member name="P:JWT.JwtParts.Signature">
            <summary>
            Gets the Signature part of a JWT
            </summary>
        </member>
        <member name="P:JWT.JwtParts.Parts">
            <summary>
            Gets the parts of a JWT
            </summary>
        </member>
        <member name="T:JWT.JwtParts.JwtPartsIndex">
            <summary>
            Helper enum to get the correct part from the array representation of a JWT parts
            </summary>
        </member>
        <member name="T:JWT.JwtValidator">
            <summary>
            Jwt validator.
            </summary>
        </member>
        <member name="M:JWT.JwtValidator.#ctor(JWT.IJsonSerializer,JWT.IDateTimeProvider)">
            <summary>
            Creates an instance of <see cref="T:JWT.JwtValidator" />
            </summary>
            <param name="jsonSerializer">The Json Serializer</param>
            <param name="dateTimeProvider">The DateTime Provider</param>
        </member>
        <member name="M:JWT.JwtValidator.Validate(System.String,System.String,System.String[])">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
        </member>
        <member name="M:JWT.JwtValidator.Validate(System.String,JWT.Algorithms.IAsymmetricAlgorithm,System.Byte[],System.Byte[])">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
        </member>
        <member name="M:JWT.JwtValidator.TryValidate(System.String,System.String,System.String,System.Exception@)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
        </member>
        <member name="M:JWT.JwtValidator.TryValidate(System.String,System.String,System.String[],System.Exception@)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
        </member>
        <member name="M:JWT.JwtValidator.TryValidate(System.String,JWT.Algorithms.IAsymmetricAlgorithm,System.Byte[],System.Byte[],System.Exception@)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
        </member>
        <member name="M:JWT.JwtValidator.CompareCryptoWithSignature(System.String,System.String)">
            <remarks>In the future this method can be opened for extension hence made protected virtual</remarks>
        </member>
        <member name="M:JWT.JwtValidator.ValidateExpClaim(System.Collections.Generic.IReadOnlyDictionary{System.String,System.Object},System.Double)">
            <summary>
            Verifies the 'exp' claim.
            </summary>
            <remarks>See https://tools.ietf.org/html/rfc7515#section-4.1.4</remarks>
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="M:JWT.JwtValidator.ValidateNbfClaim(System.Collections.Generic.IReadOnlyDictionary{System.String,System.Object},System.Double)">
            <summary>
            Verifies the 'nbf' claim.
            </summary>
            <remarks>See https://tools.ietf.org/html/rfc7515#section-4.1.5</remarks>
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
        </member>
        <member name="T:JWT.Serializers.JsonNetSerializer">
            <summary>
            JSON serializer using Newtonsoft.Json implementation.
            </summary>
        </member>
        <member name="M:JWT.Serializers.JsonNetSerializer.#ctor">
            <summary>
            Creates a new instance of <see cref="T:JWT.Serializers.JsonNetSerializer" />
            </summary>
            <remarks>Uses <see cref="M:Newtonsoft.Json.JsonSerializer.CreateDefault" /> as internal serializer</remarks>
        </member>
        <member name="M:JWT.Serializers.JsonNetSerializer.#ctor(Newtonsoft.Json.JsonSerializer)">
            <summary>
            Creates a new instance of <see cref="T:JWT.Serializers.JsonNetSerializer" />
            </summary>
            <param name="serializer">Internal <see cref="T:Newtonsoft.Json.JsonSerializer" /> to use for serialization</param>
        </member>
        <member name="M:JWT.Serializers.JsonNetSerializer.Serialize(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:JWT.Serializers.JsonNetSerializer.Deserialize``1(System.String)">
            <inheritdoc />
        </member>
        <member name="P:JWT.UnixEpoch.Value">
            <summary>
            Describes a point in time, defined as the number of seconds that have elapsed since 00:00:00 UTC, Thursday, 1 January 1970, not counting leap seconds.
            See https://en.wikipedia.org/wiki/Unix_time />
            </summary>
        </member>
        <member name="T:JWT.UtcDateTimeProvider">
            <summary>
            Provider for UTC DateTime.
            </summary>
        </member>
        <member name="M:JWT.UtcDateTimeProvider.GetNow">
            <summary>
            Retuns the current time (UTC).
            </summary>
            <returns></returns>
        </member>
    </members>
</doc>
WebApi/GTech.Solution.Api.WebSite/bin/Microsoft.AI.DependencyCollector.xml
New file
@@ -0,0 +1,919 @@
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Microsoft.AI.DependencyCollector</name>
    </assembly>
    <members>
        <member name="P:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ClientServerDependencyTracker.PretendProfilerIsAttached">
            <summary>
            Gets or sets a value indicating whether pretending the profiler is attached or not.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ClientServerDependencyTracker.BeginTracking(Microsoft.ApplicationInsights.TelemetryClient)">
            <summary>
            The function that needs to be called before sending a request to the server. Creates and initializes dependency telemetry item.
            </summary>
            <param name="telemetryClient">Telemetry client object to initialize the context of the telemetry item.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ClientServerDependencyTracker.EndTracking(Microsoft.ApplicationInsights.TelemetryClient,Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry)">
            <summary>
            Function that needs to be invoked after the request call to the sever. Computes the duration of the request and tracks the dependency telemetry
            item.
            </summary>
            <param name="telemetryClient">Telemetry client object to track the telemetry item.</param>
            <param name="telemetry">Telemetry item to compute the duration and track.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ClientServerDependencyTracker.GetTupleForWebDependencies(System.Net.WebRequest)">
            <summary>
            Gets the tuple from either conditional weak table or cache (based on the framework for the input web request).
            </summary>
            <param name="webRequest">Target web request.</param>
            <returns>Tuple of dependency telemetry and a boolean that tells if the tuple is custom created or not.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ClientServerDependencyTracker.AddTupleForWebDependencies(System.Net.WebRequest,Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry,System.Boolean)">
            <summary>
            Adds the tuple to either conditional weak table or cache (based on the framework for the input web request).
            </summary>
            <param name="webRequest">Target web request.</param>
            <param name="telemetry">Dependency telemetry item to add to the table for the corresponding web request.</param>
            <param name="isCustomCreated">Boolean value that tells if the current telemetry item is being added by the customer or not.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ClientServerDependencyTracker.GetTupleForSqlDependencies(System.Data.SqlClient.SqlCommand)">
            <summary>
            Gets the tuple from either conditional weak table or cache (based on the framework for the input SQL request).
            </summary>
            <param name="sqlRequest">Target SQL request.</param>
            <returns>Tuple of dependency telemetry and a boolean that tells if the tuple is custom created or not.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ClientServerDependencyTracker.AddTupleForSqlDependencies(System.Data.SqlClient.SqlCommand,Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry,System.Boolean)">
            <summary>
            Adds the tuple to either conditional weak table or cache (based on the framework for the input SQL request).
            </summary>
            <param name="sqlRequest">Target SQL request.</param>
            <param name="telemetry">Dependency telemetry item to add to the table for the corresponding SQL request.</param>
            <param name="isCustomCreated">Boolean value that tells if the current telemetry item is being added by the customer or not.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DependencyCollector.Implementation.WebRequestDependencyTrackingHelpers">
            <summary>
            Client-Server dependency tracking.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.WebRequestDependencyTrackingHelpers.SetUserAndSessionContextForWebRequest(Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry,System.Net.WebRequest)">
            <summary>
            Populates WebRequest using the user, session initialized in telemetry item.
            </summary>
            <param name="dependencyTelemetry">Dependency telemetry item.</param>
            <param name="webRequest">Http web request.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.WebRequestDependencyTrackingHelpers.SetCorrelationContextForWebRequest(Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry,System.Net.WebRequest)">
            <summary>
            Populates WebRequest using the operation context in telemetry item.
            </summary>
            <param name="dependencyTelemetry">Dependency telemetry item.</param>
            <param name="webRequest">Http web request.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.WebRequestDependencyTrackingHelpers.CreateAndAddCookie(System.Net.WebRequest,System.String,System.String)">
            <summary>
            Creates and adds cookie to the web request.
            </summary>
            <param name="webRequest">Web request object.</param>
            <param name="key">Cookie key.</param>
            <param name="value">Cookie value.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DependencyCollector.Implementation.DependencyCollectorEventSource">
            <summary>
            ETW EventSource tracing class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.DependencyCollectorEventSource.DependencyTelemetryItemIsNullWarning(System.String)">
            <summary>
            Logs the information when the DependencyTelemetry item is null as warning.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.DependencyCollectorEventSource.WebRequestIsNullWarning(System.String)">
            <summary>
            Logs the information when the HttpWebRequest is null as warning.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.DependencyCollectorEventSource.TrackingAnExistingTelemetryItemVerbose(System.String)">
            <summary>
            Logs the information when a telemetry item that is already existing in the tables (that is currently being tracked) is tracked again.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.DependencyCollectorEventSource.TelemetryToTrackIsNullWarning(System.String)">
            <summary>
            Logs the information when the telemetry item to track is null.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DependencyCollector.Implementation.DependencyCollectorEventSource.Keywords">
            <summary>
            Keywords for the <see cref="T:Microsoft.ApplicationInsights.DependencyCollector.Implementation.DependencyCollectorEventSource"/>.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DependencyCollector.Implementation.DependencyCollectorEventSource.Keywords.UserActionable">
            <summary>
            Key word for user actionable events.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DependencyCollector.Implementation.DependencyCollectorEventSource.Keywords.RddEventKeywords">
            <summary>
            Key word for resource discovery module failures.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkHttpEventListener">
            <summary>
            Provides methods for listening to events from FrameworkEventSource for HTTP.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkHttpEventListener.HttpProcessingFramework">
            <summary>
            The Http processor.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkHttpEventListener.FrameworkEventSourceName">
            <summary>
            The Framework EventSource name.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkHttpEventListener.BeginGetResponseEventId">
            <summary>
            BeginGetResponse Event ID.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkHttpEventListener.EndGetResponseEventId">
            <summary>
            EndGetResponse Event ID.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkHttpEventListener.BeginGetRequestStreamEventId">
            <summary>
            BeginGetRequestStream Event ID.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkHttpEventListener.EndGetRequestStreamEventId">
            <summary>
            EndGetRequestStream Event ID.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkHttpEventListener.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkHttpEventListener.OnEventSourceCreated(System.Diagnostics.Tracing.EventSource)">
            <summary>
            Enables HTTP event source when EventSource is created. Called for all existing
            event sources when the event listener is created and when a new event source is attached to the listener.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkHttpEventListener.OnEventWritten(System.Diagnostics.Tracing.EventWrittenEventArgs)">
            <summary>
            Called whenever an event has been written by an event source for which the event listener has enabled events.
            </summary>
            <param name="eventData">The event arguments that describe the event.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkHttpEventListener.OnBeginGetResponse(System.Diagnostics.Tracing.EventWrittenEventArgs)">
            <summary>
            Called when a postfix of a (HttpWebRequest|FileWebRequest|FtpWebRequest).BeginGetResponse method has been invoked.
            </summary>
            <param name="eventData">The event arguments that describe the event.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkHttpEventListener.OnEndGetResponse(System.Diagnostics.Tracing.EventWrittenEventArgs)">
            <summary>
            Called when a postfix of a (HttpWebRequest|FileWebRequest|FtpWebRequest).EndGetResponse method has been invoked.
            </summary>
            <param name="eventData">The event arguments that describe the event.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkHttpEventListener.OnBeginGetRequestStream(System.Diagnostics.Tracing.EventWrittenEventArgs)">
            <summary>
            Called when a postfix of a (HttpWebRequest|FileWebRequest|FtpWebRequest).BeginGetRequestStream method has been invoked.
            </summary>
            <param name="eventData">The event arguments that describe the event.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkHttpProcessing.OnBeginHttpCallback(System.Int64,System.String)">
            <summary>
            On begin callback from Framework event source.
            </summary>
            <param name="id">This object.</param>
            <param name="resourceName">URI of the web request.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkHttpProcessing.OnEndHttpCallback(System.Int64,System.Nullable{System.Boolean},System.Boolean,System.Nullable{System.Int32})">
            <summary>
            On end callback from Framework event source.
            </summary>
            <param name="id">The id.</param>
            <param name="success">The success to indicate if the dependency call completed successfully or not.</param>
            <param name="synchronous">The synchronous flag to indicate if the dependency call was synchronous or not.</param>
            <param name="statusCode">The HTTP status code of the response.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkHttpProcessing.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerHttpProcessing">
            <summary>
            Concrete class with all processing logic to generate RDD data from the calls backs
            received from Profiler instrumentation for HTTP .
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerHttpProcessing.#ctor(Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration,System.String,Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.ObjectInstanceBasedOperationHolder)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerHttpProcessing"/> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerHttpProcessing.OnBeginForGetResponse(System.Object)">
            <summary>
            On begin callback for GetResponse.
            </summary>
            <param name="thisObj">This object.</param>
            <returns>The context for end callback.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerHttpProcessing.OnEndForGetResponse(System.Object,System.Object,System.Object)">
            <summary>
            On end callback for GetResponse.
            </summary>
            <param name="context">The context.</param>
            <param name="returnValue">The return value.</param>
            <param name="thisObj">This object.</param>
            <returns>The resulting return value.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerHttpProcessing.OnExceptionForGetResponse(System.Object,System.Object,System.Object)">
            <summary>
            On exception callback for GetResponse callback.
            </summary>
            <param name="context">The context.</param>
            <param name="exception">The exception object.</param>
            <param name="thisObj">This object.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerHttpProcessing.OnBeginForGetRequestStream(System.Object,System.Object)">
            <summary>
            On begin callback for GetRequestStream callback.
            </summary>
            <param name="thisObj">This object.</param>
            <param name="transportContext">The transport context parameter.</param>
            <returns>The context for end callback.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerHttpProcessing.OnExceptionForGetRequestStream(System.Object,System.Object,System.Object,System.Object)">
            <summary>
            On exception for GetRequestStream callback.
            Note: There is no call back required for GetRequestStream except on exception cases.
            </summary>
            <param name="context">The context.</param>
            <param name="exception">The exception.</param>
            <param name="thisObj">This object.</param>
            <param name="transportContext">The transport context parameter.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerHttpProcessing.OnBeginForBeginGetResponse(System.Object,System.Object,System.Object)">
            <summary>
            On begin for BeginGetResponse callback.
            </summary>
            <param name="thisObj">This object.</param>
            <param name="callback">The callback parameter.</param>
            <param name="state">The state parameter.</param>
            <returns>The context for end callback.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerHttpProcessing.OnEndForEndGetResponse(System.Object,System.Object,System.Object,System.Object)">
            <summary>
            On end for EndGetResponse callbacks.
            </summary>
            <param name="context">The context.</param>
            <param name="returnValue">The return value.</param>
            <param name="thisObj">This object.</param>
            <param name="asyncResult">The asyncResult parameter.</param>
            <returns>The return value passed.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerHttpProcessing.OnExceptionForEndGetResponse(System.Object,System.Object,System.Object,System.Object)">
            <summary>
            On exception for EndGetResponse callbacks.
            </summary>
            <param name="context">The context.</param>
            <param name="exception">The exception.</param>
            <param name="thisObj">This object.</param>
            <param name="asyncResult">The asyncResult parameter.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerHttpProcessing.OnBeginForBeginGetRequestStream(System.Object,System.Object,System.Object)">
            <summary>
            On begin for BeginGetRequestStream callback.
            </summary>
            <param name="thisObj">This object.</param>
            <param name="callback">The callback parameter.</param>
            <param name="state">The state parameter.</param>
            <returns>The context for end callback.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerHttpProcessing.OnExceptionForEndGetRequestStream(System.Object,System.Object,System.Object,System.Object,System.Object)">
            <summary>
            On exception for EndGetRequestStream callback.
            Note: There is no call back required for EndGetRequestStream except on exception cases.
            </summary>
            <param name="context">The context.</param>
            <param name="exception">The exception.</param>
            <param name="thisObj">This object.</param>
            <param name="asyncResult">The asyncResult parameter.</param>
            <param name="transportContext">The transportContext parameter.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerHttpProcessing.GetResourceName(System.Object)">
            <summary>
            Gets HTTP request resource name.
            </summary>
            <param name="thisObj">Represents web request.</param>
            <returns>The resource name if possible otherwise empty string.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerHttpProcessing.OnBegin(System.Object,System.Boolean)">
            <summary>
            Common helper for all Begin Callbacks.
            </summary>
            <param name="thisObj">This object.</param>
            <param name="isAsyncCall">Indicates if the method used is async or not.</param>
            <returns>Null object as all context is maintained in this class via weak tables.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerHttpProcessing.OnEnd(System.Object,System.Object,System.Object)">
            <summary>
            Common helper for all End Callbacks.
            </summary>
            <param name="exception">The exception object if any.</param>
            <param name="thisObj">This object.</param>
            <param name="returnValue">Return value of the function if any.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1">
            <summary>
            The implementation of cache provider for Windows Phone and Windows Store as MemoryCache is not available there.
            </summary>
            <typeparam name="TValue">Type of items to store in the cache.</typeparam>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1.readerWriterLock">
            <summary>
            Reader-Writer Lock for thread safety.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1.dictionary">
            <summary>
            Dictionary of cache items for fast Get and Contains operations.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1.sortedList">
            <summary>
            Cache items sorted by the time of adding to cache. Required for to clear fast cache items when items are expired.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1.maxSize">
            <summary>
            The maximum number of elements in the cache to avoid out of memory crashes.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1.timer">
            <summary>
            Timer for clearing expired cache items on recurring bases.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1.expirationMilliseconds">
            <summary>
            The duration in milliseconds after which item in the cache is expired.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1.#ctor(System.Int32,System.Int32,System.Boolean)">
            <summary>
             Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1" /> class.
            </summary>
            <param name="expirationMilliseconds">Expiration timeout in milliseconds for an object to live in the cache.</param>
            <param name="maxSize">Maximum number of entries to cache (adjustable at runtime with MaxSize property).</param>
            <param name="synchronized">True to use a reader-writer lock to protect the data in the MemoryCacheList; false if the caller will handle synchronization.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1.Contains(System.Int64)">
            <summary>
            Checks whether the cache entry already exists in the cache.
            </summary>
            <param name="key">A unique identifier for the cache entry.</param>
            <returns>true if the cache contains a cache entry with the same key value as key; otherwise, false.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1.Get(System.Int64)">
            <summary>
            Gets the specified cache entry from the cache.
            </summary>
            <param name="key">A unique identifier for the cache entry.</param>
            <returns>A reference to the cache entry identified by key if the entry exists; otherwise, null.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1.Set(System.Int64,`0)">
            <summary>
            Inserts a cache entry into the cache.
            </summary>
            <param name="key">A unique identifier for the cache entry.</param>
            <param name="value">The object to insert.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1.Remove(System.Int64)">
            <summary>
            Removes a specific key from the cache.
            </summary>
            <param name="key">Key to remove.</param>
            <returns>An object that represents the value of the removed cache entry that was specified by the key, or null if the specified entry was not found.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1.ClearExpiredCacheItems(System.Object)">
            <summary>
            The timer callback that clears expired items in the cache.
            </summary>
            <param name="state">An object containing information to be used by the callback method, or null.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1.Add(System.Int64,`0,System.Boolean)">
            <summary>
            Adds the specified key and value to the dictionary.
            </summary>
            <param name="key">Key to add.</param>
            <param name="value">Value to associate with key.</param>
            <param name="overwrite">If true, will overwrite an existing key.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1.MemoryCacheEntry">
            <summary>
            An entry in the MemoryCacheList.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1.MemoryCacheEntry.#ctor(System.Int64,`0)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1.MemoryCacheEntry" /> class.
            </summary>
            <param name="key">The key of the element.</param>
            <param name="value">The value of the element.</param>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1.MemoryCacheEntry.Key">
            <summary>
            Gets the key of the element.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1.MemoryCacheEntry.Value">
            <summary>
            Gets or sets the value of the element.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1.MemoryCacheEntry.CreatedTicks">
            <summary>
            Gets number of ticks elapsed on the clock since the element was created.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1.MemmoryCacheEntryTimeComparer">
            <summary>
            Exposes a method that compares two MemoryCacheEntry objects.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider`1.MemmoryCacheEntryTimeComparer.Compare(Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider{`0}.MemoryCacheEntry,Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheProvider{`0}.MemoryCacheEntry)">
            <summary>
            Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other.
            </summary>
            <param name="x">The first object to compare.</param>
            <param name="y">The second object to compare.</param>
            <returns>A signed integer that indicates the relative values of x and y, as shown in the following table.</returns>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.ICacheProvider`1">
            <summary>
            Represents an object cache and provides the base methods and properties for accessing the object cache.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.ICacheProvider`1.Contains(System.Int64)">
            <summary>
            Checks whether the cache entry already exists in the cache.
            </summary>
            <param name="key">A unique identifier for the cache entry.</param>
            <returns>true if the cache contains a cache entry with the same key value as key; otherwise, false.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.ICacheProvider`1.Get(System.Int64)">
            <summary>
            Gets the specified cache entry from the cache.
            </summary>
            <param name="key">A unique identifier for the cache entry.</param>
            <returns>A reference to the cache entry identified by key if the entry exists; otherwise, null.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.ICacheProvider`1.Set(System.Int64,`0)">
            <summary>
            Inserts a cache entry into the cache.
            </summary>
            <param name="key">A unique identifier for the cache entry.</param>
            <param name="value">The object to insert.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.ICacheProvider`1.Remove(System.Int64)">
            <summary>
            Removes the cache entry from the cache.
            </summary>
            <param name="key">A unique identifier for the cache entry.</param>
            <returns>True if the element is successfully found and removed; otherwise, false. This method returns false if key is not found.</returns>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.OperationWatch">
            <summary>
            Single high precision clock used by operations.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.OperationWatch.Watch">
            <summary>
            High precision stopwatch.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.OperationWatch.HundredNanosecondsPerTick">
            <summary>
            Number of 100 nanoseconds per high-precision clock tick.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.OperationWatch.StartTime">
            <summary>
            The time clock started.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.OperationWatch.ElapsedTicks">
            <summary>
            Gets number of ticks elapsed on the clock since the start.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.OperationWatch.Duration(System.Int64,System.Int64)">
            <summary>
            Calculates time between two clock readings.
            </summary>
            <param name="fromTicks">Start time in ticks.</param>
            <param name="toTicks">End time in ticks.</param>
            <returns>Time between two clock readings.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.OperationWatch.Timestamp(System.Int64)">
            <summary>
            Converts time on the operation clock (in ticks) to date and time structure.
            </summary>
            <param name="elapsedTicks">Ticks elapsed according to operation watch.</param>
            <returns>Date time structure representing the date and time that corresponds to the operation clock reading.</returns>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.SortedList`1">
            <summary>
            Represents a collection of sorted elements that are accessible by index.
            </summary>
            <typeparam name="T">The type of element.</typeparam>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.SortedList`1.list">
            <summary>
            Represents a collection of objects that can be individually accessed by index.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.SortedList`1.comparer">
            <summary>
            Exposes a method that compares two objects.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.SortedList`1.#ctor(System.Collections.Generic.IComparer{`0})">
            <summary>
            Initializes a new instance of the SortedList class that is empty.
            </summary>
            <param name="comparer">The IComparer implementation to use when comparing elements.</param>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.SortedList`1.Count">
            <summary>
            Gets the number of elements contained in a SortedList object.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.SortedList`1.Item(System.Int32)">
            <summary>
            Gets the element at a specified index in a sequence.
            </summary>
            <param name="index">The zero-based index of the element to get.</param>
            <returns>The element at the specified position in the source sequence.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.SortedList`1.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            <returns>An IEnumerator object that can be used to iterate through the collection.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.SortedList`1.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            <returns>An IEnumerator object that can be used to iterate through the collection.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.SortedList`1.Add(`0)">
            <summary>
            Adds an element with the specified value to a SortedList object.
            </summary>
            <param name="item">Item to add.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.SortedList`1.RemoveAt(System.Int32)">
            <summary>
            Removes the element at the specified index of a SortedList object.
            </summary>
            <param name="index">The zero-based index of the element to remove.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.SortedList`1.Remove(`0)">
            <summary>
            Removes the element with the specified value from a SortedList object.
            </summary>
            <param name="item">Item to remove.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.SortedList`1.TryIndexOf(`0,System.Boolean@)">
            <summary>
            Determines the index of a specific item in the IList.
            </summary>
            <param name="item">The object to locate in the IList.</param>
            <param name="found">True if value is found in the list, otherwise false.</param>
            <returns>The index of value if found in the list; otherwise, the index of value where it needs to be inserted.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ApplicationInsightsUrlFilter.IsApplicationInsightsUrl(System.String)">
            <summary>
            Determines whether an URL is application insights URL.
            </summary>
            <param name="url">HTTP URL.</param>
            <returns>True if URL is application insights url, otherwise false.</returns>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkSqlEventListener">
            <summary>
            Provides methods for listening to events from FrameworkEventSource for SQL.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkSqlEventListener.SqlProcessingFramework">
            <summary>
            The SQL processor.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkSqlEventListener.AdoNetEventSourceName">
            <summary>
            The Framework EventSource name for SQL.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkSqlEventListener.BeginExecuteEventId">
            <summary>
            BeginExecute Event ID.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkSqlEventListener.EndExecuteEventId">
            <summary>
            EndExecute Event ID.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkSqlEventListener.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkSqlEventListener.OnEventSourceCreated(System.Diagnostics.Tracing.EventSource)">
            <summary>
            Enables SQL event source when EventSource is created. Called for all existing
            event sources when the event listener is created and when a new event source is attached to the listener.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkSqlEventListener.OnEventWritten(System.Diagnostics.Tracing.EventWrittenEventArgs)">
            <summary>
            Called whenever an event has been written by an event source for which the event listener has enabled events.
            </summary>
            <param name="eventData">The event arguments that describe the event.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkSqlEventListener.OnBeginExecute(System.Diagnostics.Tracing.EventWrittenEventArgs)">
            <summary>
            Called when a postfix of a SQLCommand begin methods have been invoked.
            </summary>
            <param name="eventData">The event arguments that describe the event.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkSqlEventListener.OnEndExecute(System.Diagnostics.Tracing.EventWrittenEventArgs)">
            <summary>
            Called when a postfix of a postfix of a SQLCommand end methods have been invoked.
            </summary>
            <param name="eventData">The event arguments that describe the event.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkSqlProcessing.#ctor(Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration,Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.CacheBasedOperationHolder)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkSqlProcessing"/> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkSqlProcessing.OnBeginExecuteCallback(System.Int64,System.String,System.String,System.String)">
            <summary>
            On begin callback from Framework event source.
            </summary>
            <param name="id">Identifier of SQL connection object.</param>
            <param name="dataSource">Data source name.</param>
            <param name="database">Database name.</param>
            <param name="commandText">Command text.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkSqlProcessing.OnEndExecuteCallback(System.Int64,System.Boolean,System.Boolean,System.Int32)">
            <summary>
            On end callback from Framework event source.
            </summary>
            <param name="id">Identifier of SQL connection object.</param>
            <param name="success">Indicate whether operation completed successfully.</param>
            <param name="synchronous">Indicates whether operation was called synchronously or asynchronously.</param>
            <param name="sqlExceptionNumber">SQL exception number.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.FrameworkSqlProcessing.GetResourceName(System.String,System.String,System.String)">
            <summary>
            Gets SQL command resource name.
            </summary>
            <param name="dataSource">DataSource name.</param>
            <param name="database">Database name.</param>
            <param name="commandText">CommandText name.</param>
            <returns>The resource name if possible otherwise empty string.</returns>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerSqlProcessing">
            <summary>
            Concrete class with all processing logic to generate RDD data from the calls backs
            received from Profiler instrumentation for SQL.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerSqlProcessing.#ctor(Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration,System.String,Microsoft.ApplicationInsights.DependencyCollector.Implementation.Operation.ObjectInstanceBasedOperationHolder)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerSqlProcessing"/> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerSqlProcessing.OnBeginForExecuteReader(System.Object,System.Object,System.Object)">
            <summary>
            On begin callback for ExecuteReader.
            </summary>
            <param name="thisObj">This object.</param>
            <param name="behavior">The callback parameter.</param>
            <param name="method">The state parameter.</param>
            <returns>The context for end callback.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerSqlProcessing.OnBeginForSync(System.Object)">
            <summary>
            On begin callback for sync methods except ExecuteReader.
            </summary>
            <param name="thisObj">This object.</param>
            <returns>The context for end callback.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerSqlProcessing.OnEndForExecuteReader(System.Object,System.Object,System.Object,System.Object,System.Object)">
            <summary>
            On end callback for ExecuteReader.
            </summary>
            <param name="context">The context.</param>
            <param name="returnValue">The return value.</param>
            <param name="thisObj">This object.</param>
            <param name="behavior">The callback parameter.</param>
            <param name="method">The state parameter.</param>
            <returns>The resulting return value.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerSqlProcessing.OnEndForSync(System.Object,System.Object,System.Object)">
            <summary>
            On end for sync methods except ExecuteReader callback.
            </summary>
            <param name="context">The context.</param>
            <param name="returnValue">The return value.</param>
            <param name="thisObj">This object.</param>
            <returns>The resulting return value.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerSqlProcessing.OnExceptionForExecuteReader(System.Object,System.Object,System.Object,System.Object,System.Object)">
            <summary>
            On exception callback for ExecuteReader.
            </summary>
            <param name="context">The context.</param>
            <param name="exception">The exception.</param>
            <param name="thisObj">This object.</param>
            <param name="behavior">The callback parameter.</param>
            <param name="method">The state parameter.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerSqlProcessing.OnExceptionForSync(System.Object,System.Object,System.Object)">
            <summary>
            On end callback for sync methods except ExecuteReader.
            </summary>
            <param name="context">The context.</param>
            <param name="exception">The exception.</param>
            <param name="thisObj">This object.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerSqlProcessing.OnBeginForBeginExecuteNonQueryInternal(System.Object,System.Object,System.Object,System.Object,System.Object)">
            <summary>
            On begin for BeginExecuteNonQueryInternal callback.
            </summary>
            <param name="thisObj">This object.</param>
            <param name="callback">The callback parameter.</param>
            <param name="stateObject">The stateObject parameter.</param>
            <param name="timeout">The timeout parameter.</param>
            <param name="asyncWrite">The asyncWrite parameter.</param>
            <returns>The context for end callback.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerSqlProcessing.OnBeginForBeginExecuteReaderInternal(System.Object,System.Object,System.Object,System.Object,System.Object,System.Object)">
            <summary>
            On begin for BeginExecuteReaderInternal callback.
            </summary>
            <param name="thisObj">This object.</param>
            <param name="behavior">The behavior parameter.</param>
            <param name="callback">The callback parameter.</param>
            <param name="stateObject">The stateObject parameter.</param>
            <param name="timeout">The timeout parameter.</param>
            <param name="asyncWrite">The asyncWrite parameter.</param>
            <returns>The context for end callback.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerSqlProcessing.OnBeginForBeginExecuteXmlReaderInternal(System.Object,System.Object,System.Object,System.Object,System.Object)">
            <summary>
            On begin for BeginExecuteXmlReaderInternal callback.
            </summary>
            <param name="thisObj">This object.</param>
            <param name="callback">The callback parameter.</param>
            <param name="stateObject">The stateObject parameter.</param>
            <param name="timeout">The timeout parameter.</param>
            <param name="asyncWrite">The asyncWrite parameter.</param>
            <returns>The context for end callback.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerSqlProcessing.OnEndForSqlAsync(System.Object,System.Object,System.Object,System.Object)">
            <summary>
            On end for all SQL async callbacks.
            </summary>
            <param name="context">The context.</param>
            <param name="returnValue">The return value.</param>
            <param name="thisObj">This object.</param>
            <param name="asyncResult">The asyncResult parameter.</param>
            <returns>The context for end callback.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerSqlProcessing.OnExceptionForSqlAsync(System.Object,System.Object,System.Object,System.Object)">
            <summary>
            On exception for all SQL async callback.
            </summary>
            <param name="context">The context.</param>
            <param name="exception">The exception.</param>
            <param name="thisObj">This object.</param>
            <param name="asyncResult">The asyncResult parameter.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerSqlProcessing.GetResourceName(System.Object)">
            <summary>
            Gets SQL command resource name.
            </summary>
            <param name="thisObj">The SQL command.</param>
            <remarks>Before we have clarity with SQL team around EventSource instrumentation, providing name as a concatenation of parameters.</remarks>
            <returns>The resource name if possible otherwise empty string.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerSqlProcessing.GetCommandName(System.Object)">
            <summary>
            Return CommandTest for SQL resource.
            </summary>
            <param name="thisObj">The SQL command.</param>
            <returns>Returns the command text or empty.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerSqlProcessing.OnBegin(System.Object,System.Boolean)">
            <summary>
             Common helper for all Begin Callbacks.
            </summary>
            <param name="thisObj">This object.</param>
            <param name="isAsyncCall">Is Async Invocation.</param>
            <returns>The context for end callback.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.Implementation.ProfilerSqlProcessing.OnEnd(System.Object,System.Object,System.Object,System.Boolean)">
            <summary>
             Common helper for all End Callbacks.
            </summary>
            <param name="context">The context.</param>
            <param name="exception">The exception object if any.</param>
            <param name="thisObj">This object.</param>
            <param name="isAsync">Whether the End is for an async invocation.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule">
            <summary>
            Remote dependency monitoring.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule.DisableRuntimeInstrumentation">
            <summary>
            Gets or sets a value indicating whether to disable runtime instrumentation.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule.Dispose">
            <summary>
            IDisposable implementation.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule.Initialize(Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration)">
            <summary>
            Initialize method is called after all configuration properties have been loaded from the configuration.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule.Dispose(System.Boolean)">
            <summary>
            IDisposable implementation.
            </summary>
            <param name="disposing">The method has been called directly or indirectly by a user's code.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule.InitializeForFrameworkEventSource">
            <summary>
            Initialize for framework event source (not supported for Net40).
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule.InitializeForRuntimeInstrumentationOrFramework">
            <summary>
            Initialize for runtime instrumentation or framework event source.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DependencyCollector.TelemetryExtensionsForDependencyCollector">
            <summary>
            Dependency Telemetry extension methods to associate with request objects and to store in conditional/cache tables to avoid duplicate tracking.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.TelemetryExtensionsForDependencyCollector.AssociateTelemetryWithWebRequest(Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry,System.Net.WebRequest,System.Boolean,System.Boolean)">
            <summary>
            Associates telemetry item to a web request to avoid duplicate tracking, and populates cookies with data from initialized telemetry item if setCookies is set to true.
            When there is an existing telemetry item in the corresponding to the given WEB REQUEST, we return the existing telemetry and associate the same with the WEB REQUEST.
            </summary>
            <param name="telemetry">Telemetry object that needs to be associated with the web request.</param>
            <param name="webRequest">Web request object which we use to populate from the information obtained from the initialized telemetry.</param>
            <param name="setCookies">Set cookies enables the process of setting the cookies to the web request. By default it is set to false.</param>
            <param name="setCorrelationContext">Set request headers to correlate dependency telemetry item with the request telemetry item that will process this http request.</param>
            <returns>Dependency telemetry item with an associated dependency telemetry item.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DependencyCollector.TelemetryExtensionsForDependencyCollector.AssociateTelemetryWithSqlRequest(Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry,System.Data.SqlClient.SqlCommand)">
            <summary>
            Associates telemetry item to a SQL command object to to avoid duplicate tracking.
            When there is an existing telemetry item in the corresponding to the given SQL REQUEST, we return the existing telemetry and associate the same with the SQL REQUEST.
            </summary>
            <param name="telemetry">Telemetry object that needs to be associated with the web request.</param>
            <param name="sqlRequest">SQL request object which is used as a key to store in the tables.</param>
            <returns>Dependency telemetry item with an associated dependency telemetry item.</returns>
        </member>
    </members>
</doc>
WebApi/GTech.Solution.Api.WebSite/bin/Microsoft.AI.ServerTelemetryChannel.xml
New file
@@ -0,0 +1,855 @@
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Microsoft.AI.ServerTelemetryChannel</name>
    </assembly>
    <members>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor">
            <summary>
            Telemetry processor for sampling telemetry at a dynamic rate before sending to Application Insights.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor.samplingProcessor">
            <summary>
            Fixed-rate sampling telemetry processor.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor.estimatorProcessor">
            <summary>
            Sampling percentage estimator telemetry processor.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor.estimatorSettings">
            <summary>
            Sampling percentage estimator settings.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor.evaluationCallback">
            <summary>
            Callback invoked every time sampling percentage is evaluated.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor.#ctor(Microsoft.ApplicationInsights.Extensibility.ITelemetryProcessor)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor"/> class.
            <param name="next">Next TelemetryProcessor in call chain.</param>
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor.#ctor(Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings,Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.AdaptiveSamplingPercentageEvaluatedCallback,Microsoft.ApplicationInsights.Extensibility.ITelemetryProcessor)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor"/> class.
            <param name="settings">Sampling percentage estimator settings.</param>
            <param name="callback">Callback invoked every time sampling percentage is evaluated.</param>
            <param name="next">Next TelemetryProcessor in call chain.</param>
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor.InitialSamplingPercentage">
            <summary>
            Gets or sets initial sampling percentage applied at the start
            of the process to dynamically vary the percentage.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor.MaxTelemetryItemsPerSecond">
            <summary>
            Gets or sets maximum rate of telemetry items per second
            dynamic sampling will try to adhere to.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor.MinSamplingPercentage">
            <summary>
            Gets or sets minimum sampling percentage that can be set
            by the dynamic sampling percentage algorithm.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor.MaxSamplingPercentage">
            <summary>
            Gets or sets maximum sampling percentage that can be set
            by the dynamic sampling percentage algorithm.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor.EvaluationInterval">
            <summary>
            Gets or sets duration of the sampling percentage evaluation interval.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor.SamplingPercentageDecreaseTimeout">
            <summary>
            Gets or sets a value indicating how long to not to decrease
            sampling percentage after last change to prevent excessive fluctuation.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor.SamplingPercentageIncreaseTimeout">
            <summary>
            Gets or sets a value indicating how long to not to increase
            sampling percentage after last change to prevent excessive fluctuation.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor.MovingAverageRatio">
            <summary>
            Gets or sets exponential moving average ratio (factor) applied
            during calculation of rate of telemetry items produced by the application.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor.Process(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Processes telemetry item.
            </summary>
            <param name="item">Telemetry item to process.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor.Dispose">
            <summary>
            Disposes the object.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor.Dispose(System.Boolean)">
            <summary>
            Disposes the object.
            </summary>
            <param name="disposing">True if disposing.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.ApplicationFolderProvider.CheckAccessPermissions(System.IO.DirectoryInfo)">
            <summary>
            Throws <see cref="T:System.UnauthorizedAccessException" /> if the process lacks the required permissions to access the <paramref name="telemetryDirectory"/>.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.ApplicationStoppingEventArgs">
            <summary>
            Encapsulates arguments of the <see cref="E:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.IApplicationLifecycle.Stopping"/> event.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.ApplicationStoppingEventArgs.#ctor(System.Func{System.Func{System.Threading.Tasks.Task},System.Threading.Tasks.Task})">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.ApplicationStoppingEventArgs"/> class with the specified runner of asynchronous methods.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.ApplicationStoppingEventArgs.Run(System.Func{System.Threading.Tasks.Task})">
            <summary>
            Runs the specified asynchronous method while preventing the application from exiting.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.CurrentThreadTaskScheduler">
            <summary>
            Runs tasks synchronously, on the current thread.
            From <a href="http://code.msdn.microsoft.com/Samples-for-Parallel-b4b76364/view/SourceCode"/>.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.ExceptionHandler.Start(System.Func{System.Threading.Tasks.Task})">
            <summary>
            Starts the <paramref name="asyncMethod"/>, catches and logs any exceptions it may throw.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.IApplicationFolderProvider.GetApplicationFolder">
            <summary>
            Returns a per-user/per-application folder.
            </summary>
            <returns>
            An <see cref="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.IPlatformFolder"/> instance, or <c>null</c> if current application does not have access to file system.
            </returns>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.IApplicationLifecycle">
            <summary>
            Encapsulates application lifecycle events.
            </summary>
        </member>
        <member name="E:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.IApplicationLifecycle.Started">
            <summary>
            Occurs when a new instance of the application is started or an existing instance is activated.
            </summary>
        </member>
        <member name="E:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.IApplicationLifecycle.Stopping">
            <summary>
            Occurs when the application is suspending or closing.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.INetwork">
            <summary>
            Encapsulates platform-specific behavior of network information APIs.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.INetwork.AddAddressChangedEventHandler(System.Net.NetworkInformation.NetworkAddressChangedEventHandler)">
            <summary>
            Adds <see cref="E:System.Net.NetworkInformation.NetworkChange.NetworkAddressChanged"/> event handler.
            </summary>
            <remarks>
            Defined as a method instead of an event in this interface because C# compiler
            changes signature of event in a Windows Runtime component, making it very hard
            to implement properly.
            </remarks>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.INetwork.RemoveAddressChangeEventHandler(System.Net.NetworkInformation.NetworkAddressChangedEventHandler)">
            <summary>
            Removes <see cref="E:System.Net.NetworkInformation.NetworkChange.NetworkAddressChanged"/> event handler.
            </summary>
            <param name="handler">Address changed event handler.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.Network">
            <summary>
            Encapsulates platform-specific behavior of network information APIs.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.NetworkAvailabilityTransmissionPolicy.Dispose">
            <summary>
            Releases resources used by this <see cref="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.NetworkAvailabilityTransmissionPolicy"/> instance.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.TelemetryBuffer">
            <summary>
            Accumulates <see cref="T:Microsoft.ApplicationInsights.Channel.ITelemetry"/> items for efficient transmission.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.TelemetryBuffer.Capacity">
            <summary>
            Gets or sets the maximum number of telemetry items that can be buffered before transmission.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">The value is zero or less.</exception>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.TelemetryBuffer.Dispose">
            <summary>
            Releases resources used by this <see cref="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.TelemetryBuffer"/> instance.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.TelemetryBuffer.Process(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Processes the specified <paramref name="item"/> item.
            </summary>
            <exception cref="T:System.ArgumentNullException">The <paramref name="item"/> is null.</exception>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.TelemetryBuffer.FlushAsync">
            <summary>
            Passes all <see cref="T:Microsoft.ApplicationInsights.Channel.ITelemetry"/> items to the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.TelemetrySerializer"/> and empties the queue.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.TelemetrySerializer.EndpointAddress">
            <summary>
            Gets or sets the endpoint address.
            </summary>
            <remarks>
            If endpoint address is set to null, the default endpoint address will be used.
            </remarks>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.ThrottlingTransmissionPolicy.PauseDuration">
            <summary>
            Gets a value that determines amount of time transmission sending will
            be paused before attempting to resume transmission after a network error is detected.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.TransmissionBuffer.Capacity">
            <summary>
            Gets or sets the maximum amount of memory in bytes for buffering <see cref="T:Microsoft.ApplicationInsights.Channel.Transmission"/> objects.
            </summary>
            <remarks>
            Use this property to limit the amount of memory used to store telemetry in memory of the
            application before transmission. Once the maximum amount of memory is
            reached, <see cref="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.TransmissionBuffer.Enqueue(System.Func{Microsoft.ApplicationInsights.Channel.Transmission})"/> will reject new transmissions.
            </remarks>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.TransmissionBuffer.Size">
            <summary>
            Gets the combined length of <see cref="P:Microsoft.ApplicationInsights.Channel.Transmission.Content"/> stored in the buffer.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.TransmissionExtensions.Load(System.IO.Stream)">
            <summary>
            Loads a new transmission from the specified <paramref name="stream"/>.
            </summary>
            <returns>Return transmission loaded from file; throws FormatException is file is corrupted.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.TransmissionExtensions.Save(Microsoft.ApplicationInsights.Channel.Transmission,System.IO.Stream)">
            <summary>
            Saves the transmission to the specified <paramref name="stream"/>.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.TransmissionSender.Capacity">
            <summary>
            Gets or sets the the maximum number of <see cref="T:Microsoft.ApplicationInsights.Channel.Transmission"/> objects that can be sent simultaneously.
            </summary>
            <remarks>
            Use this property to limit the number of concurrent HTTP connections. Once the maximum number of
            transmissions in progress is reached, <see cref="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.TransmissionSender.Enqueue(System.Func{Microsoft.ApplicationInsights.Channel.Transmission})"/> will stop accepting new transmissions
            until previous transmissions are sent.
            </remarks>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.TransmissionStorage.Capacity">
            <summary>
            Gets or sets the total amount of disk space, in bytes, allowed for storing transmission files.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.Transmitter">
            <summary>
            Implements throttled and persisted transmission of telemetry to Application Insights.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.Transmitter.#ctor(Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.TransmissionSender,Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.TransmissionBuffer,Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.TransmissionStorage,System.Collections.Generic.IEnumerable{Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.TransmissionPolicy})">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.Transmitter" /> class. Used only for UTs.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.Transmitter.Dispose">
            <summary>
            Releases resources used by this <see cref="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.Transmitter"/> instance.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.WebApplicationLifecycle">
            <summary>
            Implements the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.IApplicationLifecycle"/> events for web applications.
            </summary>
        </member>
        <member name="E:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.WebApplicationLifecycle.Started">
            <summary>
            The <see cref="E:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.WebApplicationLifecycle.Started"/> event is raised when the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.WebApplicationLifecycle"/> instance is first created.
            This event is not raised for web applications.
            </summary>
        </member>
        <member name="E:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.WebApplicationLifecycle.Stopping">
            <summary>
            The <see cref="E:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.WebApplicationLifecycle.Stopping"/> event is raised when <see cref="T:System.Web.Hosting.HostingEnvironment"/> calls the <see cref="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.WebApplicationLifecycle.Stop(System.Boolean)"/> method.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.WebApplicationLifecycle.Dispose">
            <summary>
            Unregisters the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.WebApplicationLifecycle"/> from <see cref="T:System.Web.Hosting.HostingEnvironment"/>.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.Implementation.WebApplicationLifecycle.Stop(System.Boolean)">
            <summary>
            Gets called by <see cref="T:System.Web.Hosting.HostingEnvironment"/> when the web application is stopping.
            </summary>
            <param name="immediate">
            False when the method is invoked first time, allowing async shutdown operations.
            True when the method is invoked second time, demanding to unregister immediately.
            </param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.SamplingTelemetryProcessor">
            <summary>
            Represents a telemetry processor for sampling telemetry at a fixed-rate before sending to Application Insights.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.SamplingTelemetryProcessor.#ctor(Microsoft.ApplicationInsights.Extensibility.ITelemetryProcessor)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.SamplingTelemetryProcessor"/> class.
            <param name="next">Next TelemetryProcessor in call chain.</param>
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.SamplingTelemetryProcessor.SamplingPercentage">
            <summary>
            Gets or sets data sampling percentage (between 0 and 100) for all <see cref="T:Microsoft.ApplicationInsights.Channel.ITelemetry"/>
            objects logged in this <see cref="T:Microsoft.ApplicationInsights.TelemetryClient"/>.
            </summary>
            <remarks>
            All sampling percentage must be in a ratio of 100/N where N is a whole number (2, 3, 4, …). E.g. 50 for 1/2 or 33.33 for 1/3.
            Failure to follow this pattern can result in unexpected / incorrect computation of values in the portal.
            </remarks>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.SamplingTelemetryProcessor.Next">
            <summary>
            Gets or sets the next TelemetryProcessor in call chain.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.SamplingTelemetryProcessor.Process(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Process a collected telemetry item.
            </summary>
            <param name="item">A collected Telemetry item.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel">
            <summary>
            Represents a communication channel for sending telemetry to Application Insights via HTTP/S.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel"/> class.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel.DeveloperMode">
            <summary>
            Gets or sets a value indicating whether developer mode of telemetry transmission is enabled.
            When developer mode is True, <see cref="N:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel"/> sends telemetry to Application Insights immediately
            during the entire lifetime of the application. When developer mode is False, <see cref="N:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel"/>
            respects production sending policies defined by other properties.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel.EndpointAddress">
            <summary>
            Gets or sets the HTTP address where the telemetry is sent.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel.MaxTelemetryBufferDelay">
            <summary>
            Gets or sets the maximum telemetry batching interval. Once the interval expires, <see cref="N:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel"/>
            serializes the accumulated telemetry items for transmission.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel.MaxTelemetryBufferCapacity">
            <summary>
            Gets or sets the maximum number of telemetry items will accumulate in a memory before
            the <see cref="N:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel"/> serializing them for transmission to Application Insights.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel.MaxTransmissionBufferCapacity">
            <summary>
            Gets or sets the maximum amount of memory, in bytes, that <see cref="N:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel"/> will use
            to buffer transmissions before sending them to Application Insights.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel.MaxTransmissionSenderCapacity">
            <summary>
            Gets or sets the maximum number of telemetry transmissions that <see cref="N:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel"/> will
            send to Application Insights at the same time.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel.MaxTransmissionStorageCapacity">
            <summary>
            Gets or sets the maximum amount of disk space, in bytes, that <see cref="N:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel"/> will
            use to store unsent telemetry transmissions.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel.StorageFolder">
            <summary>
            Gets or sets the folder to be used as a temporary storage for events that were not sent because of temporary connectivity issues.
            If folder was not provided or inaccessible. %LocalAppData% or %Temp% folder will be used.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel.TelemetryProcessor">
            <summary>
            Gets or sets first TelemetryProcessor in processor call chain.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel.Dispose">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel.Send(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Sends an instance of ITelemetry through the channel.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel.Flush">
            <summary>
            Synchronously flushes the telemetry buffer.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel.Initialize(Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration)">
            <summary>
            Initialize method is called after all configuration properties have been loaded from the configuration.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.ExponentialMovingAverageCounter">
            <summary>
            Exponential moving average counter.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.ExponentialMovingAverageCounter.average">
            <summary>
            Average value of the counter.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.ExponentialMovingAverageCounter.current">
            <summary>
            Value of the counter during current interval of time.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.ExponentialMovingAverageCounter.#ctor(System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.ExponentialMovingAverageCounter"/> class.
            </summary>
            <param name="coefficient">Exponential coefficient.</param>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.ExponentialMovingAverageCounter.Coefficient">
            <summary>
            Gets exponential coefficient (must be between 0 and 1).
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.ExponentialMovingAverageCounter.Average">
            <summary>
            Gets exponential moving average value of the counter.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.ExponentialMovingAverageCounter.Increment">
            <summary>
            Increments counter value.
            </summary>
            <returns>Incremented value.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.ExponentialMovingAverageCounter.StartNewInterval">
            <summary>
            Zeros out current value and starts new 'counter interval'.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.IRandomNumberBatchGenerator">
            <summary>
            Interface for random number generator capable of producing
            a batch of unsigned 64 bit random numbers.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings">
            <summary>
            Container for all the settings applicable to the process of dynamically estimating
            application telemetry sampling percentage.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings.default">
            <summary>
            Set of default settings.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings"/> class.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings.MaxTelemetryItemsPerSecond">
            <summary>
            Gets or sets maximum rate of telemetry items per second
            dynamic sampling will try to adhere to.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings.InitialSamplingPercentage">
            <summary>
            Gets or sets initial sampling percentage applied at the start
            of the process to dynamically vary the percentage.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings.MinSamplingPercentage">
            <summary>
            Gets or sets minimum sampling percentage that can be set
            by the dynamic sampling percentage algorithm.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings.MaxSamplingPercentage">
            <summary>
            Gets or sets maximum sampling percentage that can be set
            by the dynamic sampling percentage algorithm.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings.EvaluationInterval">
            <summary>
            Gets or sets duration of the sampling percentage evaluation
            interval in seconds.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings.SamplingPercentageDecreaseTimeout">
            <summary>
            Gets or sets a value indicating how long to not to decrease
            sampling percentage after last change to prevent excessive fluctuation.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings.SamplingPercentageIncreaseTimeout">
            <summary>
            Gets or sets a value indicating how long to not to increase
            sampling percentage after last change to prevent excessive fluctuation.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings.MovingAverageRatio">
            <summary>
            Gets or sets exponential moving average ratio (factor) applied
            during calculation of rate of telemetry items produced by the application.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings.EffectiveMaxTelemetryItemsPerSecond">
            <summary>
            Gets effective maximum telemetry items rate per second
            adjusted in case user makes an error while setting a value.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings.EffectiveInitialSamplingRate">
            <summary>
            Gets effective initial sampling rate
            adjusted in case user makes an error while setting a value.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings.EffectiveMinSamplingRate">
            <summary>
            Gets effective minimum sampling rate
            adjusted in case user makes an error while setting a value.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings.EffectiveMaxSamplingRate">
            <summary>
            Gets effective maximum sampling rate
            adjusted in case user makes an error while setting a value.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings.EffectiveEvaluationInterval">
            <summary>
            Gets effective sampling percentage evaluation interval
            adjusted in case user makes an error while setting a value.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings.EffectiveSamplingPercentageDecreaseTimeout">
            <summary>
            Gets effective sampling percentage decrease timeout
            adjusted in case user makes an error while setting a value.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings.EffectiveSamplingPercentageIncreaseTimeout">
            <summary>
            Gets effective sampling percentage increase timeout
            adjusted in case user makes an error while setting a value.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings.EffectiveMovingAverageRatio">
            <summary>
            Gets effective exponential moving average ratio
            adjusted in case user makes an error while setting a value.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings.AdjustSamplingPercentage(System.Double)">
            <summary>
            Adjusts sampling percentage set by user to account for errors
            such as setting it below zero or above 100%.
            </summary>
            <param name="samplingPercentage">Input sampling percentage.</param>
            <returns>Adjusted sampling percentage in range &gt; 0 and &lt;= 100.</returns>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.AdaptiveSamplingPercentageEvaluatedCallback">
            <summary>
            Represents a method that is invoked every time sampling percentage is evaluated
            by the dynamic sampling algorithm.
            </summary>
            <param name="afterSamplingTelemetryItemRatePerSecond">Rate of telemetry items generated by this instance of the application after current sampling percentage was applied.</param>
            <param name="currentSamplingPercentage">Current sampling percentage that was used by the algorithm.</param>
            <param name="newSamplingPercentage">Suggested new sampling percentage that will allow to keep desired telemetry item generation rate given the volume of items states the same.</param>
            <param name="isSamplingPercentageChanged">A value indicating whether new sampling percentage will be applied by dynamic sampling algorithm. New sampling percentage may not be immediately applied in case it was recently changed.</param>
            <param name="settings">Dynamic sampling algorithm settings.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorTelemetryProcessor">
            <summary>
            Telemetry processor to estimate ideal sampling percentage.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorTelemetryProcessor.next">
            <summary>
            Next-in-chain processor.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorTelemetryProcessor.settings">
            <summary>
            Dynamic sampling estimator settings.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorTelemetryProcessor.itemCount">
            <summary>
            Average telemetry item counter.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorTelemetryProcessor.evaluationTimer">
            <summary>
            Evaluation timer.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorTelemetryProcessor.evaluationInterval">
            <summary>
            Current evaluation interval.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorTelemetryProcessor.currenSamplingRate">
            <summary>
            Current sampling rate.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorTelemetryProcessor.samplingPercentageLastChangeDateTime">
            <summary>
            Last date and time sampling percentage was changed.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorTelemetryProcessor.evaluationCallback">
            <summary>
            Callback to invoke every time sampling percentage is evaluated.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorTelemetryProcessor.#ctor(Microsoft.ApplicationInsights.Extensibility.ITelemetryProcessor)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorTelemetryProcessor"/> class.
            <param name="next">Next TelemetryProcessor in call chain.</param>
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorTelemetryProcessor.#ctor(Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings,Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.AdaptiveSamplingPercentageEvaluatedCallback,Microsoft.ApplicationInsights.Extensibility.ITelemetryProcessor)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorTelemetryProcessor"/> class.
            <param name="settings">Dynamic sampling estimator settings.</param>
            <param name="callback">Callback to invoke every time sampling percentage is evaluated.</param>
            <param name="next">Next TelemetryProcessor in call chain.</param>
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorTelemetryProcessor.Process(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Processes telemetry item.
            </summary>
            <param name="item">Telemetry item to process.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorTelemetryProcessor.Dispose">
            <summary>
            Disposes the object.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorTelemetryProcessor.MovingAverageCoefficientChanged(System.Double,System.Double)">
            <summary>
            Checks to see if exponential moving average has changed.
            </summary>
            <param name="running">Currently running value of moving average.</param>
            <param name="current">Value set in the algorithm parameters.</param>
            <returns>True if moving average value changed.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorTelemetryProcessor.EstimateSamplingPercentage(System.Object)">
            <summary>
            Callback for sampling percentage evaluation timer.
            </summary>
            <param name="state">Timer state.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingScoreGenerator">
            <summary>
            Utility class for sampling score generation.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingScoreGenerator.GetSamplingScore(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Generates telemetry sampling score between 0 and 100.
            </summary>
            <param name="telemetry">Telemetry item to score.</param>
            <returns>Item sampling score.</returns>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.WeakConcurrentRandom.random">
            <summary>
            Generator singleton.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.WeakConcurrentRandom.index">
            <summary>
            Index of the last used random number within pre-generated array.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.WeakConcurrentRandom.segmentCount">
            <summary>
            Count of segments of random numbers.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.WeakConcurrentRandom.segmentSize">
            <summary>
            Number of random numbers per segment.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.WeakConcurrentRandom.bitsToStoreRandomIndexWithinSegment">
            <summary>
            Number of bits used to store index of the random number within segment.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.WeakConcurrentRandom.segmentIndexMask">
            <summary>
            Bit mask to get segment index bits.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.WeakConcurrentRandom.randomIndexWithinSegmentMask">
            <summary>
            Bit mask to get index of the random number within segment.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.WeakConcurrentRandom.randomArrayIndexMask">
            <summary>
            Bit mask to get index of the random number in the pre-generated array.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.WeakConcurrentRandom.randomGemerators">
            <summary>
            Array of random number batch generators (one per each segment).
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.WeakConcurrentRandom.randomNumbers">
            <summary>
            Array of pre-generated random numbers.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.WeakConcurrentRandom.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.WeakConcurrentRandom"/> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.WeakConcurrentRandom.Initialize">
            <summary>
            Initializes generator with a set of random numbers.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.WeakConcurrentRandom.Initialize(System.Func{System.UInt64,Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.IRandomNumberBatchGenerator},System.Int32,System.Int32)">
            <summary>
            Initializes generator with a set of random numbers.
            </summary>
            <param name="randomGeneratorFactory">Factory used to create random number batch generators.</param>
            <param name="segmentIndexBits">Number of significant bits in segment index, i.e. value of 3 means 8 segments of random numbers - 0..7.</param>
            <param name="segmentBits">Number of significant bits in random number index within segment, i.e. value of 10 means 1024 random numbers per segment.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.WeakConcurrentRandom.Next">
            <summary>
            Weakly thread safe next (random) operation id generator
            where 'weakly' indicates that it is unlikely we'll get into
            collision state.
            </summary>
            <returns>Next operation id.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.WeakConcurrentRandom.RegenerateSegment(System.Int32)">
            <summary>
            Generates random number batch for segment which just exhausted
            according to value of the new index.
            </summary>
            <param name="newIndex">Index in random number array of the random number we're about to return.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.XorshiftRandomBatchGenerator">
            <summary>
            Generates batches of random number using Xorshift algorithm
            Note: the base code is from http://www.codeproject.com/Articles/9187/A-fast-equivalent-for-System-Random.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.XorshiftRandomBatchGenerator.#ctor(System.UInt64)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.XorshiftRandomBatchGenerator"/> class.
            </summary>
            <param name="seed">Random generator seed value.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.XorshiftRandomBatchGenerator.NextBatch(System.UInt64[],System.Int32,System.Int32)">
            <summary>
            Generates a batch of random numbers.
            </summary>
            <param name="buffer">Buffer to put numbers in.</param>
            <param name="index">Start index in the buffer.</param>
            <param name="count">Count of random numbers to generate.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.TelemetryProcessorChainBuilderExtensions">
            <summary>
            Extension methods for <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChainBuilder"/>.
            Adds shorthand for adding well-known processors.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.TelemetryProcessorChainBuilderExtensions.UseSampling(Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChainBuilder,System.Double)">
            <summary>
            Adds <see cref="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.SamplingTelemetryProcessor"/> to the given<see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChainBuilder" />
            </summary>
            <param name="builder">Instance of <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChainBuilder"/></param>
            <param name="samplingPercentage">Sampling Percentage to configure.</param>
            <return>Instance of <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChainBuilder"/>.</return>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.TelemetryProcessorChainBuilderExtensions.UseAdaptiveSampling(Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChainBuilder)">
            <summary>
            Adds <see cref="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor"/> to the <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChainBuilder" />
            </summary>
            <param name="builder">Instance of <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChainBuilder"/></param>
            <return>Instance of <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChainBuilder"/>.</return>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.TelemetryProcessorChainBuilderExtensions.UseAdaptiveSampling(Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChainBuilder,System.Double)">
            <summary>
            Adds <see cref="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor"/> to the <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChainBuilder" />
            </summary>
            <param name="builder">Instance of <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChainBuilder"/></param>
            <param name="maxTelemetryItemsPerSecond">Maximum number of telemetry items to be generated on this application instance.</param>
            <return>Instance of <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChainBuilder"/>.</return>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.TelemetryProcessorChainBuilderExtensions.UseAdaptiveSampling(Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChainBuilder,Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.SamplingPercentageEstimatorSettings,Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation.AdaptiveSamplingPercentageEvaluatedCallback)">
            <summary>
            Adds <see cref="T:Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor"/> to the <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChainBuilder" />
            </summary>
            <param name="builder">Instance of <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChainBuilder"/></param>
            <param name="settings">Set of settings applicable to dynamic sampling percentage algorithm.</param>
            <param name="callback">Callback invoked every time sampling percentage evaluation occurs.</param>
            <return>Instance of <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChainBuilder"/>.</return>
        </member>
    </members>
</doc>
WebApi/GTech.Solution.Api.WebSite/bin/Microsoft.AI.Web.xml
New file
@@ -0,0 +1,466 @@
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Microsoft.AI.Web</name>
    </assembly>
    <members>
        <member name="T:Microsoft.ApplicationInsights.Web.Implementation.RequestTrackingConstants">
            <summary>
            Request tracking constants and keys.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Web.Implementation.RequestTrackingConstants.RequestTelemetryItemName">
            <summary>
            Name of the HttpContext item containing RequestTelemetry object.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Web.Implementation.RequestTrackingConstants.TransferHandlerType">
            <summary>
            Type name for the transfer handler. This handler is used to enable extension(less) URI
            and it produces extra request, which should not be counted.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Web.Implementation.RequestTrackingConstants.WebAuthenticatedUserCookieName">
            <summary>
            The name of the cookie which holds authenticated user context information.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.Implementation.RequestTrackingExtensions.CreateRequestNamePrivate(System.Web.HttpContext)">
            <summary>
            Creates request name on the base of HttpContext.
            </summary>
            <returns>Controller/Action for MVC or path for other cases.</returns>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Web.Implementation.SyntheticUserAgentFilter">
            <summary>
            Allows configuration of patterns for synthetic traffic filters.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Web.Implementation.SyntheticUserAgentFilter.Pattern">
            <summary>
            Gets or sets the regular expression pattern applied to the user agent string to determine whether traffic is synthetic.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Web.Implementation.SyntheticUserAgentFilter.SourceName">
            <summary>
            Gets or sets the readable name for the synthetic traffic source. If not provided, defaults to the pattern match.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Web.Implementation.WebEventSource">
            <summary>
            ETW EventSource tracing class.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Web.Implementation.WebEventSource.Log">
            <summary>
            Instance of the PlatformEventSource class.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Web.Implementation.WebEventSource.Keywords">
            <summary>
            Keywords for the PlatformEventSource. Those keywords should match keywords in Core.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Web.Implementation.WebEventSource.Keywords.UserActionable">
            <summary>
            Key word for user actionable events.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Web.Implementation.WebEventSource.Keywords.Diagnostics">
            <summary>
            Diagnostics tracing keyword.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Web.Implementation.WebEventSource.Keywords.VerboseFailure">
            <summary>
            Keyword for errors that trace at Verbose level.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Web.Implementation.WebEventsPublisher">
            <summary>
            Class provides methods to post event about Web event like begin or end of the request.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Web.Implementation.WebEventsPublisher.Instance">
            <summary>
            WebEventsPublisher static instance.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Web.Implementation.WebEventsPublisher.Log">
            <summary>
            Gets the instance of WebEventsPublisher type.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.Implementation.WebEventsPublisher.OnBegin">
            <summary>
            Method generates event about begin of the request.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.Implementation.WebEventsPublisher.OnEnd">
            <summary>
            Method generates event about end of the request.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.Implementation.WebEventsPublisher.OnError">
            <summary>
            Method generates event in case if request failed.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Web.Implementation.WebTelemetryInitializerBase">
            <summary>
            Base class for WebOperationTelemetryInitializers.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.Implementation.WebTelemetryInitializerBase.Initialize(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Base implementation of the initialization method.
            </summary>
            <param name="telemetry">Telemetry item to initialize.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.Implementation.WebTelemetryInitializerBase.OnInitializeTelemetry(System.Web.HttpContext,Microsoft.ApplicationInsights.DataContracts.RequestTelemetry,Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Implements initialization logic.
            </summary>
            <param name="platformContext">Http context.</param>
            <param name="requestTelemetry">Request telemetry object associated with the current request.</param>
            <param name="telemetry">Telemetry item to initialize.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.Implementation.WebTelemetryInitializerBase.ResolvePlatformContext">
            <summary>
            Resolved web platform specific context.
            </summary>
            <returns>An instance of the context.</returns>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Web.Implementation.WebTelemetryModuleBase">
            <summary>
            Base web telemetry module.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.Implementation.WebTelemetryModuleBase.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Web.Implementation.WebTelemetryModuleBase"/> class.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Web.Implementation.WebTelemetryModuleBase.ModuleName">
            <summary>
            Gets the module name which is added to be used for internal tracing instead of GetType on each request to improve performance.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.Implementation.WebTelemetryModuleBase.OnBeginRequest(Microsoft.ApplicationInsights.DataContracts.RequestTelemetry,System.Web.HttpContext)">
            <summary>
            Post initialization Web Telemetry Module callback.
            </summary>
            <param name="requestTelemetry">An instance of request telemetry context.</param>
            <param name="platformContext">Platform specific context.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.Implementation.WebTelemetryModuleBase.OnEndRequest(Microsoft.ApplicationInsights.DataContracts.RequestTelemetry,System.Web.HttpContext)">
            <summary>
            Request telemetry finalization - sending callback Web Telemetry Module callback.
            </summary>
            <param name="requestTelemetry">An instance of request telemetry context.</param>
            <param name="platformContext">Platform specific context.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.Implementation.WebTelemetryModuleBase.OnError(Microsoft.ApplicationInsights.DataContracts.RequestTelemetry,System.Web.HttpContext)">
            <summary>
            Http Error reporting Web Telemetry Module callback.
            </summary>
            <param name="requestTelemetry">An instance of request telemetry context.</param>
            <param name="platformContext">Platform specific context.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Web.AccountIdTelemetryInitializer">
            <summary>
            A telemetry initializer that will set the User properties of Context corresponding to a RequestTelemetry object.
            User.AccountId is updated with properties derived from the RequestTelemetry.RequestTelemetry.Context.User.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.AccountIdTelemetryInitializer.OnInitializeTelemetry(System.Web.HttpContext,Microsoft.ApplicationInsights.DataContracts.RequestTelemetry,Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Implements initialization logic.
            </summary>
            <param name="platformContext">Http context.</param>
            <param name="requestTelemetry">Request telemetry object associated with the current request.</param>
            <param name="telemetry">Telemetry item to initialize.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule">
            <summary>
            Platform agnostic module for web application instrumentation.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule.isEnabled">
            <summary>
            Indicates if module initialized successfully.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule"/> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule.Init(System.Web.HttpApplication)">
            <summary>
            Initializes module for a given application.
            </summary>
            <param name="context">HttpApplication instance.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule.Dispose">
            <summary>
            Required IDisposable implementation.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Web.AuthenticatedUserIdTelemetryInitializer">
            <summary>
            A telemetry initializer that will set the User properties of Context corresponding to a RequestTelemetry object.
            User.AuthenticatedUserId is updated with properties derived from the RequestTelemetry.RequestTelemetry.Context.User.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.AuthenticatedUserIdTelemetryInitializer.OnInitializeTelemetry(System.Web.HttpContext,Microsoft.ApplicationInsights.DataContracts.RequestTelemetry,Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Implements initialization logic.
            </summary>
            <param name="platformContext">Http context.</param>
            <param name="requestTelemetry">Request telemetry object associated with the current request.</param>
            <param name="telemetry">Telemetry item to initialize.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Web.OperationCorrelationTelemetryInitializer">
            <summary>
            A telemetry initializer that will set the correlation context for all telemetry items in web application.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.OperationCorrelationTelemetryInitializer.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Web.OperationCorrelationTelemetryInitializer"/> class.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Web.OperationCorrelationTelemetryInitializer.ParentOperationIdHeaderName">
            <summary>
            Gets or sets the name of the header to get parent operation Id from.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Web.OperationCorrelationTelemetryInitializer.RootOperationIdHeaderName">
            <summary>
            Gets or sets the name of the header to get root operation Id from.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.OperationCorrelationTelemetryInitializer.OnInitializeTelemetry(System.Web.HttpContext,Microsoft.ApplicationInsights.DataContracts.RequestTelemetry,Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Implements initialization logic.
            </summary>
            <param name="platformContext">Http context.</param>
            <param name="requestTelemetry">Request telemetry object associated with the current request.</param>
            <param name="telemetry">Telemetry item to initialize.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Web.ClientIpHeaderTelemetryInitializer">
            <summary>
            Telemetry initializer populates client IP address for the current request.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.ClientIpHeaderTelemetryInitializer.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Web.ClientIpHeaderTelemetryInitializer"/> class.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Web.ClientIpHeaderTelemetryInitializer.HeaderNames">
            <summary>
            Gets a list of request header names that is used to check client id.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Web.ClientIpHeaderTelemetryInitializer.HeaderValueSeparators">
            <summary>
            Gets or sets a header values separator.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Web.ClientIpHeaderTelemetryInitializer.UseFirstIp">
            <summary>
            Gets or sets a value indicating whether the first or the last IP should be used from the lists of IPs in the header.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.ClientIpHeaderTelemetryInitializer.OnInitializeTelemetry(System.Web.HttpContext,Microsoft.ApplicationInsights.DataContracts.RequestTelemetry,Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Implements initialization logic.
            </summary>
            <param name="platformContext">Http context.</param>
            <param name="requestTelemetry">Request telemetry object associated with the current request.</param>
            <param name="telemetry">Telemetry item to initialize.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule">
            <summary>
            Telemetry module to collect unhandled exceptions caught by http module.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule" /> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule.OnError(System.Diagnostics.Tracing.EventWrittenEventArgs)">
            <summary>
            Implements on error callback of http module.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule.Initialize(Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration)">
            <summary>
            Initializes the telemetry module.
            </summary>
            <param name="configuration">Telemetry configuration to use for initialization.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule.Dispose">
            <summary>
            Dispose method.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule.ResolvePlatformContext">
            <summary>
            Returns current HttpContext.
            </summary>
            <returns>Current HttpContext.</returns>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Web.OperationNameTelemetryInitializer">
            <summary>
            A telemetry initializer that will set the NAME property of OperationContext corresponding to a TraceTelemetry object.
            If the telemetry object is of type RequestTelemetry, then the Name of the RequestTelemetry is updated. For all other cases,
            Operation.Name is updated with the name derived from the HttpContext.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.OperationNameTelemetryInitializer.OnInitializeTelemetry(System.Web.HttpContext,Microsoft.ApplicationInsights.DataContracts.RequestTelemetry,Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Implements initialization logic.
            </summary>
            <param name="platformContext">Http context.</param>
            <param name="rootRequestTelemetry">Request telemetry object associated with the current request.</param>
            <param name="telemetry">Telemetry item to initialize.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule">
            <summary>
            Telemetry module tracking requests using http module.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule" /> class.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule.Handlers">
            <summary>
            Gets the list of handler types for which requests telemetry will not be collected
            if request was successful.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule.OnBeginRequest(System.Diagnostics.Tracing.EventWrittenEventArgs)">
            <summary>
            Implements on begin callback of http module.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule.OnEndRequest(System.Diagnostics.Tracing.EventWrittenEventArgs)">
            <summary>
            Implements on end callback of http module.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule.Initialize(Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration)">
            <summary>
            Initializes the telemetry module.
            </summary>
            <param name="configuration">Telemetry configuration to use for initialization.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule.Dispose">
            <summary>
            Dispose method.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule.NeedProcessRequest(System.Web.HttpContext)">
            <summary>
            Verifies context to detect whether or not request needs to be processed.
            </summary>
            <param name="httpContext">Current http context.</param>
            <returns>True if request needs to be processed, otherwise - False.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule.ResolvePlatformContext">
            <summary>
            Returns current HttpContext.
            </summary>
            <returns>Current HttpContext.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule.IsHandlerToFilter(System.Web.IHttpHandler)">
            <summary>
            Checks whether or not handler is a transfer handler.
            </summary>
            <param name="handler">An instance of handler to validate.</param>
            <returns>True if handler is a transfer handler, otherwise - False.</returns>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Web.SessionTelemetryInitializer">
            <summary>
            A telemetry initializer that will set the Session properties of Context corresponding to a RequestTelemetry object.
            Session is updated with properties derived from the RequestTelemetry.RequestTelemetry.Context.Session.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.SessionTelemetryInitializer.OnInitializeTelemetry(System.Web.HttpContext,Microsoft.ApplicationInsights.DataContracts.RequestTelemetry,Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Implements initialization logic.
            </summary>
            <param name="platformContext">Http context.</param>
            <param name="requestTelemetry">Request telemetry object associated with the current request.</param>
            <param name="telemetry">Telemetry item to initialize.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Web.WebTestTelemetryInitializer">
            <summary>
            A telemetry initializer that will update the User, Session and Operation contexts if request originates from a web test.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.WebTestTelemetryInitializer.OnInitializeTelemetry(System.Web.HttpContext,Microsoft.ApplicationInsights.DataContracts.RequestTelemetry,Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Implements initialization logic.
            </summary>
            <param name="platformContext">Http context.</param>
            <param name="requestTelemetry">Request telemetry object associated with the current request.</param>
            <param name="telemetry">Telemetry item to initialize.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Web.SyntheticUserAgentTelemetryInitializer">
            <summary>
            A telemetry initializer that determines if the request came from a synthetic source based on the user agent string.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.SyntheticUserAgentTelemetryInitializer.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Web.SyntheticUserAgentTelemetryInitializer" /> class.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Web.SyntheticUserAgentTelemetryInitializer.Filters">
            <summary>
            Gets the configured patterns for matching synthetic traffic filters through user agent string.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.SyntheticUserAgentTelemetryInitializer.OnInitializeTelemetry(System.Web.HttpContext,Microsoft.ApplicationInsights.DataContracts.RequestTelemetry,Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Implements initialization logic.
            </summary>
            <param name="platformContext">Http context.</param>
            <param name="requestTelemetry">Request telemetry object associated with the current request.</param>
            <param name="telemetry">Telemetry item to initialize.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Web.UserTelemetryInitializer">
            <summary>
            A telemetry initializer that will set the User properties of Context corresponding to a RequestTelemetry object.
            User.Id are updated with properties derived from the RequestTelemetry.RequestTelemetry.Context.User.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Web.UserTelemetryInitializer.OnInitializeTelemetry(System.Web.HttpContext,Microsoft.ApplicationInsights.DataContracts.RequestTelemetry,Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Implements initialization logic.
            </summary>
            <param name="platformContext">Http context.</param>
            <param name="requestTelemetry">Request telemetry object associated with the current request.</param>
            <param name="telemetry">Telemetry item to initialize.</param>
        </member>
        <member name="T:System.Web.HttpContextExtension">
            <summary>
            HttpContextExtension class provides extensions methods for accessing Web Application Insights objects.
            </summary>
        </member>
        <member name="M:System.Web.HttpContextExtension.GetRequestTelemetry(System.Web.HttpContext)">
            <summary>
            Provide access to request generated by Web Application Insights SDK.
            </summary>
            <param name="context">HttpContext instance.</param>
            <returns>Request telemetry instance or null.</returns>
        </member>
    </members>
</doc>
WebApi/GTech.Solution.Api.WebSite/bin/Microsoft.AI.WindowsServer.xml
New file
@@ -0,0 +1,471 @@
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Microsoft.AI.WindowsServer</name>
    </assembly>
    <members>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.AzureRoleEnvironmentTelemetryInitializer">
            <summary>
            A telemetry initializer that will gather Azure Role Environment context information.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.AzureRoleEnvironmentTelemetryInitializer.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.AzureRoleEnvironmentTelemetryInitializer" /> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.AzureRoleEnvironmentTelemetryInitializer.Initialize(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Initializes <see cref="T:Microsoft.ApplicationInsights.Channel.ITelemetry" /> device context.
            </summary>
            <param name="telemetry">The telemetry to initialize.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.BuildInfoConfigComponentVersionTelemetryInitializer">
            <summary>
            A telemetry context initializer that will set component context version on the base of BuildInfo.config information.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.BuildInfoConfigComponentVersionTelemetryInitializer.version">
            <summary>
            The version for this component.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.BuildInfoConfigComponentVersionTelemetryInitializer.Initialize(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Initializes version of the telemetry item with the version obtained from build info if it is available.
            </summary>
            <param name="telemetry">The telemetry context to initialize.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.BuildInfoConfigComponentVersionTelemetryInitializer.LoadBuildInfoConfig">
            <summary>
            Loads BuildInfo.config and returns XElement.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.BuildInfoConfigComponentVersionTelemetryInitializer.GetVersion">
            <summary>
            Gets the version for the current application. If the version cannot be found, we will return the passed in default.
            </summary>
            <returns>The extracted data.</returns>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.DeveloperModeWithDebuggerAttachedTelemetryModule">
            <summary>
            Telemetry module that sets developer mode to true when is not already set AND managed debugger is attached.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.DeveloperModeWithDebuggerAttachedTelemetryModule.IsDebuggerAttached">
            <summary>
            Function that checks whether debugger is attached with implementation that can be replaced by unit test code.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.DeveloperModeWithDebuggerAttachedTelemetryModule.Initialize(Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration)">
            <summary>
            Gives the opportunity for this telemetry module to initialize configuration object that is passed to it.
            </summary>
            <param name="configuration">Configuration object.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.DeviceTelemetryInitializer">
            <summary>
            A telemetry context initializer that will gather device context information.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.DeviceTelemetryInitializer.Initialize(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Populates device properties on a telemetry item.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.DomainNameRoleInstanceTelemetryInitializer">
            <summary>
            A telemetry context initializer that populates device context role instance name.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.DomainNameRoleInstanceTelemetryInitializer.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.DomainNameRoleInstanceTelemetryInitializer" /> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.DomainNameRoleInstanceTelemetryInitializer.Initialize(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Initializes <see cref="T:Microsoft.ApplicationInsights.Channel.ITelemetry" /> device context.
            </summary>
            <param name="telemetry">The telemetry to initialize.</param>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Implementation.AzureRoleEnvironmentContextReader.instance">
            <summary>
            The singleton instance for our reader.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Implementation.AzureRoleEnvironmentContextReader.roleName">
            <summary>
            The Azure role name (if any).
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Implementation.AzureRoleEnvironmentContextReader.roleInstanceName">
            <summary>
            The Azure role instance name (if any).
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.AzureRoleEnvironmentContextReader.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.Implementation.AzureRoleEnvironmentContextReader"/> class.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Implementation.AzureRoleEnvironmentContextReader.Instance">
            <summary>
            Gets or sets the singleton instance for our application context reader.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Implementation.AzureRoleEnvironmentContextReader.BaseDirectory">
            <summary>
            Gets or sets the base directly where hunting for application DLLs is to start.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.AzureRoleEnvironmentContextReader.Initialize">
            <summary>
            Initializes the current reader with respect to its environment.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.AzureRoleEnvironmentContextReader.GetRoleName">
            <summary>
            Gets the Azure role name.
            </summary>
            <returns>The extracted data.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.AzureRoleEnvironmentContextReader.GetRoleInstanceName">
            <summary>
            Gets the Azure role instance name.
            </summary>
            <returns>The extracted data.</returns>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.Implementation.DeviceContextReader">
            <summary>
            The reader is platform specific and applies to .NET applications only.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Implementation.DeviceContextReader.Instance">
            <summary>
            Gets or sets the singleton instance for our application context reader.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.DeviceContextReader.GetHostSystemLocale">
            <summary>
            Gets the host system locale.
            </summary>
            <returns>The discovered locale.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.DeviceContextReader.GetDeviceType">
            <summary>
            Gets the type of the device.
            </summary>
            <returns>The type for this device as a hard-coded string.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.DeviceContextReader.GetDeviceUniqueId">
            <summary>
            Gets the device unique ID, or uses the fallback if none is available due to application configuration.
            </summary>
            <returns>
            The discovered device identifier.
            </returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.DeviceContextReader.GetOemName">
            <summary>
            Gets the device OEM.
            </summary>
            <returns>The discovered OEM.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.DeviceContextReader.GetDeviceModel">
            <summary>
            Gets the device model.
            </summary>
            <returns>The discovered device model.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.DeviceContextReader.GetNetworkType">
            <summary>
            Gets the network type.
            </summary>
            <returns>The discovered network type.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.DeviceContextReader.RunWmiQuery(System.String,System.String,System.String)">
            <summary>
            Runs a single WMI query for a property.
            </summary>
            <param name="table">The table.</param>
            <param name="property">The property.</param>
            <param name="defaultValue">The default value of the property if WMI fails.</param>
            <returns>The value if found, Unknown otherwise.</returns>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.Implementation.IAzureRoleEnvironmentContextReader">
            <summary>
            The user context reader interface used while reading user related information in a platform specific way.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.IAzureRoleEnvironmentContextReader.Initialize">
            <summary>
            Initializes the current reader with respect to its environment.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.IAzureRoleEnvironmentContextReader.GetRoleName">
            <summary>
            Gets the Azure role name.
            </summary>
            <returns>The extracted data.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.IAzureRoleEnvironmentContextReader.GetRoleInstanceName">
            <summary>
            Gets the Azure role instance name.
            </summary>
            <returns>The extracted data.</returns>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.Implementation.Role">
            <summary>
            Represents a role that is defined as part of a hosted service.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.Role.#ctor(System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.Implementation.Role"/> class.
            </summary>
            <param name="targetObject">The target object.</param>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Implementation.Role.Name">
            <summary>
            Gets the name of the role as it is declared in the service definition file.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.Role.GetTargetObjectInstance(System.Type,System.Object[])">
            <summary>
            Gets the target object instance.
            </summary>
            <param name="targetType">Type of the target.</param>
            <param name="activationArgs">The activation arguments.</param>
            <returns>
            The activated instance is one is required.
            </returns>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.Implementation.RoleEnvironment">
            <summary>
            Provides information about the configuration, endpoints, and status of running role instances.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.RoleEnvironment.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.Implementation.RoleEnvironment"/> class.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Implementation.RoleEnvironment.IsAvailable">
            <summary>
            Gets a value indicating whether the role instance is running in the Windows Azure environment.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Implementation.RoleEnvironment.DeploymentId">
            <summary>
            Gets the unique identifier of the deployment in which the role instance is running.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Implementation.RoleEnvironment.CurrentRoleInstance">
            <summary>
            Gets a RoleInstance object that represents the role instance in which the code is currently running.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.RoleEnvironment.GetTargetObjectInstance(System.Type,System.Object[])">
            <summary>
            Gets the target object instance.
            </summary>
            <param name="targetType">Type of the target.</param>
            <param name="activationArgs">The activation arguments.</param>
            <returns>
            The activated instance is one is required.
            </returns>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.Implementation.RoleInstance">
            <summary>
            Represents an instance of a role.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.RoleInstance.#ctor(System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.Implementation.RoleInstance"/> class.
            </summary>
            <param name="targetObject">The target object.</param>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Implementation.RoleInstance.Id">
            <summary>
            Gets the instance identifier (ID) of the role instance.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Implementation.RoleInstance.Role">
            <summary>
            Gets the Role object that is associated with the role instance.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.RoleInstance.GetTargetObjectInstance(System.Type,System.Object[])">
            <summary>
            Gets the target object instance.
            </summary>
            <param name="targetType">Type of the target.</param>
            <param name="activationArgs">The activation arguments.</param>
            <returns>
            The activated instance is one is required.
            </returns>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.Implementation.RuntimeBindingObject">
            <summary>
            A runtime bound object for a given .NET type.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Implementation.RuntimeBindingObject.targetType">
            <summary>
            The target type for our object.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Implementation.RuntimeBindingObject.targetObject">
            <summary>
            The target object.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.RuntimeBindingObject.#ctor(System.Type,System.Object[])">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.Implementation.RuntimeBindingObject"/> class.
            </summary>
            <param name="targetType">Type of the target.</param>
            <param name="activationArgs">The activation arguments.</param>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Implementation.RuntimeBindingObject.TargetType">
            <summary>
            Gets or sets the type of the target.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.WindowsServer.Implementation.RuntimeBindingObject.TargetObject">
            <summary>
            Gets or sets the target object.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.RuntimeBindingObject.GetTargetObjectInstance(System.Type,System.Object[])">
            <summary>
            Gets the target object instance.
            </summary>
            <param name="targetType">Type of the target.</param>
            <param name="activationArgs">The activation arguments.</param>
            <returns>The activated instance is one is required.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.RuntimeBindingObject.GetProperty(System.String,System.Object[])">
            <summary>
            Gets the property.
            </summary>
            <param name="name">The name.</param>
            <param name="args">The arguments.</param>
            <returns>The value for our property.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.RuntimeBindingObject.GetProperty(System.String,System.Type[],System.Object[])">
            <summary>
            Gets the property.
            </summary>
            <param name="name">The name.</param>
            <param name="parameterTypes">The parameter types.</param>
            <param name="args">The arguments.</param>
            <returns>The value for our property.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.RuntimeBindingObject.GetProperty(System.String,System.Reflection.BindingFlags,System.Type[],System.Object[])">
            <summary>
            Gets the property.
            </summary>
            <param name="name">The name.</param>
            <param name="bindingFlags">The binding flags.</param>
            <param name="parameterTypes">The parameter types.</param>
            <param name="args">The arguments.</param>
            <returns>The value for our property.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.RuntimeBindingObject.InvokeHelper(System.String,System.Reflection.BindingFlags,System.Object[],System.Globalization.CultureInfo)">
            <summary>
            Invocation helper for calling any member on our target object.
            </summary>
            <param name="name">The name.</param>
            <param name="bindingFlags">The binding flags.</param>
            <param name="args">The arguments.</param>
            <param name="culture">The culture.</param>
            <returns>The return value for our invocation.</returns>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.Implementation.ServiceRuntime">
            <summary>
            The wrapper for the Azure Service Runtime.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.ServiceRuntime.GetRoleEnvironment(System.String)">
            <summary>
            Gets the role environment.
            </summary>
            <param name="baseDirectory">The base directory.</param>
            <returns>
            The role environment object.
            </returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.Implementation.TypeHelpers.GetLoadedType(System.String,System.String)">
            <summary>
            Gets the type by type name from the assembly.
            </summary>
            <param name="typeName">The type name.</param>
            <param name="assemblyName">The assembly name.</param>
            <returns>Return type from assembly loaded in the process by assembly and type name.</returns>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.Implementation.WindowsServerEventSource">
            <summary>
            ETW EventSource tracing class.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Implementation.WindowsServerEventSource.Log">
            <summary>
            Instance of the WindowsServerEventSource class.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.Implementation.WindowsServerEventSource.Keywords">
            <summary>
            Keywords for the PlatformEventSource. Those keywords should match keywords in Core.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.WindowsServer.Implementation.WindowsServerEventSource.Keywords.UserActionable">
            <summary>
            Key word for user actionable events.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule">
            <summary>
            The module subscribed to AppDomain.CurrentDomain.UnhandledException to send exceptions to ApplicationInsights.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule"/> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule.Initialize(Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration)">
            <summary>
            Initializes the telemetry module.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule.Dispose">
            <summary>
            Disposing UnhandledExceptionTelemetryModule instance.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule">
            <summary>
            The module subscribed to TaskScheduler.UnobservedTaskException to send exceptions to ApplicationInsights.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule" /> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule.Initialize(Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration)">
            <summary>
            Initializes the telemetry module.
            </summary>
            <param name="configuration">Telemetry Configuration used for creating TelemetryClient for sending exceptions to ApplicationInsights.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule.Dispose">
            <summary>
            Disposing TaskSchedulerOnUnobservedTaskException instance.
            </summary>
        </member>
    </members>
</doc>
WebApi/GTech.Solution.Api.WebSite/bin/Microsoft.ApplicationInsights.xml
New file
@@ -0,0 +1,2858 @@
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Microsoft.ApplicationInsights</name>
    </assembly>
    <members>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.Platform.PlatformImplementation">
            <summary>
            The .NET 4.0 and 4.5 implementation of the <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.IPlatform"/> interface.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.Platform.PlatformImplementation.ReadConfigurationXml">
            <summary>
            Returns contents of the ApplicationInsights.config file in the application directory.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.Platform.PlatformImplementation.GetDebugOutput">
            <summary>
            Returns the platform specific Debugger writer to the VS output console.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.Platform.PlatformSingleton">
            <summary>
            Provides access to the <see cref="P:Microsoft.ApplicationInsights.Extensibility.Implementation.Platform.PlatformSingleton.Current"/> platform.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.Platform.PlatformSingleton.Current">
            <summary>
            Gets or sets the current <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.IPlatform"/> implementation.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryConfigurationFactory.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryConfigurationFactory"/> class.
            </summary>
            <remarks>
            This constructor is protected because <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryConfigurationFactory"/> is only meant to be instantiated
            by the <see cref="P:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryConfigurationFactory.Instance"/> property or by tests.
            </remarks>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryConfigurationFactory.Instance">
            <summary>
            Gets or sets the default <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryConfigurationFactory"/> instance used by <see cref="T:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration"/>.
            </summary>
            <remarks>
            This property is a test isolation "pinch point" that allows us to test <see cref="T:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration"/> without using reflection.
            </remarks>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.AjaxCallData">
            <summary>
            Partial class to add the EventData attribute and any additional customizations to the generated type.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.DataPoint">
            <summary>
            Partial class to add the EventData attribute and any additional customizations to the generated type.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.EventData">
            <summary>
            Partial class to add the EventData attribute and any additional customizations to the generated type.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.ExceptionData">
            <summary>
            Partial class to add the EventData attribute and any additional customizations to the generated type.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.MessageData">
            <summary>
            Partial class to add the EventData attribute and any additional customizations to the generated type.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.MetricData">
            <summary>
            Partial class to add the EventData attribute and any additional customizations to the generated type.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.PageViewData">
            <summary>
            Partial class to add the EventData attribute and any additional customizations to the generated type.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.PageViewPerfData">
            <summary>
            Partial class to add the EventData attribute and any additional customizations to the generated type.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.PerformanceCounterData">
            <summary>
            Partial class to add the EventData attribute and any additional customizations to the generated type.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.RemoteDependencyData">
            <summary>
            Partial class to add the EventData attribute and any additional customizations to the generated type.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.RequestData">
            <summary>
            Partial class to add the EventData attribute and any additional customizations to the generated type.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.SessionStateData">
            <summary>
            Partial class to add the EventData attribute and any additional customizations to the generated type.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.StackFrame">
            <summary>
            Partial class to add the EventData attribute and any additional customizations to the generated type.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.ExceptionDetails">
            <summary>
            Additional implementation for ExceptionDetails.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.External.ExceptionDetails.CreateWithoutStackInfo(System.Exception,Microsoft.ApplicationInsights.Extensibility.Implementation.External.ExceptionDetails)">
            <summary>
            Creates a new instance of ExceptionDetails from a System.Exception and a parent ExceptionDetails.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.ComponentContextData">
            <summary>
            Encapsulates information describing an Application Insights component.
            </summary>
            <remarks>
            This class matches the "Application" schema concept. We are intentionally calling it "Component" for consistency
            with terminology used by our portal and services and to encourage standardization of terminology within our
            organization. Once a consensus is reached, we will change type and property names to match.
            </remarks>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.ComponentContextData.Version">
            <summary>
            Gets or sets the application version.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.ComponentContextData.Build">
            <summary>
            Gets or sets the application version.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.ContextTagKeys">
            <summary>
            Holds the static singleton instance of ContextTagKeys.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData">
            <summary>
            Encapsulates information about a device where an application is running.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.Type">
            <summary>
            Gets or sets the type for the current device.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.Id">
            <summary>
            Gets or sets a device unique ID.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.OperatingSystem">
            <summary>
            Gets or sets the operating system name.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.OemName">
            <summary>
            Gets or sets the device OEM for the current device.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.Model">
            <summary>
            Gets or sets the device model for the current device.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.NetworkType">
            <summary>
            Gets or sets the <a href="http://www.iana.org/assignments/ianaiftype-mib/ianaiftype-mib">IANA interface type</a>
            for the internet connected network adapter.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.ScreenResolution">
            <summary>
            Gets or sets the current application screen resolution.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.Language">
            <summary>
            Gets or sets the current display language of the operating system.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.RoleName">
            <summary>
            Gets or sets the role name.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.RoleInstance">
            <summary>
            Gets or sets the role instance.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.Ip">
            <summary>
            Gets or sets the device IP address.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.MachineName">
            <summary>
            Gets or sets the device VM name.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.InternalContextData">
            <summary>
            Internal context type shared between SDK and DP.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.LocationContextData">
            <summary>
            Encapsulates telemetry location information.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.LocationContextData.Ip">
            <summary>
            Gets or sets the location IP.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.OperationContextData">
            <summary>
            Encapsulates information about a user session.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.OperationContextData.Id">
            <summary>
            Gets or sets the application-defined operation ID.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.OperationContextData.Name">
            <summary>
            Gets or sets the application-defined operation NAME.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.SessionContextData">
            <summary>
            Encapsulates information about a user session.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.SessionContextData.Id">
            <summary>
            Gets or sets the application-defined session ID.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.SessionContextData.IsFirst">
            <summary>
            Gets or sets the IsFirst Session for the user.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.SessionContextData.IsNewSession">
            <summary>
            Gets or sets the IsNewSession Session.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.Tags">
            <summary>
            Base class for tags backed context.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.UserContextData">
            <summary>
            Encapsulates information about a user using an application.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.UserContextData.Id">
            <summary>
            Gets or sets the ID of user accessing the application.
            </summary>
            <remarks>
            Unique user ID is automatically generated in default Application Insights configuration.
            </remarks>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.UserContextData.AccountId">
            <summary>
            Gets or sets the ID of an application-defined account associated with the user.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.UserContextData.UserAgent">
            <summary>
            Gets or sets the UserAgent of an application-defined account associated with the user.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.UserContextData.AuthUserId">
            <summary>
            Gets or sets the UserAgent of an application-defined account associated with the user.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.UserContextData.StoreRegion">
            <summary>
            Gets or sets the StoreRegion of an application-defined account associated with the user.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.External.UserContextData.AcquisitionDate">
            <summary>
            Gets or sets the date when the user accessed the application for the first time.
            </summary>
            <remarks>
            Acquisition date is automatically supplied in default Application Insights configuration.
            </remarks>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.External.UserContextData.SetDefaults(Microsoft.ApplicationInsights.Extensibility.Implementation.External.UserContextData)">
            <summary>
            Sets values on the current context based on the default context passed in.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.RichPayloadEventSource.Log">
            <summary>RichPayloadEventSource instance.</summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.RichPayloadEventSource.EventSourceInternal">
            <summary>Event source.</summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.RichPayloadEventSource.EventProviderName">
            <summary>Event provider name.</summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.RichPayloadEventSource.#ctor">
            <summary>
            Initializes a new instance of the RichPayloadEventSource class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.RichPayloadEventSource.Process(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Process a collected telemetry item.
            </summary>
            <param name="item">A collected Telemetry item.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.RichPayloadEventSource.Dispose">
            <summary>
            Disposes the object.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.RichPayloadEventSource.Dispose(System.Boolean)">
            <summary>
            Disposes the object.
            </summary>
            <param name="disposing">True if disposing.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.RichPayloadEventSource.Keywords">
            <summary>
            Keywords for the RichPayloadEventSource.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.RichPayloadEventSource.Keywords.Requests">
            <summary>
            Keyword for requests.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.RichPayloadEventSource.Keywords.Traces">
            <summary>
            Keyword for traces.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.RichPayloadEventSource.Keywords.Events">
            <summary>
            Keyword for events.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.RichPayloadEventSource.Keywords.Exceptions">
            <summary>
            Keyword for exceptions.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.RichPayloadEventSource.Keywords.Dependencies">
            <summary>
            Keyword for dependencies.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.RichPayloadEventSource.Keywords.Metrics">
            <summary>
            Keyword for metrics.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.RichPayloadEventSource.Keywords.PageViews">
            <summary>
            Keyword for page views.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.RichPayloadEventSource.Keywords.PerformanceCounters">
            <summary>
            Keyword for performance counters.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.RichPayloadEventSource.Keywords.SessionState">
            <summary>
            Keyword for session state.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.ComponentContext">
            <summary>
            Encapsulates information describing an Application Insights component.
            </summary>
            <remarks>
            This class matches the "Application" schema concept. We are intentionally calling it "Component" for consistency
            with terminology used by our portal and services and to encourage standardization of terminology within our
            organization. Once a consensus is reached, we will change type and property names to match.
            </remarks>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.ComponentContext.Version">
            <summary>
            Gets or sets the application version.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryDebugWriter">
            <summary>
            Writes telemetry items to debug output.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryDebugWriter.IsTracingDisabled">
            <summary>
            Gets or sets a value indicating whether writing telemetry items to debug output is enabled.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryDebugWriter.WriteTelemetry(Microsoft.ApplicationInsights.Channel.ITelemetry,System.String)">
            <summary>
            Write the specified <see cref="T:Microsoft.ApplicationInsights.Channel.ITelemetry"/> item to debug output.
            </summary>
            <param name="telemetry">Item to write.</param>
            <param name="filteredBy">If specified, indicates the telemetry item was filtered out and not sent to the API.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.CloudContext">
            <summary>
            Encapsulates information about a cloud where an application is running.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.CloudContext.RoleName">
            <summary>
            Gets or sets the role name.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.CloudContext.RoleInstance">
            <summary>
            Gets or sets the role instance.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.DeviceContext">
            <summary>
            Encapsulates information about a device where an application is running.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.DeviceContext.Type">
            <summary>
            Gets or sets the type for the current device.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.DeviceContext.Id">
            <summary>
            Gets or sets a device unique ID.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.DeviceContext.OperatingSystem">
            <summary>
            Gets or sets the operating system name.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.DeviceContext.OemName">
            <summary>
            Gets or sets the device OEM for the current device.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.DeviceContext.Model">
            <summary>
            Gets or sets the device model for the current device.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.DeviceContext.NetworkType">
            <summary>
            Gets or sets the <a href="http://www.iana.org/assignments/ianaiftype-mib/ianaiftype-mib">IANA interface type</a>
            for the internet connected network adapter.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.DeviceContext.ScreenResolution">
            <summary>
            Gets or sets the current application screen resolution.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.DeviceContext.Language">
            <summary>
            Gets or sets the current display language of the operating system.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.ExceptionConverter.ConvertToExceptionDetails(System.Exception,Microsoft.ApplicationInsights.Extensibility.Implementation.External.ExceptionDetails)">
            <summary>
            Converts a System.Exception to a Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryTypes.ExceptionDetails.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.ExceptionConverter.SanitizeStackFrame``2(System.Collections.Generic.IList{``0},System.Func{``0,System.Int32,``1},System.Func{``1,System.Int32})">
            <summary>
            Sanitizing stack to 32k while selecting the initial and end stack trace.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.ExceptionConverter.GetStackFrame(System.Diagnostics.StackFrame,System.Int32)">
            <summary>
            Converts a System.Diagnostics.StackFrame to a Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryTypes.StackFrame.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.ExceptionConverter.GetStackFrameLength(Microsoft.ApplicationInsights.Extensibility.Implementation.External.StackFrame)">
            <summary>
            Gets the stack frame length for only the strings in the stack frame.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.Clock">
            <summary>
            A highly-accurate, precise and testable clock.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.InternalContext">
            <summary>
            Encapsulates Internal information.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.InternalContext.SdkVersion">
            <summary>
            Gets or sets application insights SDK version.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.InternalContext.AgentVersion">
            <summary>
            Gets or sets application insights agent version.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.IPlatform">
            <summary>
            Encapsulates platform-specific functionality required by the API.
            </summary>
            <remarks>
            This type is public to enable mocking on Windows Phone.
            </remarks>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.IPlatform.GetApplicationSettings">
            <summary>
            Returns a dictionary that can be used to access per-user/per-application settings shared by all application instances.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.IPlatform.ReadConfigurationXml">
            <summary>
            Returns contents of the ApplicationInsights.config file in the application directory.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.IPlatform.GetExceptionDetails(System.Exception,Microsoft.ApplicationInsights.Extensibility.Implementation.External.ExceptionDetails)">
            <summary>
            Returns the platform specific <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.External.ExceptionDetails"/> object for the given Exception.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.IPlatform.GetDebugOutput">
            <summary>
            Returns the platform specific Debugger writer to the VS output console.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.IRandomNumberBatchGenerator">
            <summary>
            Interface for random number generator capable of producing
            a batch of unsigned 64 bit random numbers.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.JsonSerializer">
            <summary>
            Serializes and compress the telemetry items into a JSON string. Compression will be done using GZIP, for Windows Phone 8 compression will be disabled because there
            is API support for it.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.JsonSerializer.CompressionType">
            <summary>
            Gets the compression type used by the serializer.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.JsonSerializer.Serialize(System.Collections.Generic.IEnumerable{Microsoft.ApplicationInsights.Channel.ITelemetry},System.Boolean)">
            <summary>
            Serializes and compress the telemetry items into a JSON string. Each JSON object is separated by a new line.
            </summary>
            <param name="telemetryItems">The list of telemetry items to serialize.</param>
            <param name="compress">Should serialization also perform compression.</param>
            <returns>The compressed and serialized telemetry items.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.JsonSerializer.Serialize(Microsoft.ApplicationInsights.Channel.ITelemetry,System.Boolean)">
            <summary>
             Serialize and compress a telemetry item.
            </summary>
            <param name="telemetryItem">A telemetry item.</param>
            <param name="compress">Should serialization also perform compression.</param>
            <returns>The compressed and serialized telemetry item.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.JsonSerializer.SerializeAsString(System.Collections.Generic.IEnumerable{Microsoft.ApplicationInsights.Channel.ITelemetry})">
            <summary>
            Serializes <paramref name="telemetryItems"/> into a JSON string. Each JSON object is separated by a new line.
            </summary>
            <param name="telemetryItems">The list of telemetry items to serialize.</param>
            <returns>A JSON string of all the serialized items.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.JsonSerializer.SerializeAsString(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Serializes a <paramref name="telemetry"/> into a JSON string.
            </summary>
            <param name="telemetry">The telemetry to serialize.</param>
            <returns>A JSON string of the serialized telemetry.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.JsonSerializer.CreateCompressedStream(System.IO.Stream)">
            <summary>
            Creates a GZIP compression stream that wraps <paramref name="stream"/>. For windows phone 8.0 it returns <paramref name="stream"/>.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.JsonSerializer.SeializeToStream(System.Collections.Generic.IEnumerable{Microsoft.ApplicationInsights.Channel.ITelemetry},System.IO.TextWriter)">
            <summary>
            Serializes <paramref name="telemetryItems"/> and write the response to <paramref name="streamWriter"/>.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.JsonSerializer.SerializePerformanceCounter(Microsoft.ApplicationInsights.DataContracts.PerformanceCounterTelemetry,Microsoft.ApplicationInsights.Extensibility.Implementation.JsonWriter)">
            <summary>
            Serializes this object in JSON format.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.JsonWriter.WritePropertyName(System.String)">
            <summary>
            Writes the specified property name enclosed in double quotation marks followed by a colon.
            </summary>
            <remarks>
            When this method is called multiple times, the second call after <see cref="M:Microsoft.ApplicationInsights.Extensibility.Implementation.JsonWriter.WriteStartObject"/>
            and all subsequent calls will write a coma before the name.
            </remarks>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.LocationContext">
            <summary>
            Encapsulates telemetry location information.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.LocationContext.Ip">
            <summary>
            Gets or sets the location IP.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.OperationContext">
            <summary>
            Encapsulates information about an operation. Operation normally reflects an end to end scenario that starts from a user action (e.g. button click).
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.OperationContext.Id">
            <summary>
            Gets or sets the application-defined operation ID for the topmost operation.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.OperationContext.ParentId">
            <summary>
            Gets or sets the parent operation ID.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.OperationContext.CorrelationVector">
            <summary>
            Gets or sets the correlation vector for the current telemetry item.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.OperationContext.Name">
            <summary>
            Gets or sets the application-defined topmost operation's name.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.OperationContext.SyntheticSource">
            <summary>
            Gets or sets the application-defined operation SyntheticSource.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.OperationTelemetry">
            <summary>
            Base class for telemetry types representing duration in time.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.OperationTelemetry.StartTime">
            <summary>
            Gets or sets the start time of the operation.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.OperationTelemetry.Id">
            <summary>
            Gets or sets Operation ID.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.OperationTelemetry.Name">
            <summary>
            Gets or sets the name of the operation.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.OperationTelemetry.Success">
            <summary>
            Gets or sets whether operation has finished successfully.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.OperationTelemetry.Duration">
            <summary>
            Gets or sets the duration of the operation.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.OperationTelemetry.Properties">
            <summary>
            Gets the custom properties collection.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.OperationTelemetry.Timestamp">
            <summary>
            Gets or sets the timestamp for the operation.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.OperationTelemetry.Context">
            <summary>
            Gets the object that contains contextual information about the application at the time when it handled the request.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.OperationTelemetry.Sequence">
            <summary>
            Gets or sets the value that defines absolute order of the telemetry item.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.OperationTelemetry.Microsoft#ApplicationInsights#Channel#ITelemetry#Sanitize">
            <summary>
            Sanitizes the properties based on constraints.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.OperationTelemetry.Sanitize">
            <summary>
            Allow to call OperationTelemetry.Sanitize method from child classes.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.Property">
            <summary>
            A helper class for implementing properties of telemetry and context classes.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.SessionContext">
            <summary>
            Encapsulates information about a user session.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.SessionContext.Id">
            <summary>
            Gets or sets the application-defined session ID.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.SessionContext.IsFirst">
            <summary>
            Gets or sets the IsFirst Session for the user.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TaskTimer">
            <summary>
            Runs a task after a certain delay and log any error.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.TaskTimer.InfiniteTimeSpan">
            <summary>
            Represents an infinite time span.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.TaskTimer.Delay">
            <summary>
            Gets or sets the delay before the task starts.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.TaskTimer.IsStarted">
            <summary>
            Gets a value indicating whether value that indicates if a task has already started.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.TaskTimer.Start(System.Func{System.Threading.Tasks.Task})">
            <summary>
            Start the task.
            </summary>
            <param name="elapsed">The task to run.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.TaskTimer.Cancel">
            <summary>
            Cancels the current task.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.TaskTimer.Dispose">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.Telemetry.NormalizeInstrumentationKey(System.String)">
            <summary>
            Normalize instrumentation key by removing dashes ('-') and making string in the lowercase.
            In case no InstrumentationKey is available just return empty string.
            In case when InstrumentationKey is available return normalized key + dot ('.')
            as a separator between instrumentation key part and telemetry name part.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryContextExtensions">
            <summary>
            Extension methods for TelemetryContext.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryContextExtensions.GetInternalContext(Microsoft.ApplicationInsights.DataContracts.TelemetryContext)">
            <summary>
            Returns TelemetryContext's Internal context.
            </summary>
            <param name="context">Telemetry context to get Internal context for.</param>
            <returns>Internal context for TelemetryContext.</returns>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChain">
            <summary>
            Represents the TelemetryProcessor chain. Clients should use TelemetryProcessorChainBuilder to construct this object.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChain.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChain" /> class.
            Marked internal, as clients should use TelemetryProcessorChainBuilder to build the processing chain.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChain.#ctor(System.Collections.Generic.IEnumerable{Microsoft.ApplicationInsights.Extensibility.ITelemetryProcessor})">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChain" /> class by using the given list elements.
            Marked internal, as clients should use TelemetryProcessorChainBuilder to build the processing chain.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChain.FirstTelemetryProcessor">
            <summary>
            Gets the first telemetry processor from the chain of processors.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChain.TelemetryProcessors">
            <summary>
            Gets the list of TelemetryProcessors making up this chain.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChain.Process(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Invokes the process method in the first telemetry processor.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChain.Dispose">
            <summary>
            Releases resources used by the current instance of the <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChain"/> class.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChainBuilder">
            <summary>
            Represents an object used to Build a TelemetryProcessorChain.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChainBuilder.#ctor(Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChainBuilder" /> class.
            </summary>
            <param name="configuration"> The <see cref="T:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration"/> instance to which the constructed processing chain should be set to. </param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChainBuilder.Use(System.Func{Microsoft.ApplicationInsights.Extensibility.ITelemetryProcessor,Microsoft.ApplicationInsights.Extensibility.ITelemetryProcessor})">
            <summary>
            Uses given factory to add TelemetryProcessor to the chain of processors. The processors
            in the chain will be invoked in the same order in which they are added.
            </summary>
            <param name="telemetryProcessorFactory">A delegate that returns a <see cref="T:Microsoft.ApplicationInsights.Extensibility.ITelemetryProcessor"/>
            , given the next <see cref="T:Microsoft.ApplicationInsights.Extensibility.ITelemetryProcessor"/> in the call chain.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryProcessorChainBuilder.Build">
            <summary>
            Builds the chain of linked <see cref="T:Microsoft.ApplicationInsights.Extensibility.ITelemetryProcessor" /> instances and sets the same in configuration object passed.
            A special telemetry processor for handling Transmission is always appended as the last
            processor in the chain.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.CoreEventSource.OperationIsNullWarning(System.String)">
            <summary>
            Logs the information when there operation to track is null.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.CoreEventSource.InvalidOperationToStopError(System.String)">
            <summary>
            Logs the information when there operation to stop does not match the current operation.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.CoreEventSource.Keywords">
            <summary>
            Keywords for the PlatformEventSource.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.CoreEventSource.Keywords.UserActionable">
            <summary>
            Key word for user actionable events.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.CoreEventSource.Keywords.Diagnostics">
            <summary>
            Keyword for errors that trace at Verbose level.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.CoreEventSource.Keywords.VerboseFailure">
            <summary>
            Keyword for errors that trace at Verbose level.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.CoreEventSource.Keywords.ErrorFailure">
            <summary>
            Keyword for errors that trace at Error level.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsListener">
            <summary>
            Subscriber to ETW Event source events, which sends data to other Senders (F5 and Portal).
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule">
            <summary>
            Use diagnostics telemetry module to report SDK internal problems to the portal and VS debug output window.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule"/> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule.Finalize">
            <summary>
            Finalizes an instance of the <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule" /> class.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule.Severity">
            <summary>
            Gets or sets diagnostics Telemetry Module LogLevel configuration setting.
            Possible values LogAlways, Critical, Error, Warning, Informational and Verbose.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule.DiagnosticsInstrumentationKey">
            <summary>
            Gets or sets instrumentation key for diagnostics. Use to redirect SDK
            internal problems reporting to the separate instrumentation key.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule.Initialize(Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration)">
            <summary>
            Initializes this telemetry module.
            </summary>
            <param name="configuration">Telemetry configuration to use for this telemetry module.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule.Dispose">
            <summary>
            Disposes this object.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.EventMetaData">
            <summary>
            Event metadata from event source method attribute.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.Extensions">
            <summary>
            Provides a set of extension methods for tracing.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.Extensions.ToInvariantString(System.Exception)">
            <summary>
            Returns a culture-independent string representation of the given <paramref name="exception"/> object,
            appropriate for diagnostics tracing.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.F5DiagnosticsSender">
            <summary>
            This class is responsible for sending diagnostics information into VS debug output
            for F5 experience.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.F5DiagnosticsSender.debugOutput">
            <summary>
            VS debug output.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.F5DiagnosticsSender.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.F5DiagnosticsSender"/> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.IDiagnosticsSender.Send(Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.TraceEvent)">
            <summary>
            Sends diagnostics data to the appropriate output.
            </summary>
            <param name="eventData">Information about trace event.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.PortalDiagnosticsQueueSender">
            <summary>
            A dummy queue sender to keep the data to be sent to the portal before the initialize method is called.
            This is due to the fact that initialize method cannot be called without the configuration and
            the event listener write event is triggered before the diagnosticTelemetryModule initialize method is triggered.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.PortalDiagnosticsSender">
            <summary>
            This class is responsible for sending diagnostics information into portal.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.PortalDiagnosticsSender.AiPrefix">
            <summary>
            Prefix of the traces in portal.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.PortalDiagnosticsSender.AiNonUserActionable">
            <summary>
            For user non actionable traces use AI Internal prefix.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.PortalDiagnosticsSender.#ctor(Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration,Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.IDiagnoisticsEventThrottlingManager)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.PortalDiagnosticsSender"/> class.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.PortalDiagnosticsSender.DiagnosticsInstrumentationKey">
            <summary>
            Gets or sets instrumentation key for diagnostics (optional).
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.ThreadResourceLock">
            <summary>
            Thread level resource section lock.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.ThreadResourceLock.syncObject">
            <summary>
            Thread level lock object.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.ThreadResourceLock.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.ThreadResourceLock" /> class.
            Marks section locked.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.ThreadResourceLock.IsResourceLocked">
            <summary>
            Gets a value indicating whether lock is set on the section.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.ThreadResourceLock.Dispose">
            <summary>
            Release lock.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.TraceEvent">
            <summary>
            Event Source event wrapper.
            Contains description information for trace event.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.TraceEvent.MetaData">
            <summary>
            Gets or sets event metadata.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.TraceEvent.Payload">
            <summary>
            Gets or sets event event parameters.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TransmissionProcessor">
            <summary>
            An <see cref="T:Microsoft.ApplicationInsights.Extensibility.ITelemetryProcessor"/> that act as a proxy to the Transmission of telemetry"/>.
            The <see cref="T:Microsoft.ApplicationInsights.Channel.ITelemetryChannel"/>, as configured in <see cref="T:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration"/> will be used for transmission.
            This processor is always appended as the last processor in the chain.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.TransmissionProcessor.#ctor(Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TransmissionProcessor"/> class.
            </summary>
            <param name="configuration">The <see cref="T:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration"/> to get the channel from.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.TransmissionProcessor.Process(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Process the given <see cref="T:Microsoft.ApplicationInsights.Channel.ITelemetry"/> item. Here processing is sending the item through the channel/>.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TypeExtensions">
            <summary>
            Defines extension methods that allow coding against <see cref="T:System.Type"/> without conditional compilation on versions of .NET framework.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.TypeExtensions.IsAssignableFrom(System.Type,System.Type)">
            <summary>
            Returns a value that indicates whether the specified type can be assigned to the current type.
            </summary>
            <remarks>
            This method emulates the built-in method of the <see cref="T:System.Type"/> class which is not available on Windows Runtime.
            </remarks>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.TypeExtensions.GetProperties(System.Type)">
            <summary>
            Returns all the public properties of the specified type.
            </summary>
            <remarks>
            This method emulates the built-in method of the <see cref="T:System.Type"/> class which is not available on Windows Runtime.
            Note that, unlike the built-in <see cref="T:System.Type"/> method, this method does not return properties defined in any of the base types.
            However, this should be sufficient for our public types, which have to be sealed on Windows Runtime.
            </remarks>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.UserContext">
            <summary>
            Encapsulates information about a user using an application.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.UserContext.Id">
            <summary>
            Gets or sets the ID of user accessing the application.
            </summary>
            <remarks>
            Unique user ID is automatically generated in default Application Insights configuration.
            </remarks>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.UserContext.AccountId">
            <summary>
            Gets or sets the ID of an application-defined account associated with the user.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.UserContext.UserAgent">
            <summary>
            Gets or sets the UserAgent of an application-defined account associated with the user.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.UserContext.AuthenticatedUserId">
            <summary>
            Gets or sets the authenticated user id.
            Authenticated user id should be a persistent string that uniquely represents each authenticated user in the application or service.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.random">
            <summary>
            Generator singleton.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.index">
            <summary>
            Index of the last used random number within pre-generated array.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.segmentCount">
            <summary>
            Count of segments of random numbers.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.segmentSize">
            <summary>
            Number of random numbers per segment.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.bitsToStoreRandomIndexWithinSegment">
            <summary>
            Number of bits used to store index of the random number within segment.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.segmentIndexMask">
            <summary>
            Bit mask to get segment index bits.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.randomIndexWithinSegmentMask">
            <summary>
            Bit mask to get index of the random number within segment.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.randomArrayIndexMask">
            <summary>
            Bit mask to get index of the random number in the pre-generated array.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.randomGemerators">
            <summary>
            Array of random number batch generators (one per each segment).
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.randomNumbers">
            <summary>
            Array of pre-generated random numbers.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom"/> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.Initialize">
            <summary>
            Initializes generator with a set of random numbers.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.Initialize(System.Func{System.UInt64,Microsoft.ApplicationInsights.Extensibility.Implementation.IRandomNumberBatchGenerator},System.Int32,System.Int32)">
            <summary>
            Initializes generator with a set of random numbers.
            </summary>
            <param name="randomGeneratorFactory">Factory used to create random number batch generators.</param>
            <param name="segmentIndexBits">Number of significant bits in segment index, i.e. value of 3 means 8 segments of random numbers - 0..7.</param>
            <param name="segmentBits">Number of significant bits in random number index within segment, i.e. value of 10 means 1024 random numbers per segment.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.Next">
            <summary>
            Weakly thread safe next (random) operation id generator
            where 'weakly' indicates that it is unlikely we'll get into
            collision state.
            </summary>
            <returns>Next operation id.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.RegenerateSegment(System.Int32)">
            <summary>
            Generates random number batch for segment which just exhausted
            according to value of the new index.
            </summary>
            <param name="newIndex">Index in random number array of the random number we're about to return.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.XorshiftRandomBatchGenerator">
            <summary>
            Generates batches of random number using Xorshift algorithm
            Note: implementation of XorShift algorithm https://en.wikipedia.org/wiki/Xorshift. You can find some extra details and performance tests here http://www.codeproject.com/Articles/9187/A-fast-equivalent-for-System-Random.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.XorshiftRandomBatchGenerator.#ctor(System.UInt64)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.XorshiftRandomBatchGenerator"/> class.
            </summary>
            <param name="seed">Random generator seed value.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.XorshiftRandomBatchGenerator.NextBatch(System.UInt64[],System.Int32,System.Int32)">
            <summary>
            Generates a batch of random numbers.
            </summary>
            <param name="buffer">Buffer to put numbers in.</param>
            <param name="index">Start index in the buffer.</param>
            <param name="count">Count of random numbers to generate.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryModules">
            <summary>
            This API supports the AI Framework infrastructure and is not intended to be used directly from your code.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryModules.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryModules"/> class.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryModules.Instance">
            <summary>
            Gets the TelemetryModules collection.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryModules.Modules">
            <summary>
            Gets the telemetry modules collection.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.AsyncLocalBasedOperationHolder`1">
            <summary>
            Operation class that holds the telemetry item and the corresponding telemetry client.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.AsyncLocalBasedOperationHolder`1.ParentContext">
            <summary>
            Parent context store that is used to restore call context.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.AsyncLocalBasedOperationHolder`1.#ctor(Microsoft.ApplicationInsights.TelemetryClient,`0)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Extensibility.Implementation.AsyncLocalBasedOperationHolder`1"/> class.
            Initializes telemetry client.
            </summary>
            <param name="telemetryClient">Initializes telemetry client object.</param>
            <param name="telemetry">Operation telemetry item that is assigned to the telemetry associated to the current operation item.</param>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.Implementation.AsyncLocalBasedOperationHolder`1.Telemetry">
            <summary>
            Gets Telemetry item of interest that is created when StartOperation function of ClientExtensions is invoked.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.AsyncLocalBasedOperationHolder`1.Dispose">
            <summary>
            Dispose method to clear the variables.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.AsyncLocalBasedOperationHolder`1.Dispose(System.Boolean)">
            <summary>
            Computes the duration and tracks the respective telemetry item on dispose.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.AsyncLocalHelpers.SaveOperationContext(Microsoft.ApplicationInsights.Extensibility.Implementation.OperationContextForAsyncLocal)">
            <summary>
            Saves the context store to the call context.
            </summary>
            <param name="operationContext">Operation context store instance.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.AsyncLocalHelpers.GetCurrentOperationContext">
            <summary>
            Returns the current operation context store present in the call context.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.Implementation.AsyncLocalHelpers.RestoreOperationContext(Microsoft.ApplicationInsights.Extensibility.Implementation.OperationContextForAsyncLocal)">
            <summary>
            Clears the call context and restores the parent operation.
            </summary>
            <param name="parentContext">Parent operation context store to replace child operation context store.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.Implementation.OperationContextForAsyncLocal">
            <summary>
            Operation class that holds operation id and operation name for the current call context.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.OperationContextForAsyncLocal.ParentOperationId">
            <summary>
            Operation id that will be assigned to all the child telemetry items.
            Parent Operation id that will be assigned to all the child telemetry items.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.OperationContextForAsyncLocal.RootOperationId">
            <summary>
            Root Operation id that will be assigned to all the child telemetry items.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Extensibility.Implementation.OperationContextForAsyncLocal.RootOperationName">
            <summary>
            Operation name that will be assigned to all the child telemetry items.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.IDebugOutput">
            <summary>
            Encapsulates method call that has to be compiled with DEBUG compiler constant.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.IDebugOutput.WriteLine(System.String)">
            <summary>
            Write the message to the VisualStudio output window.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.IDebugOutput.IsLogging">
            <summary>
            Checks to see if logging is enabled by an attached debugger.
            </summary>
            <returns>true if a debugger is attached and logging is enabled; otherwise, false.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.IDebugOutput.IsAttached">
            <summary>
            Checks to see if debugger is attached.
            </summary>
            <returns>true if debugger is attached.</returns>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.IOperationHolder`1">
            <summary>
            Represents the operation item that holds telemetry which is tracked on end request. Operation can be associated with either WEB or SQL dependencies.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.IOperationHolder`1.Telemetry">
            <summary>
            Gets Telemetry item of interest that is created when StartOperation function of ClientExtensions is invoked.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.ITelemetryModule">
            <summary>
            Represents an object that supports initialization from <see cref="T:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration"/>.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.ITelemetryModule.Initialize(Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration)">
            <summary>
            Initialize method is called after all configuration properties have been loaded from the configuration.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.ITelemetryInitializer">
            <summary>
            Represents an object that initializes <see cref="T:Microsoft.ApplicationInsights.Channel.ITelemetry"/> objects.
            </summary>
            <remarks>
            The <see cref="T:Microsoft.ApplicationInsights.DataContracts.TelemetryContext"/> instances use <see cref="T:Microsoft.ApplicationInsights.Extensibility.ITelemetryInitializer"/> objects to
            automatically initialize properties of the <see cref="T:Microsoft.ApplicationInsights.Channel.ITelemetry"/> objects.
            </remarks>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.ITelemetryInitializer.Initialize(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Initializes properties of the specified <see cref="T:Microsoft.ApplicationInsights.Channel.ITelemetry"/> object.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.ITelemetryProcessor">
            <summary>
            Represents an object used to process telemetry as part of sending it to Application Insights.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.ITelemetryProcessor.Process(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Process a collected telemetry item.
            </summary>
            <param name="item">A collected Telemetry item.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.SdkVersionPropertyTelemetryInitializer">
            <summary>
            Initializes SDK Properties: SDK Version and SDKMode.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.SdkVersionPropertyTelemetryInitializer.Initialize(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Adds a telemetry property for the version of SDK.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration">
            <summary>
            Encapsulates the global telemetry configuration typically loaded from the ApplicationInsights.config file.
            </summary>
            <remarks>
            All <see cref="T:Microsoft.ApplicationInsights.DataContracts.TelemetryContext"/> objects are initialized using the <see cref="P:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active"/>
            telemetry configuration provided by this class.
            </remarks>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active">
            <summary>
            Gets the active <see cref="T:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration"/> instance loaded from the ApplicationInsights.config file.
            If the configuration file does not exist, the active configuration instance is initialized with minimum defaults
            needed to send telemetry to Application Insights.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.InstrumentationKey">
            <summary>
            Gets or sets the default instrumentation key for the application.
            </summary>
            <exception cref="T:System.ArgumentNullException">The new value is null.</exception>
            <remarks>
            This instrumentation key value is used by default by all <see cref="T:Microsoft.ApplicationInsights.TelemetryClient"/> instances
            created in the application. This value can be overwritten by setting the <see cref="P:Microsoft.ApplicationInsights.DataContracts.TelemetryContext.InstrumentationKey"/>
            property of the <see cref="P:Microsoft.ApplicationInsights.TelemetryClient.Context"/>.
            </remarks>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.DisableTelemetry">
            <summary>
            Gets or sets a value indicating whether sending of telemetry to Application Insights is disabled.
            </summary>
            <remarks>
            This disable tracking setting value is used by default by all <see cref="T:Microsoft.ApplicationInsights.TelemetryClient"/> instances
            created in the application.
            </remarks>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.TelemetryInitializers">
            <summary>
            Gets the list of <see cref="T:Microsoft.ApplicationInsights.Extensibility.ITelemetryInitializer"/> objects that supply additional information about telemetry.
            </summary>
            <remarks>
            Telemetry initializers extend Application Insights telemetry collection by supplying additional information
            about individual <see cref="T:Microsoft.ApplicationInsights.Channel.ITelemetry"/> items, such as <see cref="P:Microsoft.ApplicationInsights.Channel.ITelemetry.Timestamp"/>. A <see cref="T:Microsoft.ApplicationInsights.TelemetryClient"/>
            invokes telemetry initializers each time <see cref="M:Microsoft.ApplicationInsights.TelemetryClient.Track(Microsoft.ApplicationInsights.Channel.ITelemetry)"/> method is called.
            The default list of telemetry initializers is provided by the Application Insights NuGet packages and loaded from
            the ApplicationInsights.config file located in the application directory.
            </remarks>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.TelemetryProcessors">
            <summary>
            Gets a readonly collection of TelemetryProcessors.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.TelemetryProcessorChainBuilder">
            <summary>
            Gets the TelemetryProcessorChainBuilder which can build and populate TelemetryProcessors in the TelemetryConfiguration.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.TelemetryChannel">
            <summary>
            Gets or sets the telemetry channel.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.TelemetryProcessorChain">
            <summary>
            Gets or sets the chain of processors.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.CreateDefault">
            <summary>
            Creates a new <see cref="T:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration"/> instance loaded from the ApplicationInsights.config file.
            If the configuration file does not exist, the new configuration instance is initialized with minimum defaults
            needed to send telemetry to Application Insights.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.CreateFromConfiguration(System.String)">
            <summary>
            Creates a new <see cref="T:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration"/> instance loaded from the specified configuration.
            </summary>
            <param name="config">An xml serialized configuration.</param>
            <exception cref="T:System.ArgumentNullException">Throws if the config value is null or empty.</exception>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Dispose">
            <summary>
            Releases resources used by the current instance of the <see cref="T:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration"/> class.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.SequencePropertyInitializer">
            <summary>
            An <see cref="T:Microsoft.ApplicationInsights.Extensibility.ITelemetryInitializer"/> that that populates <see cref="P:Microsoft.ApplicationInsights.Channel.ITelemetry.Sequence"/> property for
            the Microsoft internal telemetry sent to the Vortex endpoint.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.SequencePropertyInitializer.Initialize(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Populates <see cref="P:Microsoft.ApplicationInsights.Channel.ITelemetry.Sequence"/> with unique ID and sequential number.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Extensibility.OperationCorrelationTelemetryInitializer">
            <summary>
            Telemetry initializer that populates OperationContext for the telemetry item based on context stored in AsyncLocal variable.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Extensibility.OperationCorrelationTelemetryInitializer.Initialize(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Initializes/Adds operation id to the existing telemetry item.
            </summary>
            <param name="telemetryItem">Target telemetry item to add operation id.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Channel.InMemoryChannel">
            <summary>
            Represents a communication channel for sending telemetry to Application Insights via HTTPS. There will be a buffer that will not be persisted, to enforce the
            queued telemetry items to be sent, <see cref="M:Microsoft.ApplicationInsights.Channel.ITelemetryChannel.Flush"/> should be called.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Channel.InMemoryChannel.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Channel.InMemoryChannel" /> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Channel.InMemoryChannel.#ctor(Microsoft.ApplicationInsights.Channel.TelemetryBuffer,Microsoft.ApplicationInsights.Channel.InMemoryTransmitter)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Channel.InMemoryChannel" /> class. Used in unit tests for constructor injection.
            </summary>
            <param name="telemetryBuffer">The telemetry buffer that will be used to enqueue new events.</param>
            <param name="transmitter">The in memory transmitter that will send the events queued in the buffer.</param>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Channel.InMemoryChannel.DeveloperMode">
            <summary>
            Gets or sets a value indicating whether developer mode of telemetry transmission is enabled.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Channel.InMemoryChannel.SendingInterval">
            <summary>
            Gets or sets the sending interval. Once the interval expires, <see cref="T:Microsoft.ApplicationInsights.Channel.InMemoryChannel"/>
            serializes the accumulated telemetry items for transmission and sends it over the wire.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Channel.InMemoryChannel.EndpointAddress">
            <summary>
            Gets or sets the HTTP address where the telemetry is sent.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Channel.InMemoryChannel.MaxTelemetryBufferCapacity">
            <summary>
            Gets or sets the maximum number of telemetry items will accumulate in a memory before
            the <see cref="T:Microsoft.ApplicationInsights.Channel.InMemoryChannel"/> serializing them for transmission to Application Insights.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Channel.InMemoryChannel.Send(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Sends an instance of ITelemetry through the channel.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Channel.InMemoryChannel.Flush">
            <summary>
            Will send all the telemetry items stored in the memory.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Channel.InMemoryChannel.Dispose">
            <summary>
            Disposing the channel.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Channel.InMemoryTransmitter">
            <summary>
            A transmitter that will immediately send telemetry over HTTP.
            Telemetry items are being sent when Flush is called, or when the buffer is full (An OnFull "event" is raised) or every 30 seconds.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Channel.InMemoryTransmitter.sendingLockObj">
            <summary>
            A lock object to serialize the sending calls from Flush, OnFull event and the Runner.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Channel.InMemoryTransmitter.disposeCount">
            <summary>
            The number of times this object was disposed.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Channel.InMemoryTransmitter.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Channel.InMemoryTransmitter.Flush">
            <summary>
            Flushes the in-memory buffer and sends it.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Channel.InMemoryTransmitter.Runner">
            <summary>
            Flushes the in-memory buffer and sends the telemetry items in <see cref="F:Microsoft.ApplicationInsights.Channel.InMemoryTransmitter.sendingInterval"/> intervals or when
            <see cref="F:Microsoft.ApplicationInsights.Channel.InMemoryTransmitter.startRunnerEvent" /> is set.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Channel.InMemoryTransmitter.OnBufferFull">
            <summary>
            Happens when the in-memory buffer is full. Flushes the in-memory buffer and sends the telemetry items.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Channel.InMemoryTransmitter.DequeueAndSend">
            <summary>
            Flushes the in-memory buffer and send it.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Channel.InMemoryTransmitter.Send(System.Collections.Generic.IEnumerable{Microsoft.ApplicationInsights.Channel.ITelemetry})">
            <summary>
            Serializes a list of telemetry items and sends them.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Channel.ITelemetry">
            <summary>
            The base telemetry type for application insights.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Channel.ITelemetry.Timestamp">
            <summary>
            Gets or sets date and time when telemetry was recorded.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Channel.ITelemetry.Context">
            <summary>
            Gets the context associated with this telemetry instance.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Channel.ITelemetry.Sequence">
            <summary>
            Gets or sets the value that defines absolute order of the telemetry item.
            </summary>
            <remarks>
            The sequence is used to track absolute order of uploaded telemetry items. It is a two-part value that includes
            a stable identifier for the current boot session and an incrementing identifier for each event added to the upload queue:
            For UTC this would increment for all events across the system.
            For Persistence this would increment for all events emitted from the hosting process.
            The Sequence helps track how many events were fired and how many events were uploaded and enables identification
            of data lost during upload and de-duplication of events on the ingress server.
            From <a href="https://microsoft.sharepoint.com/teams/CommonSchema/Shared%20Documents/Schema%20Specs/Common%20Schema%202%20-%20Language%20Specification.docx"/>.
            </remarks>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Channel.ITelemetry.Sanitize">
            <summary>
            Sanitizes the properties of the telemetry item based on DP constraints.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Channel.ITelemetryChannel">
            <summary>
            Represents a communication channel for sending telemetry to application insights.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Channel.ITelemetryChannel.DeveloperMode">
            <summary>
            Gets or sets a value indicating whether this channel is in developer mode.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Channel.ITelemetryChannel.EndpointAddress">
            <summary>
            Gets or sets the endpoint address of the channel.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Channel.ITelemetryChannel.Send(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            Sends an instance of ITelemetry through the channel.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Channel.ITelemetryChannel.Flush">
            <summary>
            Flushes the in-memory buffer.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Channel.TelemetryBuffer">
            <summary>
            Accumulates <see cref="T:Microsoft.ApplicationInsights.Channel.ITelemetry"/> items for efficient transmission.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.Channel.TelemetryBuffer.OnFull">
            <summary>
            Delegate that is raised when the buffer is full.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Channel.TelemetryBuffer.Capacity">
            <summary>
            Gets or sets the maximum number of telemetry items that can be buffered before transmission.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">The value is zero or less.</exception>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Channel.Transmission">
            <summary>
            Implements an asynchronous transmission of data to an HTTP POST endpoint.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Channel.Transmission.#ctor(System.Uri,System.Byte[],System.String,System.String,System.TimeSpan)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Channel.Transmission"/> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Channel.Transmission.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.Channel.Transmission"/> class. This overload is for Test purposes.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Channel.Transmission.EndpointAddress">
            <summary>
            Gets the Address of the endpoint to which transmission will be sent.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Channel.Transmission.Content">
            <summary>
            Gets the content of the transmission.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Channel.Transmission.ContentType">
            <summary>
            Gets the content's type of the transmission.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Channel.Transmission.ContentEncoding">
            <summary>
            Gets the encoding method of the transmission.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Channel.Transmission.Timeout">
            <summary>
            Gets a timeout value for the transmission.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.Channel.Transmission.Id">
            <summary>
            Gets an id of the transmission.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Channel.Transmission.SendAsync">
            <summary>
            Executes the request that the current transmission represents.
            </summary>
            <returns>The task to await.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Channel.Transmission.CreateRequest(System.Uri)">
            <summary>
            Creates a post web request.
            </summary>
            <param name="address">The Address in the web request.</param>
            <returns>A web request pointing to the <c>Address</c>.</returns>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DataContracts.EventTelemetry">
            <summary>
            Telemetry type used to track events.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.EventTelemetry.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.EventTelemetry"/> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.EventTelemetry.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.EventTelemetry"/> class with the given <paramref name="name"/>.
            </summary>
            <exception cref="T:System.ArgumentException">The event <paramref name="name"/> is null or empty string.</exception>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.EventTelemetry.Timestamp">
            <summary>
            Gets or sets date and time when event was recorded.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.EventTelemetry.Sequence">
            <summary>
            Gets or sets the value that defines absolute order of the telemetry item.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.EventTelemetry.Context">
            <summary>
            Gets the context associated with the current telemetry item.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.EventTelemetry.Name">
            <summary>
            Gets or sets the name of the event.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.EventTelemetry.Metrics">
            <summary>
            Gets a dictionary of application-defined event metrics.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.EventTelemetry.Properties">
            <summary>
            Gets a dictionary of application-defined property names and values providing additional information about this event.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.EventTelemetry.Microsoft#ApplicationInsights#DataContracts#ISupportSampling#SamplingPercentage">
            <summary>
            Gets or sets data sampling percentage (between 0 and 100).
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.EventTelemetry.Microsoft#ApplicationInsights#Channel#ITelemetry#Sanitize">
            <summary>
            Sanitizes the properties based on constraints.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DataContracts.ExceptionHandledAt">
            <summary>
            This enumeration is used by ExceptionTelemetry to identify if and where exception was handled.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DataContracts.ExceptionHandledAt.Unhandled">
            <summary>
            Exception was not handled. Application crashed.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DataContracts.ExceptionHandledAt.UserCode">
            <summary>
            Exception was handled in user code.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DataContracts.ExceptionHandledAt.Platform">
            <summary>
            Exception was handled by some platform handlers.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry">
            <summary>
            Telemetry type used to track exceptions.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry"/> class with empty properties.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry.#ctor(System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry"/> class with empty properties.
            </summary>
            <param name="exception">Exception instance.</param>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry.Timestamp">
            <summary>
            Gets or sets date and time when telemetry was recorded.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry.Sequence">
            <summary>
            Gets or sets the value that defines absolute order of the telemetry item.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry.Context">
            <summary>
            Gets the context associated with the current telemetry item.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry.HandledAt">
            <summary>
            Gets or sets the value indicated where the exception was handled.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry.Exception">
            <summary>
            Gets or sets the original exception tracked by this <see cref="T:Microsoft.ApplicationInsights.Channel.ITelemetry"/>.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry.Metrics">
            <summary>
            Gets a dictionary of application-defined exception metrics.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry.Properties">
            <summary>
            Gets a dictionary of application-defined property names and values providing additional information about this exception.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry.SeverityLevel">
            <summary>
            Gets or sets Exception severity level.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry.Microsoft#ApplicationInsights#DataContracts#ISupportSampling#SamplingPercentage">
            <summary>
            Gets or sets data sampling percentage (between 0 and 100).
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry.Microsoft#ApplicationInsights#Channel#ITelemetry#Sanitize">
            <summary>
            Sanitizes the properties based on constraints.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DataContracts.IJsonWriter">
            <summary>
            Encapsulates logic for serializing objects to JSON.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.IJsonWriter.WriteStartArray">
            <summary>
            Writes opening/left square bracket.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.IJsonWriter.WriteStartObject">
            <summary>
            Writes opening/left curly brace.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.IJsonWriter.WriteEndArray">
            <summary>
            Writes closing/right square bracket.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.IJsonWriter.WriteEndObject">
            <summary>
            Writes closing/right curly brace.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.IJsonWriter.WriteComma">
            <summary>
            Writes comma.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.IJsonWriter.WriteProperty(System.String,System.String)">
            <summary>
            Writes a <see cref="T:System.String"/> property.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.IJsonWriter.WriteProperty(System.String,System.Nullable{System.Boolean})">
            <summary>
            Writes a <see cref="T:System.Boolean"/> property.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.IJsonWriter.WriteProperty(System.String,System.Nullable{System.Int32})">
            <summary>
            Writes a <see cref="T:System.Int32"/> property.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.IJsonWriter.WriteProperty(System.String,System.Nullable{System.Double})">
            <summary>
            Writes a <see cref="T:System.Double"/> property.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.IJsonWriter.WriteProperty(System.String,System.Nullable{System.TimeSpan})">
            <summary>
            Writes a <see cref="T:System.TimeSpan"/> property.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.IJsonWriter.WriteProperty(System.String,System.Nullable{System.DateTimeOffset})">
            <summary>
            Writes a <see cref="T:System.DateTimeOffset"/> property.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.IJsonWriter.WriteProperty(System.String,System.Collections.Generic.IDictionary{System.String,System.Double})">
            <summary>
            Writes a <see cref="T:System.Collections.Generic.IDictionary`2"/> property.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.IJsonWriter.WriteProperty(System.String,System.Collections.Generic.IDictionary{System.String,System.String})">
            <summary>
            Writes a <see cref="T:System.Collections.Generic.IDictionary`2"/> property.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.IJsonWriter.WritePropertyName(System.String)">
            <summary>
            Writes a property name in double quotation marks, followed by a colon.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.IJsonWriter.WriteRawValue(System.Object)">
            <summary>
            Writes <see cref="T:System.Object"/> as raw value directly.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DataContracts.InnerExceptionCountExceededException">
            <summary>
            This exception is used to notify the user that the set of inner exceptions has been trimmed because it exceeded our allowed send limit.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.InnerExceptionCountExceededException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.InnerExceptionCountExceededException"/> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.InnerExceptionCountExceededException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.InnerExceptionCountExceededException"/> class with a specified error message.
            </summary>
            <param name="message">The message that describes the error. </param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.InnerExceptionCountExceededException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.InnerExceptionCountExceededException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">The error message that explains the reason for the exception. </param><param name="innerException">The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. </param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.InnerExceptionCountExceededException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.InnerExceptionCountExceededException"/> class with serialized data.
            </summary>
            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown. </param><param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination. </param><exception cref="T:System.ArgumentNullException">The <paramref name="info"/> parameter is null. </exception><exception cref="T:System.Runtime.Serialization.SerializationException">The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0). </exception>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DataContracts.ISupportProperties">
            <summary>
            Represents an object that supports application-defined properties.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.ISupportProperties.Properties">
            <summary>
            Gets a dictionary of application-defined property names and values providing additional information about telemetry.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DataContracts.ISupportSampling">
            <summary>
            Represent objects that support data sampling.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.ISupportSampling.SamplingPercentage">
            <summary>
            Gets or sets data sampling percentage (between 0 and 100).
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DataContracts.MetricTelemetry">
            <summary>
            Telemetry type used to track metrics.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.MetricTelemetry.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.MetricTelemetry"/> class with empty
            properties.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.MetricTelemetry.#ctor(System.String,System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.MetricTelemetry"/> class with the
            specified <paramref name="metricName"/> and <paramref name="metricValue"/>.
            </summary>
            <exception cref="T:System.ArgumentException">The <paramref name="metricName"/> is null or empty string.</exception>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.MetricTelemetry.Timestamp">
            <summary>
            Gets or sets date and time when event was recorded.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.MetricTelemetry.Sequence">
            <summary>
            Gets or sets the value that defines absolute order of the telemetry item.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.MetricTelemetry.Context">
            <summary>
            Gets the context associated with the current telemetry item.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.MetricTelemetry.Name">
            <summary>
            Gets or sets the name of the metric.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.MetricTelemetry.Value">
            <summary>
            Gets or sets the value of this metric.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.MetricTelemetry.Count">
            <summary>
            Gets or sets the number of samples for this metric.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.MetricTelemetry.Min">
            <summary>
            Gets or sets the min value of this metric.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.MetricTelemetry.Max">
            <summary>
            Gets or sets the max value of this metric.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.MetricTelemetry.StandardDeviation">
            <summary>
            Gets or sets the standard deviation of this metric.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.MetricTelemetry.Properties">
            <summary>
            Gets a dictionary of application-defined property names and values providing additional information about this metric.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.MetricTelemetry.Microsoft#ApplicationInsights#Channel#ITelemetry#Sanitize">
            <summary>
            Sanitizes the properties based on constraints.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry">
            <summary>
            Telemetry type used to track page views.
            </summary>
            <remarks>
            You can send information about pages viewed by your application to Application Insights by
            passing an instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry"/> class to the <see cref="M:Microsoft.ApplicationInsights.TelemetryClient.TrackPageView(Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry)"/>
            method.
            </remarks>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry"/> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry"/> class with the
            specified <paramref name="pageName"/>.
            </summary>
            <exception cref="T:System.ArgumentException">The <paramref name="pageName"/> is null or empty string.</exception>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry.Timestamp">
            <summary>
            Gets or sets date and time when event was recorded.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry.Sequence">
            <summary>
            Gets or sets the value that defines absolute order of the telemetry item.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry.Context">
            <summary>
            Gets the context associated with the current telemetry item.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry.Name">
            <summary>
            Gets or sets the name of the metric.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry.Url">
            <summary>
            Gets or sets the page view Uri.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry.Duration">
            <summary>
            Gets or sets the page view duration.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry.Metrics">
            <summary>
            Gets a dictionary of custom defined metrics.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry.Properties">
            <summary>
            Gets a dictionary of application-defined property names and values providing additional information about this page view.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry.Microsoft#ApplicationInsights#DataContracts#ISupportSampling#SamplingPercentage">
            <summary>
            Gets or sets data sampling percentage (between 0 and 100).
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry.Microsoft#ApplicationInsights#Channel#ITelemetry#Sanitize">
            <summary>
            Sanitizes the properties based on constraints.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DataContracts.PerformanceCounterTelemetry">
            <summary>
            The class that represents information about performance counters.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.PerformanceCounterTelemetry.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.PerformanceCounterTelemetry"/> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.PerformanceCounterTelemetry.#ctor(System.String,System.String,System.String,System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.PerformanceCounterTelemetry"/> class.
            </summary>
            <param name="categoryName">Category name.</param>
            <param name="counterName">Performance counter name.</param>
            <param name="instanceName">Instance name.</param>
            <param name="value">Performance counter value.</param>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.PerformanceCounterTelemetry.Timestamp">
            <summary>
            Gets or sets date and time when telemetry was recorded.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.PerformanceCounterTelemetry.Sequence">
            <summary>
            Gets or sets the value that defines absolute order of the telemetry item.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.PerformanceCounterTelemetry.Context">
            <summary>
            Gets the context associated with the current telemetry item.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.PerformanceCounterTelemetry.Value">
            <summary>
            Gets or sets the counter value.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.PerformanceCounterTelemetry.CategoryName">
            <summary>
            Gets or sets the category name.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.PerformanceCounterTelemetry.CounterName">
            <summary>
            Gets or sets the counter name.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.PerformanceCounterTelemetry.InstanceName">
            <summary>
            Gets or sets the instance name.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.PerformanceCounterTelemetry.Properties">
            <summary>
            Gets a dictionary of application-defined property names and values providing additional information about this exception.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.PerformanceCounterTelemetry.Microsoft#ApplicationInsights#Channel#ITelemetry#Sanitize">
            <summary>
            Sanitizes the properties based on constraints.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry">
            <summary>
            The class that represents information about the collected dependency.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry"/> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry.#ctor(System.String,System.String,System.DateTimeOffset,System.TimeSpan,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry"/> class with the given <paramref name="dependencyName"/>, <paramref name="commandName"/>,
            <paramref name="startTime"/>, <paramref name="duration"/> and <paramref name="success"/> property values.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry.Timestamp">
            <summary>
            Gets or sets date and time when telemetry was recorded.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry.Sequence">
            <summary>
            Gets or sets the value that defines absolute order of the telemetry item.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry.Context">
            <summary>
            Gets the context associated with the current telemetry item.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry.Id">
            <summary>
            Gets or sets Dependency ID.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry.ResultCode">
            <summary>
            Gets or sets the Result Code.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry.Name">
            <summary>
            Gets or sets resource name.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry.CommandName">
            <summary>
            Gets or sets text of SQL command or empty it not applicable.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry.DependencyTypeName">
            <summary>
            Gets or sets the dependency type name.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry.StartTime">
            <summary>
            Gets or sets the date and time when dependency was called by the application.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry.Duration">
            <summary>
            Gets or sets dependency call duration.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry.Success">
            <summary>
            Gets or sets a value indicating whether the dependency call was successful or not.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry.Properties">
            <summary>
            Gets a dictionary of application-defined property names and values providing additional information about this remote dependency.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry.DependencyKind">
            <summary>
            Gets or sets the dependency kind, like SQL, HTTP, Azure, etc.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry.Microsoft#ApplicationInsights#DataContracts#ISupportSampling#SamplingPercentage">
            <summary>
            Gets or sets data sampling percentage (between 0 and 100).
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry.Microsoft#ApplicationInsights#Channel#ITelemetry#Sanitize">
            <summary>
            Sanitizes the properties based on constraints.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DataContracts.RequestTelemetry">
            <summary>
            Encapsulates information about a web request handled by the application.
            </summary>
            <remarks>
            You can send information about requests processed by your web application to Application Insights by
            passing an instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.RequestTelemetry"/> class to the <see cref="M:Microsoft.ApplicationInsights.TelemetryClient.TrackRequest(Microsoft.ApplicationInsights.DataContracts.RequestTelemetry)"/>
            method.
            </remarks>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.RequestTelemetry.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.RequestTelemetry"/> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.RequestTelemetry.#ctor(System.String,System.DateTimeOffset,System.TimeSpan,System.String,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.RequestTelemetry"/> class with the given <paramref name="name"/>,
            <paramref name="startTime"/>, <paramref name="duration"/>, <paramref name="responseCode"/> and <paramref name="success"/> property values.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.RequestTelemetry.Timestamp">
            <summary>
            Gets or sets date and time when telemetry was recorded.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.RequestTelemetry.StartTime">
            <summary>
            Gets or sets the date and time when request was processed by the application.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.RequestTelemetry.Sequence">
            <summary>
            Gets or sets the value that defines absolute order of the telemetry item.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.RequestTelemetry.Context">
            <summary>
            Gets the object that contains contextual information about the application at the time when it handled the request.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.RequestTelemetry.Id">
            <summary>
            Gets or sets Request ID.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.RequestTelemetry.Name">
            <summary>
            Gets or sets human-readable name of the requested page.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.RequestTelemetry.ResponseCode">
            <summary>
            Gets or sets response code returned by the application after handling the request.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.RequestTelemetry.Success">
            <summary>
            Gets or sets a value indicating whether application handled the request successfully.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.RequestTelemetry.Duration">
            <summary>
            Gets or sets the amount of time it took the application to handle the request.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.RequestTelemetry.Properties">
            <summary>
            Gets a dictionary of application-defined property names and values providing additional information about this request.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.RequestTelemetry.Url">
            <summary>
            Gets or sets request url (optional).
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.RequestTelemetry.Metrics">
            <summary>
            Gets a dictionary of application-defined request metrics.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.RequestTelemetry.HttpMethod">
            <summary>
            Gets or sets the HTTP method of the request.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.RequestTelemetry.Microsoft#ApplicationInsights#DataContracts#ISupportSampling#SamplingPercentage">
            <summary>
            Gets or sets data sampling percentage (between 0 and 100).
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.RequestTelemetry.Microsoft#ApplicationInsights#Channel#ITelemetry#Sanitize">
            <summary>
            Sanitizes the properties based on constraints.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DataContracts.SessionState">
            <summary>
            Contains values that identify state of a user session.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DataContracts.SessionState.Start">
            <summary>
            Indicates that a user session started.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DataContracts.SessionState.End">
            <summary>
            Indicates that a user session ended.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DataContracts.SessionStateTelemetry">
            <summary>
            Telemetry type used to track user sessions.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.SessionStateTelemetry.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.SessionStateTelemetry"/> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.SessionStateTelemetry.#ctor(Microsoft.ApplicationInsights.DataContracts.SessionState)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.SessionStateTelemetry"/> class with the specified <paramref name="state"/>.
            </summary>
            <param name="state">
            A <see cref="T:Microsoft.ApplicationInsights.DataContracts.SessionState"/> value indicating state of the user session.
            </param>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.SessionStateTelemetry.Timestamp">
            <summary>
            Gets or sets the date and time the session state was recorded.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.SessionStateTelemetry.Context">
            <summary>
            Gets the <see cref="T:Microsoft.ApplicationInsights.DataContracts.TelemetryContext"/> of the application when the session state was recorded.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.SessionStateTelemetry.Sequence">
            <summary>
            Gets or sets the value that defines absolute order of the telemetry item.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.SessionStateTelemetry.State">
            <summary>
            Gets or sets the value describing state of the user session.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.SessionStateTelemetry.Microsoft#ApplicationInsights#Channel#ITelemetry#Sanitize">
            <summary>
            Sanitizes this telemetry instance to ensure it can be accepted by the Application Insights.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DataContracts.SeverityLevel">
            <summary>
            This enumeration is used by ExceptionTelemetry and TraceTelemetry to identify severity level.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DataContracts.SeverityLevel.Verbose">
            <summary>
            Verbose severity level.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DataContracts.SeverityLevel.Information">
            <summary>
            Information severity level.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DataContracts.SeverityLevel.Warning">
            <summary>
            Warning severity level.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DataContracts.SeverityLevel.Error">
            <summary>
            Error severity level.
            </summary>
        </member>
        <member name="F:Microsoft.ApplicationInsights.DataContracts.SeverityLevel.Critical">
            <summary>
            Critical severity level.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DataContracts.TelemetryContext">
            <summary>
            Represents a context for sending telemetry to the Application Insights service.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.TelemetryContext.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.TelemetryContext"/> class.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.TelemetryContext.InstrumentationKey">
            <summary>
            Gets or sets the default instrumentation key for all <see cref="T:Microsoft.ApplicationInsights.Channel.ITelemetry"/> objects logged in this <see cref="T:Microsoft.ApplicationInsights.DataContracts.TelemetryContext"/>.
            </summary>
            <remarks>
            By default, this property is initialized with the <see cref="P:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.InstrumentationKey"/> value
            of the <see cref="P:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active"/> instance of <see cref="T:Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration"/>. You can specify it
            for all telemetry tracked via a particular <see cref="T:Microsoft.ApplicationInsights.TelemetryClient"/> or for a specific <see cref="T:Microsoft.ApplicationInsights.Channel.ITelemetry"/>
            instance.
            </remarks>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.TelemetryContext.Component">
            <summary>
            Gets the object describing the component tracked by this <see cref="T:Microsoft.ApplicationInsights.DataContracts.TelemetryContext"/>.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.TelemetryContext.Device">
            <summary>
            Gets the object describing the device tracked by this <see cref="T:Microsoft.ApplicationInsights.DataContracts.TelemetryContext"/>.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.TelemetryContext.Cloud">
            <summary>
            Gets the object describing the cloud tracked by this <see cref="T:Microsoft.ApplicationInsights.DataContracts.TelemetryContext"/>.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.TelemetryContext.Session">
            <summary>
            Gets the object describing a user session tracked by this <see cref="T:Microsoft.ApplicationInsights.DataContracts.TelemetryContext"/>.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.TelemetryContext.User">
            <summary>
            Gets the object describing a user tracked by this <see cref="T:Microsoft.ApplicationInsights.DataContracts.TelemetryContext"/>.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.TelemetryContext.Operation">
            <summary>
            Gets the object describing a operation tracked by this <see cref="T:Microsoft.ApplicationInsights.DataContracts.TelemetryContext"/>.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.TelemetryContext.Location">
            <summary>
            Gets the object describing a location tracked by this <see cref="T:Microsoft.ApplicationInsights.DataContracts.TelemetryContext" />.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.TelemetryContext.Properties">
            <summary>
            Gets a dictionary of application-defined property values.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.TelemetryContext.Tags">
            <summary>
            Gets a dictionary of context tags.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.DataContracts.TraceTelemetry">
            <summary>
            Telemetry type used for log messages.
            Contains a time and message and optionally some additional metadata.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.TraceTelemetry.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.TraceTelemetry"/> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.TraceTelemetry.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.TraceTelemetry"/> class.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.TraceTelemetry.#ctor(System.String,Microsoft.ApplicationInsights.DataContracts.SeverityLevel)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.DataContracts.TraceTelemetry"/> class.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.TraceTelemetry.Timestamp">
            <summary>
            Gets or sets date and time when event was recorded.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.TraceTelemetry.Sequence">
            <summary>
            Gets or sets the value that defines absolute order of the telemetry item.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.TraceTelemetry.Context">
            <summary>
            Gets the context associated with the current telemetry item.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.TraceTelemetry.Message">
            <summary>
            Gets or sets the message text. For example, the text that would normally be written to a log file line.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.TraceTelemetry.SeverityLevel">
            <summary>
            Gets or sets Trace severity level.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.TraceTelemetry.Properties">
            <summary>
            Gets a dictionary of application-defined property names and values providing additional information about this trace.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.DataContracts.TraceTelemetry.Microsoft#ApplicationInsights#DataContracts#ISupportSampling#SamplingPercentage">
            <summary>
            Gets or sets data sampling percentage (between 0 and 100).
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.DataContracts.TraceTelemetry.Microsoft#ApplicationInsights#Channel#ITelemetry#Sanitize">
            <summary>
            Sanitizes the properties based on constraints.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.OperationTelemetryExtensions">
            <summary>
            Extension functions to operation telemetry that start and stop the timer.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.OperationTelemetryExtensions.Start(Microsoft.ApplicationInsights.Extensibility.Implementation.OperationTelemetry)">
            <summary>
            An extension to telemetry item that starts the timer for the the respective telemetry.
            </summary>
            <param name="telemetry">Telemetry item object that calls this extension method.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.OperationTelemetryExtensions.Stop(Microsoft.ApplicationInsights.Extensibility.Implementation.OperationTelemetry)">
            <summary>
            An extension method to telemetry item that stops the timer and computes the duration of the request or dependency.
            </summary>
            <param name="telemetry">Telemetry item object that calls this extension method.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.OperationTelemetryExtensions.GenerateOperationId(Microsoft.ApplicationInsights.Extensibility.Implementation.OperationTelemetry)">
            <summary>
            Generate random operation Id and set it to OperationContext.
            </summary>
            <param name="telemetry">Telemetry to initialize Operation id for.</param>
        </member>
        <member name="T:Microsoft.ApplicationInsights.TelemetryClient">
            <summary>
            Send events, metrics and other telemetry to the Application Insights service.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClient.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.TelemetryClient" /> class. Send telemetry with the active configuration, usually loaded from ApplicationInsights.config.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClient.#ctor(Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.ApplicationInsights.TelemetryClient" /> class. Send telemetry with the specified <paramref name="configuration"/>.
            </summary>
            <exception cref="T:System.ArgumentNullException">The <paramref name="configuration"/> is null.</exception>
        </member>
        <member name="P:Microsoft.ApplicationInsights.TelemetryClient.Context">
            <summary>
            Gets the current context that will be used to augment telemetry you send.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.TelemetryClient.InstrumentationKey">
            <summary>
            Gets or sets the default instrumentation key for all <see cref="T:Microsoft.ApplicationInsights.Channel.ITelemetry"/> objects logged in this <see cref="T:Microsoft.ApplicationInsights.TelemetryClient"/>.
            </summary>
        </member>
        <member name="P:Microsoft.ApplicationInsights.TelemetryClient.TelemetryConfiguration">
            <summary>
            Gets the <see cref="P:Microsoft.ApplicationInsights.TelemetryClient.TelemetryConfiguration"/> object associated with this telemetry client instance.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClient.IsEnabled">
            <summary>
            Check to determine if the tracking is enabled.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClient.TrackEvent(System.String,System.Collections.Generic.IDictionary{System.String,System.String},System.Collections.Generic.IDictionary{System.String,System.Double})">
            <summary>
            Send an <see cref="T:Microsoft.ApplicationInsights.DataContracts.EventTelemetry"/> for display in Diagnostic Search and aggregation in Metrics Explorer.
            </summary>
            <param name="eventName">A name for the event.</param>
            <param name="properties">Named string values you can use to search and classify events.</param>
            <param name="metrics">Measurements associated with this event.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClient.TrackEvent(Microsoft.ApplicationInsights.DataContracts.EventTelemetry)">
            <summary>
            Send an <see cref="T:Microsoft.ApplicationInsights.DataContracts.EventTelemetry"/> for display in Diagnostic Search and aggregation in Metrics Explorer.
            Create a separate <see cref="T:Microsoft.ApplicationInsights.DataContracts.EventTelemetry"/> instance for each call to <see cref="M:Microsoft.ApplicationInsights.TelemetryClient.TrackEvent(Microsoft.ApplicationInsights.DataContracts.EventTelemetry)"/>.
            </summary>
            <param name="telemetry">An event log item.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClient.TrackTrace(System.String)">
            <summary>
            Send a trace message for display in Diagnostic Search.
            </summary>
            <param name="message">Message to display.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClient.TrackTrace(System.String,Microsoft.ApplicationInsights.DataContracts.SeverityLevel)">
            <summary>
            Send a trace message for display in Diagnostic Search.
            </summary>
            <param name="message">Message to display.</param>
            <param name="severityLevel">Trace severity level.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClient.TrackTrace(System.String,System.Collections.Generic.IDictionary{System.String,System.String})">
            <summary>
            Send a trace message for display in Diagnostic Search.
            </summary>
            <param name="message">Message to display.</param>
            <param name="properties">Named string values you can use to search and classify events.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClient.TrackTrace(System.String,Microsoft.ApplicationInsights.DataContracts.SeverityLevel,System.Collections.Generic.IDictionary{System.String,System.String})">
            <summary>
            Send a trace message for display in Diagnostic Search.
            </summary>
            <param name="message">Message to display.</param>
            <param name="severityLevel">Trace severity level.</param>
            <param name="properties">Named string values you can use to search and classify events.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClient.TrackTrace(Microsoft.ApplicationInsights.DataContracts.TraceTelemetry)">
            <summary>
            Send a trace message for display in Diagnostic Search.
            Create a separate <see cref="T:Microsoft.ApplicationInsights.DataContracts.TraceTelemetry"/> instance for each call to <see cref="M:Microsoft.ApplicationInsights.TelemetryClient.TrackTrace(Microsoft.ApplicationInsights.DataContracts.TraceTelemetry)"/>.
            </summary>
            <param name="telemetry">Message with optional properties.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClient.TrackMetric(System.String,System.Double,System.Collections.Generic.IDictionary{System.String,System.String})">
            <summary>
            Send a <see cref="T:Microsoft.ApplicationInsights.DataContracts.MetricTelemetry"/> for aggregation in Metric Explorer.
            </summary>
            <param name="name">Metric name.</param>
            <param name="value">Metric value.</param>
            <param name="properties">Named string values you can use to classify and filter metrics.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClient.TrackMetric(Microsoft.ApplicationInsights.DataContracts.MetricTelemetry)">
            <summary>
            Send a <see cref="T:Microsoft.ApplicationInsights.DataContracts.MetricTelemetry"/> for aggregation in Metric Explorer.
            Create a separate <see cref="T:Microsoft.ApplicationInsights.DataContracts.MetricTelemetry"/> instance for each call to <see cref="M:Microsoft.ApplicationInsights.TelemetryClient.TrackMetric(Microsoft.ApplicationInsights.DataContracts.MetricTelemetry)"/>.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClient.TrackException(System.Exception,System.Collections.Generic.IDictionary{System.String,System.String},System.Collections.Generic.IDictionary{System.String,System.Double})">
            <summary>
            Send an <see cref="T:Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry"/> for display in Diagnostic Search.
            </summary>
            <param name="exception">The exception to log.</param>
            <param name="properties">Named string values you can use to classify and search for this exception.</param>
            <param name="metrics">Additional values associated with this exception.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClient.TrackException(Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry)">
            <summary>
            Send an <see cref="T:Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry"/> for display in Diagnostic Search.
            Create a separate <see cref="T:Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry"/> instance for each call to <see cref="M:Microsoft.ApplicationInsights.TelemetryClient.TrackException(Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry)"/>
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClient.TrackDependency(System.String,System.String,System.DateTimeOffset,System.TimeSpan,System.Boolean)">
            <summary>
            Send information about external dependency call in the application.
            </summary>
            <param name="dependencyName">External dependency name.</param>
            <param name="commandName">Dependency call command name.</param>
            <param name="startTime">The time when the dependency was called.</param>
            <param name="duration">The time taken by the external dependency to handle the call.</param>
            <param name="success">True if the dependency call was handled successfully.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClient.TrackDependency(Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry)">
            <summary>
            Send information about external dependency call in the application.
            Create a separate <see cref="T:Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry"/> instance for each call to <see cref="M:Microsoft.ApplicationInsights.TelemetryClient.TrackDependency(Microsoft.ApplicationInsights.DataContracts.DependencyTelemetry)"/>
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClient.Track(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            This method is an internal part of Application Insights infrastructure. Do not call.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClient.Initialize(Microsoft.ApplicationInsights.Channel.ITelemetry)">
            <summary>
            This method is an internal part of Application Insights infrastructure. Do not call.
            </summary>
            <param name="telemetry">Telemetry item to initialize.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClient.TrackPageView(System.String)">
            <summary>
            Send information about the page viewed in the application.
            </summary>
            <param name="name">Name of the page.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClient.TrackPageView(Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry)">
            <summary>
            Send information about the page viewed in the application.
            Create a separate <see cref="T:Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry"/> instance for each call to <see cref="M:Microsoft.ApplicationInsights.TelemetryClient.TrackPageView(Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry)"/>.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClient.TrackRequest(System.String,System.DateTimeOffset,System.TimeSpan,System.String,System.Boolean)">
            <summary>
            Send information about a request handled by the application.
            </summary>
            <param name="name">The request name.</param>
            <param name="startTime">The time when the page was requested.</param>
            <param name="duration">The time taken by the application to handle the request.</param>
            <param name="responseCode">The response status code.</param>
            <param name="success">True if the request was handled successfully by the application.</param>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClient.TrackRequest(Microsoft.ApplicationInsights.DataContracts.RequestTelemetry)">
            <summary>
            Send information about a request handled by the application.
            Create a separate <see cref="T:Microsoft.ApplicationInsights.DataContracts.RequestTelemetry"/> instance for each call to <see cref="M:Microsoft.ApplicationInsights.TelemetryClient.TrackRequest(Microsoft.ApplicationInsights.DataContracts.RequestTelemetry)"/>.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClient.Flush">
            <summary>
            Flushes the in-memory buffer.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.Utils">
            <summary>
            Various utilities.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Utils.PopulateRequiredStringValue(System.String,System.String,System.String)">
            <summary>
            Validates the string and if null or empty populates it with '$parameterName is a required field for $telemetryType' value.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.Utils.ValidateDuration(System.String)">
            <summary>
            Returns default Timespan value if not a valid Timespan.
            </summary>
        </member>
        <member name="T:Microsoft.ApplicationInsights.TelemetryClientExtensions">
            <summary>
            Extension class to telemetry client that creates operation object with the respective fields initialized.
            </summary>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClientExtensions.StartOperation``1(Microsoft.ApplicationInsights.TelemetryClient,System.String)">
            <summary>
            Start operation creates an operation object with a respective telemetry item.
            </summary>
            <typeparam name="T">Type of the telemetry item.</typeparam>
            <param name="telemetryClient">Telemetry client object.</param>
            <param name="operationName">Name of the operation that customer is planning to propagate.</param>
            <returns>Operation item object with a new telemetry item having current start time and timestamp.</returns>
        </member>
        <member name="M:Microsoft.ApplicationInsights.TelemetryClientExtensions.StopOperation``1(Microsoft.ApplicationInsights.TelemetryClient,Microsoft.ApplicationInsights.Extensibility.IOperationHolder{``0})">
            <summary>
            Stop operation computes the duration of the operation and tracks it using the respective telemetry client.
            </summary>
            <param name="telemetryClient">Telemetry client object.</param>
            <param name="operation">Operation object to compute duration and track.</param>
        </member>
    </members>
</doc>
WebApi/GTech.Solution.Api.WebSite/bin/Newtonsoft.Json.xml
New file
Diff too large
WebApi/GTech.Solution.Api.WebSite/bin/Yokogawa.TLSVP.Api.Common.pdb
Binary files differ
WebApi/GTech.Solution.Api.WebSite/bin/Yokogawa.TLSVP.Api.Contract.pdb
Binary files differ
WebApi/GTech.Solution.Api.WebSite/bin/Yokogawa.TLSVP.Api.Domain.pdb
Binary files differ
WebApi/GTech.Solution.Api.WebSite/bin/Yokogawa.TLSVP.Api.WebSite.dll.config
New file
@@ -0,0 +1,152 @@
<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true"/>
    <add key="IgnoringAntPathRequestMatcher"
         value="CalculateDataServices.svc,EarthquakeAffectedAreaServices.svc,GrasslandFloodDisasterServices.svc,GrasslandFireDisasterServices.svc" />
  </appSettings>
  <connectionStrings>
    <add name="Default" connectionString="Data Source=39.98.182.30;port=3306;Initial Catalog=calculte;user id=root;password=abcd,.1234;" providerName="MySql.Data.MySqlClient" />
    <!--<add name="Default" connectionString="data source=.;initial catalog=GTDBOMTS;Uid=sa;pwd=sasa;App=EntityFramework" providerName="System.Data.SqlClient" />-->
  </connectionStrings>
  <system.web>
    <customErrors mode="Off" />
    <compilation debug="true" targetFramework="4.6.1" />
    <authentication mode="None" />
    <httpRuntime maxRequestLength="2097151" />
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" />
  </system.web>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <!--<add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="Content-Type, Accept" />
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE" />
        <add name="Access-Control-Max-Age" value="1728000" />-->
      </customHeaders>
    </httpProtocol>
    <modules runAllManagedModulesForAllRequests="false" />
    <staticContent>
      <mimeMap fileExtension=".apk" mimeType="application/vnd.android.package-archive" />
      <mimeMap fileExtension=".svc" mimeType="application/octet-stream" />
    </staticContent>
    <directoryBrowse enabled="false" />
  </system.webServer>
  <!--<system.diagnostics>
    <trace autoflush="true" />
    <sources>
      <source name="System.ServiceModel.MessageLogging">
        <listeners>
          <add name="ServiceModelMessageLoggingListener">
            <filter type="" />
          </add>
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add initializeData="Logs\Messages.svclog"
           type="System.Diagnostics.XmlWriterTraceListener"
           name="ServiceModelMessageLoggingListener"
           traceOutputOptions="Timestamp">
        <filter type="" />
      </add>
    </sharedListeners>
  </system.diagnostics>-->
  <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
    <diagnostics>
      <messageLogging logEntireMessage="true"
                      logMalformedMessages="true"
                      logMessagesAtServiceLevel="true"
                      logMessagesAtTransportLevel="true"
                      maxMessagesToLog="2147483647"
                      maxSizeOfMessageToLog="2147483647" />
    </diagnostics>
    <services>
      <service behaviorConfiguration="Yokogawa.TLSVP.Api.AppServiceBehavior"
        name="Yokogawa.TLSVP.Api.WebSite.CalculateDataServices">
        <endpoint address="" behaviorConfiguration="WebHttpBindingBehavior"
          binding="webHttpBinding" bindingConfiguration="MyServiceBinding"
          contract="Yokogawa.TLSVP.Api.Contract.ICalculateDataServices" />
      </service>
      <service behaviorConfiguration="Yokogawa.TLSVP.Api.AppServiceBehavior"
        name="Yokogawa.TLSVP.Api.WebSite.EarthquakeAffectedAreaServices">
        <endpoint address="" behaviorConfiguration="WebHttpBindingBehavior"
          binding="webHttpBinding" bindingConfiguration="MyServiceBinding"
          contract="Yokogawa.TLSVP.Api.Contract.IEarthquakeAffectedAreaServices" />
      </service>
      <service behaviorConfiguration="Yokogawa.TLSVP.Api.AppServiceBehavior"
        name="Yokogawa.TLSVP.Api.WebSite.GrasslandFloodDisasterServices">
        <endpoint address="" behaviorConfiguration="WebHttpBindingBehavior"
          binding="webHttpBinding" bindingConfiguration="MyServiceBinding"
          contract="Yokogawa.TLSVP.Api.Contract.IGrasslandFloodDisasterServices" />
      </service>
      <service behaviorConfiguration="Yokogawa.TLSVP.Api.AppServiceBehavior"
        name="Yokogawa.TLSVP.Api.WebSite.GrasslandFireDisasterServices">
        <endpoint address="" behaviorConfiguration="WebHttpBindingBehavior"
          binding="webHttpBinding" bindingConfiguration="MyServiceBinding"
          contract="Yokogawa.TLSVP.Api.Contract.IGrasslandFireDisasterServices" />
      </service>
    </services>
    <behaviors>
      <endpointBehaviors>
        <behavior name="WebHttpBindingBehavior">
          <webHttp />
        </behavior>
        <behavior name="webHttp">
          <webHttp helpEnabled="true" />
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior name="Yokogawa.TLSVP.Api.AppServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
        <behavior name="">
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <bindings>
      <webHttpBinding>
        <binding name="MyServiceBinding" sendTimeout="00:10:00" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferPoolSize="2147483647">
          <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <security mode="None" />
        </binding>
        <binding name="webHttpBindConfig" receiveTimeout="00:30:00" sendTimeout="00:30:00" maxReceivedMessageSize="104857600" transferMode="Streamed">
          <readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647" />
          <security mode="None" />
        </binding>
      </webHttpBinding>
      <basicHttpBinding />
    </bindings>
    <client />
  </system.serviceModel>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.10.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
      <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
    </providers>
  </entityFramework>
  <system.data>
    <DbProviderFactories>
      <remove invariant="MySql.Data.MySqlClient" />
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.10.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
      <remove invariant="System.Data.SQLite.EF6" />
      <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
      <remove invariant="System.Data.SQLite" />
      <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
    </DbProviderFactories>
  </system.data>
</configuration>
WebApi/GTech.Solution.Api.WebSite/bin/Yokogawa.TLSVP.Api.WebSite.pdb
Binary files differ
WebApi/GTech.Solution.Api.WebSite/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
WebApi/GTech.Solution.Api.WebSite/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
WebApi/GTech.Solution.Api.WebSite/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
WebApi/GTech.Solution.Api.WebSite/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
WebApi/GTech.Solution.Api.WebSite/obj/Debug/Yokogawa.TLSVP.Api.WebSite.csproj.FileListAbsolute.txt
New file
@@ -0,0 +1,40 @@
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\ApplicationInsights.config
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Yokogawa.TLSVP.Api.WebSite.dll.config
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Yokogawa.TLSVP.Api.WebSite.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Yokogawa.TLSVP.Api.WebSite.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\EntityFramework.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\EntityFramework.SqlServer.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\EPPlus.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\FTPMethod.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\JWT.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.AI.Agent.Intercept.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.AI.DependencyCollector.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.AI.PerfCounterCollector.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.AI.ServerTelemetryChannel.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.AI.Web.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.AI.WindowsServer.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.ApplicationInsights.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\MySql.Data.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\MySql.Data.Entity.EF6.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Newtonsoft.Json.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\SQLite.CodeFirst.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\System.Data.SQLite.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\System.Data.SQLite.EF6.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\System.Data.SQLite.Linq.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Yokogawa.TLSVP.Api.Common.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Yokogawa.TLSVP.Api.Contract.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Yokogawa.TLSVP.Api.Domain.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Yokogawa.TLSVP.Api.Common.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Yokogawa.TLSVP.Api.Contract.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Yokogawa.TLSVP.Api.Domain.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\JWT.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\JWT.xml
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.AI.DependencyCollector.xml
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.AI.ServerTelemetryChannel.xml
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.AI.Web.xml
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.AI.WindowsServer.xml
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.ApplicationInsights.xml
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Newtonsoft.Json.xml
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\obj\Debug\Yokogawa.TLSVP.Api.WebSite.csprojResolveAssemblyReference.cache
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\obj\Debug\Yokogawa.TLSVP.Api.WebSite.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\obj\Debug\Yokogawa.TLSVP.Api.WebSite.pdb
WebApi/GTech.Solution.Api.WebSite/obj/Debug/Yokogawa.TLSVP.Api.WebSite.csprojResolveAssemblyReference.cache
Binary files differ
WebApi/GTech.Solution.Api.WebSite/obj/Debug/Yokogawa.TLSVP.Api.WebSite.pdb
Binary files differ
WebApi/GTech.Solution.Api.WebSite/obj/Debug/build.force
WebApi/GTech.Solution.Api.WebSite/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
WebApi/GTech.Solution.Api.WebSite/obj/Release/GTech.Solution.Api.WebSite.csproj.FileListAbsolute.txt
New file
@@ -0,0 +1,40 @@
D:\Solution\GTech.Solution.Api.WebSite\bin\ApplicationInsights.config
D:\Solution\GTech.Solution.Api.WebSite\bin\GTech.Solution.Api.WebSite.dll.config
D:\Solution\GTech.Solution.Api.WebSite\bin\GTech.Solution.Api.WebSite.dll
D:\Solution\GTech.Solution.Api.WebSite\bin\GTech.Solution.Api.WebSite.pdb
D:\Solution\GTech.Solution.Api.WebSite\bin\EntityFramework.dll
D:\Solution\GTech.Solution.Api.WebSite\bin\EntityFramework.SqlServer.dll
D:\Solution\GTech.Solution.Api.WebSite\bin\EPPlus.dll
D:\Solution\GTech.Solution.Api.WebSite\bin\FTPMethod.dll
D:\Solution\GTech.Solution.Api.WebSite\bin\GTech.Solution.Api.Common.dll
D:\Solution\GTech.Solution.Api.WebSite\bin\GTech.Solution.Api.Contract.dll
D:\Solution\GTech.Solution.Api.WebSite\bin\GTech.Solution.Api.Domain.dll
D:\Solution\GTech.Solution.Api.WebSite\bin\JWT.dll
D:\Solution\GTech.Solution.Api.WebSite\bin\Microsoft.AI.Agent.Intercept.dll
D:\Solution\GTech.Solution.Api.WebSite\bin\Microsoft.AI.DependencyCollector.dll
D:\Solution\GTech.Solution.Api.WebSite\bin\Microsoft.AI.PerfCounterCollector.dll
D:\Solution\GTech.Solution.Api.WebSite\bin\Microsoft.AI.ServerTelemetryChannel.dll
D:\Solution\GTech.Solution.Api.WebSite\bin\Microsoft.AI.Web.dll
D:\Solution\GTech.Solution.Api.WebSite\bin\Microsoft.AI.WindowsServer.dll
D:\Solution\GTech.Solution.Api.WebSite\bin\Microsoft.ApplicationInsights.dll
D:\Solution\GTech.Solution.Api.WebSite\bin\MySql.Data.dll
D:\Solution\GTech.Solution.Api.WebSite\bin\MySql.Data.Entity.EF6.dll
D:\Solution\GTech.Solution.Api.WebSite\bin\Newtonsoft.Json.dll
D:\Solution\GTech.Solution.Api.WebSite\bin\SQLite.CodeFirst.dll
D:\Solution\GTech.Solution.Api.WebSite\bin\System.Data.SQLite.dll
D:\Solution\GTech.Solution.Api.WebSite\bin\System.Data.SQLite.EF6.dll
D:\Solution\GTech.Solution.Api.WebSite\bin\System.Data.SQLite.Linq.dll
D:\Solution\GTech.Solution.Api.WebSite\bin\GTech.Solution.Api.Common.pdb
D:\Solution\GTech.Solution.Api.WebSite\bin\GTech.Solution.Api.Contract.pdb
D:\Solution\GTech.Solution.Api.WebSite\bin\GTech.Solution.Api.Domain.pdb
D:\Solution\GTech.Solution.Api.WebSite\bin\JWT.pdb
D:\Solution\GTech.Solution.Api.WebSite\bin\JWT.xml
D:\Solution\GTech.Solution.Api.WebSite\bin\Microsoft.AI.DependencyCollector.xml
D:\Solution\GTech.Solution.Api.WebSite\bin\Microsoft.AI.ServerTelemetryChannel.xml
D:\Solution\GTech.Solution.Api.WebSite\bin\Microsoft.AI.Web.xml
D:\Solution\GTech.Solution.Api.WebSite\bin\Microsoft.AI.WindowsServer.xml
D:\Solution\GTech.Solution.Api.WebSite\bin\Microsoft.ApplicationInsights.xml
D:\Solution\GTech.Solution.Api.WebSite\bin\Newtonsoft.Json.xml
D:\Solution\GTech.Solution.Api.WebSite\obj\Release\GTech.Solution.Api.WebSite.csprojResolveAssemblyReference.cache
D:\Solution\GTech.Solution.Api.WebSite\obj\Release\GTech.Solution.Api.WebSite.dll
D:\Solution\GTech.Solution.Api.WebSite\obj\Release\GTech.Solution.Api.WebSite.pdb
WebApi/GTech.Solution.Api.WebSite/obj/Release/GTech.Solution.Api.WebSite.csprojResolveAssemblyReference.cache
Binary files differ
WebApi/GTech.Solution.Api.WebSite/obj/Release/GTech.Solution.Api.WebSite.pdb
Binary files differ
WebApi/GTech.Solution.Api.WebSite/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
WebApi/GTech.Solution.Api.WebSite/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
WebApi/GTech.Solution.Api.WebSite/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
WebApi/GTech.Solution.Api.WebSite/obj/Release/Yokogawa.TLSVP.Api.WebSite.csproj.FileListAbsolute.txt
New file
@@ -0,0 +1,40 @@
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\ApplicationInsights.config
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Yokogawa.TLSVP.Api.WebSite.dll.config
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Yokogawa.TLSVP.Api.WebSite.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Yokogawa.TLSVP.Api.WebSite.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\EntityFramework.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\EntityFramework.SqlServer.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\EPPlus.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\FTPMethod.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\JWT.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.AI.Agent.Intercept.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.AI.DependencyCollector.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.AI.PerfCounterCollector.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.AI.ServerTelemetryChannel.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.AI.Web.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.AI.WindowsServer.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.ApplicationInsights.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\MySql.Data.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\MySql.Data.Entity.EF6.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Newtonsoft.Json.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\SQLite.CodeFirst.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\System.Data.SQLite.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\System.Data.SQLite.EF6.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\System.Data.SQLite.Linq.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Yokogawa.TLSVP.Api.Common.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Yokogawa.TLSVP.Api.Contract.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Yokogawa.TLSVP.Api.Domain.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Yokogawa.TLSVP.Api.Common.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Yokogawa.TLSVP.Api.Contract.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Yokogawa.TLSVP.Api.Domain.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\JWT.pdb
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\JWT.xml
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.AI.DependencyCollector.xml
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.AI.ServerTelemetryChannel.xml
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.AI.Web.xml
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.AI.WindowsServer.xml
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Microsoft.ApplicationInsights.xml
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\bin\Newtonsoft.Json.xml
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\obj\Release\Yokogawa.TLSVP.Api.WebSite.csprojResolveAssemblyReference.cache
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\obj\Release\Yokogawa.TLSVP.Api.WebSite.dll
D:\Banwang\SourceCode\Yokogawa.TLSVP.Api.WebSite\obj\Release\Yokogawa.TLSVP.Api.WebSite.pdb
WebApi/GTech.Solution.Api.WebSite/obj/Release/Yokogawa.TLSVP.Api.WebSite.csprojResolveAssemblyReference.cache
Binary files differ
WebApi/GTech.Solution.Api.WebSite/obj/Release/Yokogawa.TLSVP.Api.WebSite.pdb
Binary files differ
WebApi/GTech.Solution.Api.WebSite/packages.config
New file
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="JWT" version="7.3.0" targetFramework="net461" />
  <package id="Microsoft.ApplicationInsights" version="2.0.0" targetFramework="net461" />
  <package id="Microsoft.ApplicationInsights.Agent.Intercept" version="1.2.1" targetFramework="net461" />
  <package id="Microsoft.ApplicationInsights.DependencyCollector" version="2.0.0" targetFramework="net461" />
  <package id="Microsoft.ApplicationInsights.JavaScript" version="0.22.9-build00167" targetFramework="net461" />
  <package id="Microsoft.ApplicationInsights.PerfCounterCollector" version="2.0.0" targetFramework="net461" />
  <package id="Microsoft.ApplicationInsights.Web" version="2.0.0" targetFramework="net461" />
  <package id="Microsoft.ApplicationInsights.WindowsServer" version="2.0.0" targetFramework="net461" />
  <package id="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel" version="2.0.0" targetFramework="net461" />
  <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" />
</packages>
WebApi/GTech.Solution.Api.WebSite/scripts/ai.0.22.9-build00167.js
New file
@@ -0,0 +1,3524 @@
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        (function (LoggingSeverity) {
            LoggingSeverity[LoggingSeverity["CRITICAL"] = 0] = "CRITICAL";
            LoggingSeverity[LoggingSeverity["WARNING"] = 1] = "WARNING";
        })(ApplicationInsights.LoggingSeverity || (ApplicationInsights.LoggingSeverity = {}));
        var LoggingSeverity = ApplicationInsights.LoggingSeverity;
        (function (_InternalMessageId) {
            _InternalMessageId[_InternalMessageId["NONUSRACT_BrowserDoesNotSupportLocalStorage"] = 0] = "NONUSRACT_BrowserDoesNotSupportLocalStorage";
            _InternalMessageId[_InternalMessageId["NONUSRACT_BrowserCannotReadLocalStorage"] = 1] = "NONUSRACT_BrowserCannotReadLocalStorage";
            _InternalMessageId[_InternalMessageId["NONUSRACT_BrowserCannotReadSessionStorage"] = 2] = "NONUSRACT_BrowserCannotReadSessionStorage";
            _InternalMessageId[_InternalMessageId["NONUSRACT_BrowserCannotWriteLocalStorage"] = 3] = "NONUSRACT_BrowserCannotWriteLocalStorage";
            _InternalMessageId[_InternalMessageId["NONUSRACT_BrowserCannotWriteSessionStorage"] = 4] = "NONUSRACT_BrowserCannotWriteSessionStorage";
            _InternalMessageId[_InternalMessageId["NONUSRACT_BrowserFailedRemovalFromLocalStorage"] = 5] = "NONUSRACT_BrowserFailedRemovalFromLocalStorage";
            _InternalMessageId[_InternalMessageId["NONUSRACT_BrowserFailedRemovalFromSessionStorage"] = 6] = "NONUSRACT_BrowserFailedRemovalFromSessionStorage";
            _InternalMessageId[_InternalMessageId["NONUSRACT_CannotSendEmptyTelemetry"] = 7] = "NONUSRACT_CannotSendEmptyTelemetry";
            _InternalMessageId[_InternalMessageId["NONUSRACT_ClientPerformanceMathError"] = 8] = "NONUSRACT_ClientPerformanceMathError";
            _InternalMessageId[_InternalMessageId["NONUSRACT_ErrorParsingAISessionCookie"] = 9] = "NONUSRACT_ErrorParsingAISessionCookie";
            _InternalMessageId[_InternalMessageId["NONUSRACT_ErrorPVCalc"] = 10] = "NONUSRACT_ErrorPVCalc";
            _InternalMessageId[_InternalMessageId["NONUSRACT_ExceptionWhileLoggingError"] = 11] = "NONUSRACT_ExceptionWhileLoggingError";
            _InternalMessageId[_InternalMessageId["NONUSRACT_FailedAddingTelemetryToBuffer"] = 12] = "NONUSRACT_FailedAddingTelemetryToBuffer";
            _InternalMessageId[_InternalMessageId["NONUSRACT_FailedMonitorAjaxAbort"] = 13] = "NONUSRACT_FailedMonitorAjaxAbort";
            _InternalMessageId[_InternalMessageId["NONUSRACT_FailedMonitorAjaxDur"] = 14] = "NONUSRACT_FailedMonitorAjaxDur";
            _InternalMessageId[_InternalMessageId["NONUSRACT_FailedMonitorAjaxOpen"] = 15] = "NONUSRACT_FailedMonitorAjaxOpen";
            _InternalMessageId[_InternalMessageId["NONUSRACT_FailedMonitorAjaxRSC"] = 16] = "NONUSRACT_FailedMonitorAjaxRSC";
            _InternalMessageId[_InternalMessageId["NONUSRACT_FailedMonitorAjaxSend"] = 17] = "NONUSRACT_FailedMonitorAjaxSend";
            _InternalMessageId[_InternalMessageId["NONUSRACT_FailedToAddHandlerForOnBeforeUnload"] = 18] = "NONUSRACT_FailedToAddHandlerForOnBeforeUnload";
            _InternalMessageId[_InternalMessageId["NONUSRACT_FailedToSendQueuedTelemetry"] = 19] = "NONUSRACT_FailedToSendQueuedTelemetry";
            _InternalMessageId[_InternalMessageId["NONUSRACT_FailedToReportDataLoss"] = 20] = "NONUSRACT_FailedToReportDataLoss";
            _InternalMessageId[_InternalMessageId["NONUSRACT_FlushFailed"] = 21] = "NONUSRACT_FlushFailed";
            _InternalMessageId[_InternalMessageId["NONUSRACT_MessageLimitPerPVExceeded"] = 22] = "NONUSRACT_MessageLimitPerPVExceeded";
            _InternalMessageId[_InternalMessageId["NONUSRACT_MissingRequiredFieldSpecification"] = 23] = "NONUSRACT_MissingRequiredFieldSpecification";
            _InternalMessageId[_InternalMessageId["NONUSRACT_NavigationTimingNotSupported"] = 24] = "NONUSRACT_NavigationTimingNotSupported";
            _InternalMessageId[_InternalMessageId["NONUSRACT_OnError"] = 25] = "NONUSRACT_OnError";
            _InternalMessageId[_InternalMessageId["NONUSRACT_SessionRenewalDateIsZero"] = 26] = "NONUSRACT_SessionRenewalDateIsZero";
            _InternalMessageId[_InternalMessageId["NONUSRACT_SenderNotInitialized"] = 27] = "NONUSRACT_SenderNotInitialized";
            _InternalMessageId[_InternalMessageId["NONUSRACT_StartTrackEventFailed"] = 28] = "NONUSRACT_StartTrackEventFailed";
            _InternalMessageId[_InternalMessageId["NONUSRACT_StopTrackEventFailed"] = 29] = "NONUSRACT_StopTrackEventFailed";
            _InternalMessageId[_InternalMessageId["NONUSRACT_StartTrackFailed"] = 30] = "NONUSRACT_StartTrackFailed";
            _InternalMessageId[_InternalMessageId["NONUSRACT_StopTrackFailed"] = 31] = "NONUSRACT_StopTrackFailed";
            _InternalMessageId[_InternalMessageId["NONUSRACT_TelemetrySampledAndNotSent"] = 32] = "NONUSRACT_TelemetrySampledAndNotSent";
            _InternalMessageId[_InternalMessageId["NONUSRACT_TrackEventFailed"] = 33] = "NONUSRACT_TrackEventFailed";
            _InternalMessageId[_InternalMessageId["NONUSRACT_TrackExceptionFailed"] = 34] = "NONUSRACT_TrackExceptionFailed";
            _InternalMessageId[_InternalMessageId["NONUSRACT_TrackMetricFailed"] = 35] = "NONUSRACT_TrackMetricFailed";
            _InternalMessageId[_InternalMessageId["NONUSRACT_TrackPVFailed"] = 36] = "NONUSRACT_TrackPVFailed";
            _InternalMessageId[_InternalMessageId["NONUSRACT_TrackPVFailedCalc"] = 37] = "NONUSRACT_TrackPVFailedCalc";
            _InternalMessageId[_InternalMessageId["NONUSRACT_TrackTraceFailed"] = 38] = "NONUSRACT_TrackTraceFailed";
            _InternalMessageId[_InternalMessageId["NONUSRACT_TransmissionFailed"] = 39] = "NONUSRACT_TransmissionFailed";
            _InternalMessageId[_InternalMessageId["USRACT_CannotSerializeObject"] = 40] = "USRACT_CannotSerializeObject";
            _InternalMessageId[_InternalMessageId["USRACT_CannotSerializeObjectNonSerializable"] = 41] = "USRACT_CannotSerializeObjectNonSerializable";
            _InternalMessageId[_InternalMessageId["USRACT_CircularReferenceDetected"] = 42] = "USRACT_CircularReferenceDetected";
            _InternalMessageId[_InternalMessageId["USRACT_ClearAuthContextFailed"] = 43] = "USRACT_ClearAuthContextFailed";
            _InternalMessageId[_InternalMessageId["USRACT_ExceptionTruncated"] = 44] = "USRACT_ExceptionTruncated";
            _InternalMessageId[_InternalMessageId["USRACT_IllegalCharsInName"] = 45] = "USRACT_IllegalCharsInName";
            _InternalMessageId[_InternalMessageId["USRACT_ItemNotInArray"] = 46] = "USRACT_ItemNotInArray";
            _InternalMessageId[_InternalMessageId["USRACT_MaxAjaxPerPVExceeded"] = 47] = "USRACT_MaxAjaxPerPVExceeded";
            _InternalMessageId[_InternalMessageId["USRACT_MessageTruncated"] = 48] = "USRACT_MessageTruncated";
            _InternalMessageId[_InternalMessageId["USRACT_NameTooLong"] = 49] = "USRACT_NameTooLong";
            _InternalMessageId[_InternalMessageId["USRACT_SampleRateOutOfRange"] = 50] = "USRACT_SampleRateOutOfRange";
            _InternalMessageId[_InternalMessageId["USRACT_SetAuthContextFailed"] = 51] = "USRACT_SetAuthContextFailed";
            _InternalMessageId[_InternalMessageId["USRACT_SetAuthContextFailedAccountName"] = 52] = "USRACT_SetAuthContextFailedAccountName";
            _InternalMessageId[_InternalMessageId["USRACT_StringValueTooLong"] = 53] = "USRACT_StringValueTooLong";
            _InternalMessageId[_InternalMessageId["USRACT_StartCalledMoreThanOnce"] = 54] = "USRACT_StartCalledMoreThanOnce";
            _InternalMessageId[_InternalMessageId["USRACT_StopCalledWithoutStart"] = 55] = "USRACT_StopCalledWithoutStart";
            _InternalMessageId[_InternalMessageId["USRACT_TelemetryInitializerFailed"] = 56] = "USRACT_TelemetryInitializerFailed";
            _InternalMessageId[_InternalMessageId["USRACT_TrackArgumentsNotSpecified"] = 57] = "USRACT_TrackArgumentsNotSpecified";
            _InternalMessageId[_InternalMessageId["USRACT_UrlTooLong"] = 58] = "USRACT_UrlTooLong";
        })(ApplicationInsights._InternalMessageId || (ApplicationInsights._InternalMessageId = {}));
        var _InternalMessageId = ApplicationInsights._InternalMessageId;
        var _InternalLogMessage = (function () {
            function _InternalLogMessage(msgId, msg, properties) {
                this.message = _InternalMessageId[msgId].toString();
                this.messageId = msgId;
                var diagnosticText = (msg ? " message:" + _InternalLogMessage.sanitizeDiagnosticText(msg) : "") +
                    (properties ? " props:" + _InternalLogMessage.sanitizeDiagnosticText(JSON.stringify(properties)) : "");
                this.message += diagnosticText;
            }
            _InternalLogMessage.sanitizeDiagnosticText = function (text) {
                return "\"" + text.replace(/\"/g, "") + "\"";
            };
            return _InternalLogMessage;
        })();
        ApplicationInsights._InternalLogMessage = _InternalLogMessage;
        var _InternalLogging = (function () {
            function _InternalLogging() {
            }
            _InternalLogging.throwInternalNonUserActionable = function (severity, message) {
                if (this.enableDebugExceptions()) {
                    throw message;
                }
                else {
                    if (typeof (message) !== "undefined" && !!message) {
                        if (typeof (message.message) !== "undefined") {
                            message.message = this.AiNonUserActionablePrefix + message.message;
                            this.warnToConsole(message.message);
                            this.logInternalMessage(severity, message);
                        }
                    }
                }
            };
            _InternalLogging.throwInternalUserActionable = function (severity, message) {
                if (this.enableDebugExceptions()) {
                    throw message;
                }
                else {
                    if (typeof (message) !== "undefined" && !!message) {
                        if (typeof (message.message) !== "undefined") {
                            message.message = this.AiUserActionablePrefix + message.message;
                            this.warnToConsole(message.message);
                            this.logInternalMessage(severity, message);
                        }
                    }
                }
            };
            _InternalLogging.warnToConsole = function (message) {
                if (typeof console !== "undefined" && !!console) {
                    if (typeof console.warn === "function") {
                        console.warn(message);
                    }
                    else if (typeof console.log === "function") {
                        console.log(message);
                    }
                }
            };
            _InternalLogging.resetInternalMessageCount = function () {
                this._messageCount = 0;
            };
            _InternalLogging.clearInternalMessageLoggedTypes = function () {
                if (ApplicationInsights.Util.canUseSessionStorage()) {
                    var sessionStorageKeys = ApplicationInsights.Util.getSessionStorageKeys();
                    for (var i = 0; i < sessionStorageKeys.length; i++) {
                        if (sessionStorageKeys[i].indexOf(_InternalLogging.AIInternalMessagePrefix) === 0) {
                            ApplicationInsights.Util.removeSessionStorage(sessionStorageKeys[i]);
                        }
                    }
                }
            };
            _InternalLogging.setMaxInternalMessageLimit = function (limit) {
                if (!limit) {
                    throw new Error('limit cannot be undefined.');
                }
                this.MAX_INTERNAL_MESSAGE_LIMIT = limit;
            };
            _InternalLogging.logInternalMessage = function (severity, message) {
                if (this._areInternalMessagesThrottled()) {
                    return;
                }
                var logMessage = true;
                if (ApplicationInsights.Util.canUseSessionStorage()) {
                    var storageMessageKey = _InternalLogging.AIInternalMessagePrefix + _InternalMessageId[message.messageId];
                    var internalMessageTypeLogRecord = ApplicationInsights.Util.getSessionStorage(storageMessageKey);
                    if (internalMessageTypeLogRecord) {
                        logMessage = false;
                    }
                    else {
                        ApplicationInsights.Util.setSessionStorage(storageMessageKey, "1");
                    }
                }
                if (logMessage) {
                    if (this.verboseLogging() || severity === LoggingSeverity.CRITICAL) {
                        this.queue.push(message);
                        this._messageCount++;
                    }
                    if (this._messageCount == this.MAX_INTERNAL_MESSAGE_LIMIT) {
                        var throttleLimitMessage = "Internal events throttle limit per PageView reached for this app.";
                        var throttleMessage = new _InternalLogMessage(_InternalMessageId.NONUSRACT_MessageLimitPerPVExceeded, throttleLimitMessage);
                        this.queue.push(throttleMessage);
                        this.warnToConsole(throttleLimitMessage);
                    }
                }
            };
            _InternalLogging._areInternalMessagesThrottled = function () {
                return this._messageCount >= this.MAX_INTERNAL_MESSAGE_LIMIT;
            };
            _InternalLogging.AiUserActionablePrefix = "AI: ";
            _InternalLogging.AIInternalMessagePrefix = "AITR_";
            _InternalLogging.AiNonUserActionablePrefix = "AI (Internal): ";
            _InternalLogging.enableDebugExceptions = function () { return false; };
            _InternalLogging.verboseLogging = function () { return false; };
            _InternalLogging.queue = [];
            _InternalLogging.MAX_INTERNAL_MESSAGE_LIMIT = 25;
            _InternalLogging._messageCount = 0;
            return _InternalLogging;
        })();
        ApplicationInsights._InternalLogging = _InternalLogging;
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="./logging.ts" />
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var StorageType;
        (function (StorageType) {
            StorageType[StorageType["LocalStorage"] = 0] = "LocalStorage";
            StorageType[StorageType["SessionStorage"] = 1] = "SessionStorage";
        })(StorageType || (StorageType = {}));
        var Util = (function () {
            function Util() {
            }
            Util._getLocalStorageObject = function () {
                return Util._getVerifiedStorageObject(StorageType.LocalStorage);
            };
            Util._getVerifiedStorageObject = function (storageType) {
                var storage = null;
                var fail;
                var uid;
                try {
                    uid = new Date;
                    storage = storageType === StorageType.LocalStorage ? window.localStorage : window.sessionStorage;
                    storage.setItem(uid, uid);
                    fail = storage.getItem(uid) != uid;
                    storage.removeItem(uid);
                    if (fail) {
                        storage = null;
                    }
                }
                catch (exception) {
                    storage = null;
                }
                return storage;
            };
            Util.canUseLocalStorage = function () {
                return !!Util._getLocalStorageObject();
            };
            Util.getStorage = function (name) {
                var storage = Util._getLocalStorageObject();
                if (storage !== null) {
                    try {
                        return storage.getItem(name);
                    }
                    catch (e) {
                        var message = new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_BrowserCannotReadLocalStorage, "Browser failed read of local storage. " + Util.getExceptionName(e), { exception: Util.dump(e) });
                        ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, message);
                    }
                }
                return null;
            };
            Util.setStorage = function (name, data) {
                var storage = Util._getLocalStorageObject();
                if (storage !== null) {
                    try {
                        storage.setItem(name, data);
                        return true;
                    }
                    catch (e) {
                        var message = new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_BrowserCannotWriteLocalStorage, "Browser failed write to local storage. " + Util.getExceptionName(e), { exception: Util.dump(e) });
                        ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, message);
                    }
                }
                return false;
            };
            Util.removeStorage = function (name) {
                var storage = Util._getLocalStorageObject();
                if (storage !== null) {
                    try {
                        storage.removeItem(name);
                        return true;
                    }
                    catch (e) {
                        var message = new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_BrowserFailedRemovalFromLocalStorage, "Browser failed removal of local storage item. " + Util.getExceptionName(e), { exception: Util.dump(e) });
                        ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, message);
                    }
                }
                return false;
            };
            Util._getSessionStorageObject = function () {
                return Util._getVerifiedStorageObject(StorageType.SessionStorage);
            };
            Util.canUseSessionStorage = function () {
                return !!Util._getSessionStorageObject();
            };
            Util.getSessionStorageKeys = function () {
                var keys = [];
                if (Util.canUseSessionStorage()) {
                    for (var key in window.sessionStorage) {
                        keys.push(key);
                    }
                }
                return keys;
            };
            Util.getSessionStorage = function (name) {
                var storage = Util._getSessionStorageObject();
                if (storage !== null) {
                    try {
                        return storage.getItem(name);
                    }
                    catch (e) {
                        var message = new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_BrowserCannotReadSessionStorage, "Browser failed read of session storage. " + Util.getExceptionName(e), { exception: Util.dump(e) });
                        ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, message);
                    }
                }
                return null;
            };
            Util.setSessionStorage = function (name, data) {
                var storage = Util._getSessionStorageObject();
                if (storage !== null) {
                    try {
                        storage.setItem(name, data);
                        return true;
                    }
                    catch (e) {
                        var message = new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_BrowserCannotWriteSessionStorage, "Browser failed write to session storage. " + Util.getExceptionName(e), { exception: Util.dump(e) });
                        ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, message);
                    }
                }
                return false;
            };
            Util.removeSessionStorage = function (name) {
                var storage = Util._getSessionStorageObject();
                if (storage !== null) {
                    try {
                        storage.removeItem(name);
                        return true;
                    }
                    catch (e) {
                        var message = new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_BrowserFailedRemovalFromSessionStorage, "Browser failed removal of session storage item. " + Util.getExceptionName(e), { exception: Util.dump(e) });
                        ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, message);
                    }
                }
                return false;
            };
            Util.setCookie = function (name, value, domain) {
                var domainAttrib = "";
                if (domain) {
                    domainAttrib = ";domain=" + domain;
                }
                Util.document.cookie = name + "=" + value + domainAttrib + ";path=/";
            };
            Util.stringToBoolOrDefault = function (str) {
                if (!str) {
                    return false;
                }
                return str.toString().toLowerCase() === "true";
            };
            Util.getCookie = function (name) {
                var value = "";
                if (name && name.length) {
                    var cookieName = name + "=";
                    var cookies = Util.document.cookie.split(";");
                    for (var i = 0; i < cookies.length; i++) {
                        var cookie = cookies[i];
                        cookie = Util.trim(cookie);
                        if (cookie && cookie.indexOf(cookieName) === 0) {
                            value = cookie.substring(cookieName.length, cookies[i].length);
                            break;
                        }
                    }
                }
                return value;
            };
            Util.deleteCookie = function (name) {
                Util.document.cookie = name + "=;path=/;expires=Thu, 01 Jan 1970 00:00:01 GMT;";
            };
            Util.trim = function (str) {
                if (typeof str !== "string")
                    return str;
                return str.replace(/^\s+|\s+$/g, "");
            };
            Util.newId = function () {
                var base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
                var result = "";
                var random = Math.random() * 1073741824;
                while (random > 0) {
                    var char = base64chars.charAt(random % 64);
                    result += char;
                    random = Math.floor(random / 64);
                }
                return result;
            };
            Util.isArray = function (obj) {
                return Object.prototype.toString.call(obj) === "[object Array]";
            };
            Util.isError = function (obj) {
                return Object.prototype.toString.call(obj) === "[object Error]";
            };
            Util.isDate = function (obj) {
                return Object.prototype.toString.call(obj) === "[object Date]";
            };
            Util.toISOStringForIE8 = function (date) {
                if (Util.isDate(date)) {
                    if (Date.prototype.toISOString) {
                        return date.toISOString();
                    }
                    else {
                        function pad(number) {
                            var r = String(number);
                            if (r.length === 1) {
                                r = "0" + r;
                            }
                            return r;
                        }
                        return date.getUTCFullYear()
                            + "-" + pad(date.getUTCMonth() + 1)
                            + "-" + pad(date.getUTCDate())
                            + "T" + pad(date.getUTCHours())
                            + ":" + pad(date.getUTCMinutes())
                            + ":" + pad(date.getUTCSeconds())
                            + "." + String((date.getUTCMilliseconds() / 1000).toFixed(3)).slice(2, 5)
                            + "Z";
                    }
                }
            };
            Util.getIEVersion = function (userAgentStr) {
                if (userAgentStr === void 0) { userAgentStr = null; }
                var myNav = userAgentStr ? userAgentStr.toLowerCase() : navigator.userAgent.toLowerCase();
                return (myNav.indexOf('msie') != -1) ? parseInt(myNav.split('msie')[1]) : null;
            };
            Util.msToTimeSpan = function (totalms) {
                if (isNaN(totalms) || totalms < 0) {
                    totalms = 0;
                }
                var ms = "" + totalms % 1000;
                var sec = "" + Math.floor(totalms / 1000) % 60;
                var min = "" + Math.floor(totalms / (1000 * 60)) % 60;
                var hour = "" + Math.floor(totalms / (1000 * 60 * 60)) % 24;
                ms = ms.length === 1 ? "00" + ms : ms.length === 2 ? "0" + ms : ms;
                sec = sec.length < 2 ? "0" + sec : sec;
                min = min.length < 2 ? "0" + min : min;
                hour = hour.length < 2 ? "0" + hour : hour;
                return hour + ":" + min + ":" + sec + "." + ms;
            };
            Util.isCrossOriginError = function (message, url, lineNumber, columnNumber, error) {
                return (message === "Script error." || message === "Script error") && error === null;
            };
            Util.dump = function (object) {
                var objectTypeDump = Object.prototype.toString.call(object);
                var propertyValueDump = JSON.stringify(object);
                if (objectTypeDump === "[object Error]") {
                    propertyValueDump = "{ stack: '" + object.stack + "', message: '" + object.message + "', name: '" + object.name + "'";
                }
                return objectTypeDump + propertyValueDump;
            };
            Util.getExceptionName = function (object) {
                var objectTypeDump = Object.prototype.toString.call(object);
                if (objectTypeDump === "[object Error]") {
                    return object.name;
                }
                return "";
            };
            Util.addEventHandler = function (eventName, callback) {
                if (!window || typeof eventName !== 'string' || typeof callback !== 'function') {
                    return false;
                }
                var verbEventName = 'on' + eventName;
                if (window.addEventListener) {
                    window.addEventListener(eventName, callback, false);
                }
                else if (window["attachEvent"]) {
                    window["attachEvent"].call(verbEventName, callback);
                }
                else {
                    return false;
                }
                return true;
            };
            Util.document = typeof document !== "undefined" ? document : {};
            Util.NotSpecified = "not_specified";
            return Util;
        })();
        ApplicationInsights.Util = Util;
        var UrlHelper = (function () {
            function UrlHelper() {
            }
            UrlHelper.parseUrl = function (url) {
                if (!UrlHelper.htmlAnchorElement) {
                    UrlHelper.htmlAnchorElement = UrlHelper.document.createElement('a');
                }
                UrlHelper.htmlAnchorElement.href = url;
                return UrlHelper.htmlAnchorElement;
            };
            UrlHelper.getAbsoluteUrl = function (url) {
                var result;
                var a = UrlHelper.parseUrl(url);
                if (a) {
                    result = a.href;
                }
                return result;
            };
            UrlHelper.getPathName = function (url) {
                var result;
                var a = UrlHelper.parseUrl(url);
                if (a) {
                    result = a.pathname;
                }
                return result;
            };
            UrlHelper.document = typeof document !== "undefined" ? document : {};
            return UrlHelper;
        })();
        ApplicationInsights.UrlHelper = UrlHelper;
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="../logging.ts" />
/// <reference path="../util.ts" />
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        "use strict";
        var extensions = (function () {
            function extensions() {
            }
            extensions.IsNullOrUndefined = function (obj) {
                return typeof (obj) === "undefined" || obj === null;
            };
            return extensions;
        })();
        ApplicationInsights.extensions = extensions;
        var stringUtils = (function () {
            function stringUtils() {
            }
            stringUtils.GetLength = function (strObject) {
                var res = 0;
                if (!extensions.IsNullOrUndefined(strObject)) {
                    var stringified = "";
                    try {
                        stringified = strObject.toString();
                    }
                    catch (ex) {
                    }
                    res = stringified.length;
                    res = isNaN(res) ? 0 : res;
                }
                return res;
            };
            return stringUtils;
        })();
        ApplicationInsights.stringUtils = stringUtils;
        var dateTime = (function () {
            function dateTime() {
            }
            dateTime.Now = (window.performance && window.performance.now) ?
                function () {
                    return performance.now();
                }
                :
                    function () {
                        return new Date().getTime();
                    };
            dateTime.GetDuration = function (start, end) {
                var result = null;
                if (start !== 0 && end !== 0 && !extensions.IsNullOrUndefined(start) && !extensions.IsNullOrUndefined(end)) {
                    result = end - start;
                }
                return result;
            };
            return dateTime;
        })();
        ApplicationInsights.dateTime = dateTime;
        var EventHelper = (function () {
            function EventHelper() {
            }
            EventHelper.AttachEvent = function (obj, eventNameWithoutOn, handlerRef) {
                var result = false;
                if (!extensions.IsNullOrUndefined(obj)) {
                    if (!extensions.IsNullOrUndefined(obj.attachEvent)) {
                        obj.attachEvent("on" + eventNameWithoutOn, handlerRef);
                        result = true;
                    }
                    else {
                        if (!extensions.IsNullOrUndefined(obj.addEventListener)) {
                            obj.addEventListener(eventNameWithoutOn, handlerRef, false);
                            result = true;
                        }
                    }
                }
                return result;
            };
            EventHelper.DetachEvent = function (obj, eventNameWithoutOn, handlerRef) {
                if (!extensions.IsNullOrUndefined(obj)) {
                    if (!extensions.IsNullOrUndefined(obj.detachEvent)) {
                        obj.detachEvent("on" + eventNameWithoutOn, handlerRef);
                    }
                    else {
                        if (!extensions.IsNullOrUndefined(obj.removeEventListener)) {
                            obj.removeEventListener(eventNameWithoutOn, handlerRef, false);
                        }
                    }
                }
            };
            return EventHelper;
        })();
        ApplicationInsights.EventHelper = EventHelper;
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="../logging.ts" />
/// <reference path="../util.ts" />
/// <reference path="./ajaxUtils.ts" />
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        "use strict";
        var XHRMonitoringState = (function () {
            function XHRMonitoringState() {
                this.openDone = false;
                this.setRequestHeaderDone = false;
                this.sendDone = false;
                this.abortDone = false;
                this.onreadystatechangeCallbackAttached = false;
            }
            return XHRMonitoringState;
        })();
        ApplicationInsights.XHRMonitoringState = XHRMonitoringState;
        var ajaxRecord = (function () {
            function ajaxRecord(id) {
                this.completed = false;
                this.requestHeadersSize = null;
                this.ttfb = null;
                this.responseReceivingDuration = null;
                this.callbackDuration = null;
                this.ajaxTotalDuration = null;
                this.aborted = null;
                this.pageUrl = null;
                this.requestUrl = null;
                this.requestSize = 0;
                this.method = null;
                this.status = null;
                this.requestSentTime = null;
                this.responseStartedTime = null;
                this.responseFinishedTime = null;
                this.callbackFinishedTime = null;
                this.endTime = null;
                this.originalOnreadystatechage = null;
                this.xhrMonitoringState = new XHRMonitoringState();
                this.clientFailure = 0;
                this.CalculateMetrics = function () {
                    var self = this;
                    self.ajaxTotalDuration = ApplicationInsights.dateTime.GetDuration(self.requestSentTime, self.responseFinishedTime);
                };
                this.id = id;
            }
            ajaxRecord.prototype.getAbsoluteUrl = function () {
                return this.requestUrl ? ApplicationInsights.UrlHelper.getAbsoluteUrl(this.requestUrl) : null;
            };
            ajaxRecord.prototype.getPathName = function () {
                return this.requestUrl ? ApplicationInsights.UrlHelper.getPathName(this.requestUrl) : null;
            };
            return ajaxRecord;
        })();
        ApplicationInsights.ajaxRecord = ajaxRecord;
        ;
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
;
/// <reference path="../logging.ts" />
/// <reference path="../util.ts" />
/// <reference path="./ajaxUtils.ts" />
/// <reference path="./ajaxRecord.ts" />
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        "use strict";
        var AjaxMonitor = (function () {
            function AjaxMonitor(appInsights) {
                this.currentWindowHost = window.location.host;
                this.appInsights = appInsights;
                this.initialized = false;
                this.Init();
            }
            AjaxMonitor.prototype.Init = function () {
                if (this.supportsMonitoring()) {
                    this.instrumentOpen();
                    this.instrumentSend();
                    this.instrumentAbort();
                    this.initialized = true;
                }
            };
            AjaxMonitor.prototype.isMonitoredInstance = function (xhr, excludeAjaxDataValidation) {
                return this.initialized
                    && (excludeAjaxDataValidation === true || !ApplicationInsights.extensions.IsNullOrUndefined(xhr.ajaxData))
                    && xhr[AjaxMonitor.DisabledPropertyName] !== true;
            };
            AjaxMonitor.prototype.supportsMonitoring = function () {
                var result = false;
                if (!ApplicationInsights.extensions.IsNullOrUndefined(XMLHttpRequest)) {
                    result = true;
                }
                return result;
            };
            AjaxMonitor.prototype.instrumentOpen = function () {
                var originalOpen = XMLHttpRequest.prototype.open;
                var ajaxMonitorInstance = this;
                XMLHttpRequest.prototype.open = function (method, url, async) {
                    try {
                        if (ajaxMonitorInstance.isMonitoredInstance(this, true) &&
                            (!this.ajaxData ||
                                !this.ajaxData.xhrMonitoringState.openDone)) {
                            ajaxMonitorInstance.openHandler(this, method, url, async);
                        }
                    }
                    catch (e) {
                        ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedMonitorAjaxOpen, "Failed to monitor XMLHttpRequest.open, monitoring data for this ajax call may be incorrect.", {
                            ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(this),
                            exception: Microsoft.ApplicationInsights.Util.dump(e)
                        }));
                    }
                    return originalOpen.apply(this, arguments);
                };
            };
            AjaxMonitor.prototype.openHandler = function (xhr, method, url, async) {
                var ajaxData = new ApplicationInsights.ajaxRecord(ApplicationInsights.Util.newId());
                ajaxData.method = method;
                ajaxData.requestUrl = url;
                ajaxData.xhrMonitoringState.openDone = true;
                xhr.ajaxData = ajaxData;
                this.attachToOnReadyStateChange(xhr);
            };
            AjaxMonitor.getFailedAjaxDiagnosticsMessage = function (xhr) {
                var result = "";
                try {
                    if (!ApplicationInsights.extensions.IsNullOrUndefined(xhr) &&
                        !ApplicationInsights.extensions.IsNullOrUndefined(xhr.ajaxData) &&
                        !ApplicationInsights.extensions.IsNullOrUndefined(xhr.ajaxData.requestUrl)) {
                        result += "(url: '" + xhr.ajaxData.requestUrl + "')";
                    }
                }
                catch (e) { }
                return result;
            };
            AjaxMonitor.prototype.instrumentSend = function () {
                var originalSend = XMLHttpRequest.prototype.send;
                var ajaxMonitorInstance = this;
                XMLHttpRequest.prototype.send = function (content) {
                    try {
                        if (ajaxMonitorInstance.isMonitoredInstance(this) && !this.ajaxData.xhrMonitoringState.sendDone) {
                            ajaxMonitorInstance.sendHandler(this, content);
                        }
                    }
                    catch (e) {
                        ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedMonitorAjaxSend, "Failed to monitor XMLHttpRequest, monitoring data for this ajax call may be incorrect.", {
                            ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(this),
                            exception: Microsoft.ApplicationInsights.Util.dump(e)
                        }));
                    }
                    return originalSend.apply(this, arguments);
                };
            };
            AjaxMonitor.prototype.sendHandler = function (xhr, content) {
                xhr.ajaxData.requestSentTime = ApplicationInsights.dateTime.Now();
                if (!this.appInsights.config.disableCorrelationHeaders && (ApplicationInsights.UrlHelper.parseUrl(xhr.ajaxData.getAbsoluteUrl()).host == this.currentWindowHost)) {
                    xhr.setRequestHeader("x-ms-request-id", xhr.ajaxData.id);
                }
                xhr.ajaxData.xhrMonitoringState.sendDone = true;
            };
            AjaxMonitor.prototype.instrumentAbort = function () {
                var originalAbort = XMLHttpRequest.prototype.abort;
                var ajaxMonitorInstance = this;
                XMLHttpRequest.prototype.abort = function () {
                    try {
                        if (ajaxMonitorInstance.isMonitoredInstance(this) && !this.ajaxData.xhrMonitoringState.abortDone) {
                            this.ajaxData.aborted = 1;
                            this.ajaxData.xhrMonitoringState.abortDone = true;
                        }
                    }
                    catch (e) {
                        ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedMonitorAjaxAbort, "Failed to monitor XMLHttpRequest.abort, monitoring data for this ajax call may be incorrect.", {
                            ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(this),
                            exception: Microsoft.ApplicationInsights.Util.dump(e)
                        }));
                    }
                    return originalAbort.apply(this, arguments);
                };
            };
            AjaxMonitor.prototype.attachToOnReadyStateChange = function (xhr) {
                var ajaxMonitorInstance = this;
                xhr.ajaxData.xhrMonitoringState.onreadystatechangeCallbackAttached = ApplicationInsights.EventHelper.AttachEvent(xhr, "readystatechange", function () {
                    try {
                        if (ajaxMonitorInstance.isMonitoredInstance(xhr)) {
                            if (xhr.readyState === 4) {
                                ajaxMonitorInstance.onAjaxComplete(xhr);
                            }
                        }
                    }
                    catch (e) {
                        var exceptionText = Microsoft.ApplicationInsights.Util.dump(e);
                        if (!exceptionText || exceptionText.toLowerCase().indexOf("c00c023f") == -1) {
                            ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedMonitorAjaxRSC, "Failed to monitor XMLHttpRequest 'readystatechange' event handler, monitoring data for this ajax call may be incorrect.", {
                                ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(xhr),
                                exception: Microsoft.ApplicationInsights.Util.dump(e)
                            }));
                        }
                    }
                });
            };
            AjaxMonitor.prototype.onAjaxComplete = function (xhr) {
                xhr.ajaxData.responseFinishedTime = ApplicationInsights.dateTime.Now();
                xhr.ajaxData.status = xhr.status;
                xhr.ajaxData.CalculateMetrics();
                if (xhr.ajaxData.ajaxTotalDuration < 0) {
                    ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedMonitorAjaxDur, "Failed to calculate the duration of the ajax call, monitoring data for this ajax call won't be sent.", {
                        ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(xhr),
                        requestSentTime: xhr.ajaxData.requestSentTime,
                        responseFinishedTime: xhr.ajaxData.responseFinishedTime
                    }));
                }
                else {
                    this.appInsights.trackAjax(xhr.ajaxData.id, xhr.ajaxData.getAbsoluteUrl(), xhr.ajaxData.getPathName(), xhr.ajaxData.ajaxTotalDuration, (+(xhr.ajaxData.status)) >= 200 && (+(xhr.ajaxData.status)) < 400, +xhr.ajaxData.status);
                    xhr.ajaxData = null;
                }
            };
            AjaxMonitor.instrumentedByAppInsightsName = "InstrumentedByAppInsights";
            AjaxMonitor.DisabledPropertyName = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
            return AjaxMonitor;
        })();
        ApplicationInsights.AjaxMonitor = AjaxMonitor;
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var HashCodeScoreGenerator = (function () {
            function HashCodeScoreGenerator() {
            }
            HashCodeScoreGenerator.prototype.getHashCodeScore = function (key) {
                var score = this.getHashCode(key) / HashCodeScoreGenerator.INT_MAX_VALUE;
                return score * 100;
            };
            HashCodeScoreGenerator.prototype.getHashCode = function (input) {
                if (input == "") {
                    return 0;
                }
                while (input.length < HashCodeScoreGenerator.MIN_INPUT_LENGTH) {
                    input = input.concat(input);
                }
                var hash = 5381;
                for (var i = 0; i < input.length; ++i) {
                    hash = ((hash << 5) + hash) + input.charCodeAt(i);
                    hash = hash & hash;
                }
                return Math.abs(hash);
            };
            HashCodeScoreGenerator.INT_MAX_VALUE = 2147483647;
            HashCodeScoreGenerator.MIN_INPUT_LENGTH = 8;
            return HashCodeScoreGenerator;
        })();
        ApplicationInsights.HashCodeScoreGenerator = HashCodeScoreGenerator;
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="logging.ts" />
/// <reference path="util.ts" />
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        "use strict";
        (function (FieldType) {
            FieldType[FieldType["Default"] = 0] = "Default";
            FieldType[FieldType["Required"] = 1] = "Required";
            FieldType[FieldType["Array"] = 2] = "Array";
            FieldType[FieldType["Hidden"] = 4] = "Hidden";
        })(ApplicationInsights.FieldType || (ApplicationInsights.FieldType = {}));
        var FieldType = ApplicationInsights.FieldType;
        ;
        var Serializer = (function () {
            function Serializer() {
            }
            Serializer.serialize = function (input) {
                var output = Serializer._serializeObject(input, "root");
                return JSON.stringify(output);
            };
            Serializer._serializeObject = function (source, name) {
                var circularReferenceCheck = "__aiCircularRefCheck";
                var output = {};
                if (!source) {
                    ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_CannotSerializeObject, "cannot serialize object because it is null or undefined", { name: name }));
                    return output;
                }
                if (source[circularReferenceCheck]) {
                    ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_CircularReferenceDetected, "Circular reference detected while serializing object", { name: name }));
                    return output;
                }
                if (!source.aiDataContract) {
                    if (name === "measurements") {
                        output = Serializer._serializeStringMap(source, "number", name);
                    }
                    else if (name === "properties") {
                        output = Serializer._serializeStringMap(source, "string", name);
                    }
                    else if (name === "tags") {
                        output = Serializer._serializeStringMap(source, "string", name);
                    }
                    else if (ApplicationInsights.Util.isArray(source)) {
                        output = Serializer._serializeArray(source, name);
                    }
                    else {
                        ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_CannotSerializeObjectNonSerializable, "Attempting to serialize an object which does not implement ISerializable", { name: name }));
                        try {
                            JSON.stringify(source);
                            output = source;
                        }
                        catch (e) {
                            ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, e && typeof e.toString === 'function' ? e.toString() : "Error serializing object");
                        }
                    }
                    return output;
                }
                source[circularReferenceCheck] = true;
                for (var field in source.aiDataContract) {
                    var contract = source.aiDataContract[field];
                    var isRequired = (typeof contract === "function") ? (contract() & FieldType.Required) : (contract & FieldType.Required);
                    var isHidden = (typeof contract === "function") ? (contract() & FieldType.Hidden) : (contract & FieldType.Hidden);
                    var isArray = contract & FieldType.Array;
                    var isPresent = source[field] !== undefined;
                    var isObject = typeof source[field] === "object" && source[field] !== null;
                    if (isRequired && !isPresent && !isArray) {
                        ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_MissingRequiredFieldSpecification, "Missing required field specification. The field is required but not present on source", { field: field, name: name }));
                        continue;
                    }
                    if (isHidden) {
                        continue;
                    }
                    var value;
                    if (isObject) {
                        if (isArray) {
                            value = Serializer._serializeArray(source[field], field);
                        }
                        else {
                            value = Serializer._serializeObject(source[field], field);
                        }
                    }
                    else {
                        value = source[field];
                    }
                    if (value !== undefined) {
                        output[field] = value;
                    }
                }
                delete source[circularReferenceCheck];
                return output;
            };
            Serializer._serializeArray = function (sources, name) {
                var output = undefined;
                if (!!sources) {
                    if (!ApplicationInsights.Util.isArray(sources)) {
                        ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_ItemNotInArray, "This field was specified as an array in the contract but the item is not an array.\r\n", { name: name }));
                    }
                    else {
                        output = [];
                        for (var i = 0; i < sources.length; i++) {
                            var source = sources[i];
                            var item = Serializer._serializeObject(source, name + "[" + i + "]");
                            output.push(item);
                        }
                    }
                }
                return output;
            };
            Serializer._serializeStringMap = function (map, expectedType, name) {
                var output = undefined;
                if (map) {
                    output = {};
                    for (var field in map) {
                        var value = map[field];
                        if (expectedType === "string") {
                            if (value === undefined) {
                                output[field] = "undefined";
                            }
                            else if (value === null) {
                                output[field] = "null";
                            }
                            else if (!value.toString) {
                                output[field] = "invalid field: toString() is not defined.";
                            }
                            else {
                                output[field] = value.toString();
                            }
                        }
                        else if (expectedType === "number") {
                            if (value === undefined) {
                                output[field] = "undefined";
                            }
                            else if (value === null) {
                                output[field] = "null";
                            }
                            else {
                                var num = parseFloat(value);
                                if (isNaN(num)) {
                                    output[field] = "NaN";
                                }
                                else {
                                    output[field] = num;
                                }
                            }
                        }
                        else {
                            output[field] = "invalid field: " + name + " is of unknown type.";
                            ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, output[field]);
                        }
                    }
                }
                return output;
            };
            return Serializer;
        })();
        ApplicationInsights.Serializer = Serializer;
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
var Microsoft;
(function (Microsoft) {
    var Telemetry;
    (function (Telemetry) {
        "use strict";
        var Base = (function () {
            function Base() {
            }
            return Base;
        })();
        Telemetry.Base = Base;
    })(Telemetry = Microsoft.Telemetry || (Microsoft.Telemetry = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="Base.ts" />
var Microsoft;
(function (Microsoft) {
    var Telemetry;
    (function (Telemetry) {
        "use strict";
        var Envelope = (function () {
            function Envelope() {
                this.ver = 1;
                this.sampleRate = 100.0;
                this.tags = {};
            }
            return Envelope;
        })();
        Telemetry.Envelope = Envelope;
    })(Telemetry = Microsoft.Telemetry || (Microsoft.Telemetry = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="../../Contracts/Generated/Envelope.ts" />
/// <reference path="../../Contracts/Generated/Base.ts" />
/// <reference path="../../Util.ts"/>
var __extends = (this && this.__extends) || function (d, b) {
    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
    function __() { this.constructor = d; }
    __.prototype = b.prototype;
    d.prototype = new __();
};
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var Telemetry;
        (function (Telemetry) {
            var Common;
            (function (Common) {
                "use strict";
                var Envelope = (function (_super) {
                    __extends(Envelope, _super);
                    function Envelope(data, name) {
                        var _this = this;
                        _super.call(this);
                        this.name = name;
                        this.data = data;
                        this.time = ApplicationInsights.Util.toISOStringForIE8(new Date());
                        this.aiDataContract = {
                            time: ApplicationInsights.FieldType.Required,
                            iKey: ApplicationInsights.FieldType.Required,
                            name: ApplicationInsights.FieldType.Required,
                            sampleRate: function () {
                                return (_this.sampleRate == 100) ? ApplicationInsights.FieldType.Hidden : ApplicationInsights.FieldType.Required;
                            },
                            tags: ApplicationInsights.FieldType.Required,
                            data: ApplicationInsights.FieldType.Required
                        };
                    }
                    return Envelope;
                })(Microsoft.Telemetry.Envelope);
                Common.Envelope = Envelope;
            })(Common = Telemetry.Common || (Telemetry.Common = {}));
        })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="../../Contracts/Generated/Base.ts"/>
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var Telemetry;
        (function (Telemetry) {
            var Common;
            (function (Common) {
                "use strict";
                var Base = (function (_super) {
                    __extends(Base, _super);
                    function Base() {
                        _super.apply(this, arguments);
                        this.aiDataContract = {};
                    }
                    return Base;
                })(Microsoft.Telemetry.Base);
                Common.Base = Base;
            })(Common = Telemetry.Common || (Telemetry.Common = {}));
        })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
var AI;
(function (AI) {
    "use strict";
    var ContextTagKeys = (function () {
        function ContextTagKeys() {
            this.applicationVersion = "ai.application.ver";
            this.applicationBuild = "ai.application.build";
            this.applicationTypeId = "ai.application.typeId";
            this.applicationId = "ai.application.applicationId";
            this.deviceId = "ai.device.id";
            this.deviceIp = "ai.device.ip";
            this.deviceLanguage = "ai.device.language";
            this.deviceLocale = "ai.device.locale";
            this.deviceModel = "ai.device.model";
            this.deviceNetwork = "ai.device.network";
            this.deviceNetworkName = "ai.device.networkName";
            this.deviceOEMName = "ai.device.oemName";
            this.deviceOS = "ai.device.os";
            this.deviceOSVersion = "ai.device.osVersion";
            this.deviceRoleInstance = "ai.device.roleInstance";
            this.deviceRoleName = "ai.device.roleName";
            this.deviceScreenResolution = "ai.device.screenResolution";
            this.deviceType = "ai.device.type";
            this.deviceMachineName = "ai.device.machineName";
            this.deviceVMName = "ai.device.vmName";
            this.locationIp = "ai.location.ip";
            this.operationId = "ai.operation.id";
            this.operationName = "ai.operation.name";
            this.operationParentId = "ai.operation.parentId";
            this.operationRootId = "ai.operation.rootId";
            this.operationSyntheticSource = "ai.operation.syntheticSource";
            this.operationIsSynthetic = "ai.operation.isSynthetic";
            this.operationCorrelationVector = "ai.operation.correlationVector";
            this.sessionId = "ai.session.id";
            this.sessionIsFirst = "ai.session.isFirst";
            this.sessionIsNew = "ai.session.isNew";
            this.userAccountAcquisitionDate = "ai.user.accountAcquisitionDate";
            this.userAccountId = "ai.user.accountId";
            this.userAgent = "ai.user.userAgent";
            this.userId = "ai.user.id";
            this.userStoreRegion = "ai.user.storeRegion";
            this.userAuthUserId = "ai.user.authUserId";
            this.userAnonymousUserAcquisitionDate = "ai.user.anonUserAcquisitionDate";
            this.userAuthenticatedUserAcquisitionDate = "ai.user.authUserAcquisitionDate";
            this.sampleRate = "ai.sample.sampleRate";
            this.cloudName = "ai.cloud.name";
            this.cloudRoleVer = "ai.cloud.roleVer";
            this.cloudEnvironment = "ai.cloud.environment";
            this.cloudLocation = "ai.cloud.location";
            this.cloudDeploymentUnit = "ai.cloud.deploymentUnit";
            this.serverDeviceOS = "ai.serverDevice.os";
            this.serverDeviceOSVer = "ai.serverDevice.osVer";
            this.internalSdkVersion = "ai.internal.sdkVersion";
            this.internalAgentVersion = "ai.internal.agentVersion";
            this.internalDataCollectorReceivedTime = "ai.internal.dataCollectorReceivedTime";
            this.internalProfileId = "ai.internal.profileId";
            this.internalProfileClassId = "ai.internal.profileClassId";
            this.internalAccountId = "ai.internal.accountId";
            this.internalApplicationName = "ai.internal.applicationName";
            this.internalInstrumentationKey = "ai.internal.instrumentationKey";
            this.internalTelemetryItemId = "ai.internal.telemetryItemId";
            this.internalApplicationType = "ai.internal.applicationType";
            this.internalRequestSource = "ai.internal.requestSource";
            this.internalFlowType = "ai.internal.flowType";
            this.internalIsAudit = "ai.internal.isAudit";
            this.internalTrackingSourceId = "ai.internal.trackingSourceId";
            this.internalTrackingType = "ai.internal.trackingType";
            this.internalIsDiagnosticExample = "ai.internal.isDiagnosticExample";
        }
        return ContextTagKeys;
    })();
    AI.ContextTagKeys = ContextTagKeys;
})(AI || (AI = {}));
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var Context;
        (function (Context) {
            "use strict";
            var Application = (function () {
                function Application() {
                }
                return Application;
            })();
            Context.Application = Application;
        })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var Context;
        (function (Context) {
            "use strict";
            var Device = (function () {
                function Device() {
                    this.id = "browser";
                    this.type = "Browser";
                }
                return Device;
            })();
            Context.Device = Device;
        })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var Context;
        (function (Context) {
            "use strict";
            var Internal = (function () {
                function Internal() {
                    this.sdkVersion = "JavaScript:" + ApplicationInsights.Version;
                }
                return Internal;
            })();
            Context.Internal = Internal;
        })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var Context;
        (function (Context) {
            "use strict";
            var Location = (function () {
                function Location() {
                }
                return Location;
            })();
            Context.Location = Location;
        })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="../util.ts" />
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var Context;
        (function (Context) {
            "use strict";
            var Operation = (function () {
                function Operation() {
                    this.id = ApplicationInsights.Util.newId();
                    if (window && window.location && window.location.pathname) {
                        this.name = window.location.pathname;
                    }
                }
                return Operation;
            })();
            Context.Operation = Operation;
        })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="./HashCodeScoreGenerator.ts" />
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var SamplingScoreGenerator = (function () {
            function SamplingScoreGenerator() {
                this.hashCodeGeneragor = new ApplicationInsights.HashCodeScoreGenerator();
            }
            SamplingScoreGenerator.prototype.getSamplingScore = function (envelope) {
                var tagKeys = new AI.ContextTagKeys();
                var score = 0;
                if (envelope.tags[tagKeys.userId]) {
                    score = this.hashCodeGeneragor.getHashCodeScore(envelope.tags[tagKeys.userId]);
                }
                else if (envelope.tags[tagKeys.operationId]) {
                    score = this.hashCodeGeneragor.getHashCodeScore(envelope.tags[tagKeys.operationId]);
                }
                else {
                    score = Math.random();
                }
                return score;
            };
            return SamplingScoreGenerator;
        })();
        ApplicationInsights.SamplingScoreGenerator = SamplingScoreGenerator;
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="../SamplingScoreGenerator.ts" />
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var Context;
        (function (Context) {
            "use strict";
            var Sample = (function () {
                function Sample(sampleRate) {
                    this.INT_MAX_VALUE = 2147483647;
                    if (sampleRate > 100 || sampleRate < 0) {
                        ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_SampleRateOutOfRange, "Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.", { samplingRate: sampleRate }));
                        this.sampleRate = 100;
                    }
                    this.sampleRate = sampleRate;
                    this.samplingScoreGenerator = new ApplicationInsights.SamplingScoreGenerator();
                }
                Sample.prototype.isSampledIn = function (envelope) {
                    if (this.sampleRate == 100)
                        return true;
                    var score = this.samplingScoreGenerator.getSamplingScore(envelope);
                    return score < this.sampleRate;
                };
                return Sample;
            })();
            Context.Sample = Sample;
        })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
var AI;
(function (AI) {
    "use strict";
    (function (SessionState) {
        SessionState[SessionState["Start"] = 0] = "Start";
        SessionState[SessionState["End"] = 1] = "End";
    })(AI.SessionState || (AI.SessionState = {}));
    var SessionState = AI.SessionState;
})(AI || (AI = {}));
/// <reference path="../util.ts" />
/// <reference path="../Contracts/Generated/SessionState.ts"/>
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var Context;
        (function (Context) {
            "use strict";
            var Session = (function () {
                function Session() {
                }
                return Session;
            })();
            Context.Session = Session;
            var _SessionManager = (function () {
                function _SessionManager(config) {
                    if (!config) {
                        config = {};
                    }
                    if (!(typeof config.sessionExpirationMs === "function")) {
                        config.sessionExpirationMs = function () { return _SessionManager.acquisitionSpan; };
                    }
                    if (!(typeof config.sessionRenewalMs === "function")) {
                        config.sessionRenewalMs = function () { return _SessionManager.renewalSpan; };
                    }
                    this.config = config;
                    this.automaticSession = new Session();
                }
                _SessionManager.prototype.update = function () {
                    if (!this.automaticSession.id) {
                        this.initializeAutomaticSession();
                    }
                    var now = +new Date;
                    var acquisitionExpired = now - this.automaticSession.acquisitionDate > this.config.sessionExpirationMs();
                    var renewalExpired = now - this.automaticSession.renewalDate > this.config.sessionRenewalMs();
                    if (acquisitionExpired || renewalExpired) {
                        this.automaticSession.isFirst = undefined;
                        this.renew();
                    }
                    else {
                        this.automaticSession.renewalDate = +new Date;
                        this.setCookie(this.automaticSession.id, this.automaticSession.acquisitionDate, this.automaticSession.renewalDate);
                    }
                };
                _SessionManager.prototype.backup = function () {
                    this.setStorage(this.automaticSession.id, this.automaticSession.acquisitionDate, this.automaticSession.renewalDate);
                };
                _SessionManager.prototype.initializeAutomaticSession = function () {
                    var cookie = ApplicationInsights.Util.getCookie('ai_session');
                    if (cookie && typeof cookie.split === "function") {
                        this.initializeAutomaticSessionWithData(cookie);
                    }
                    else {
                        var storage = ApplicationInsights.Util.getStorage('ai_session');
                        if (storage) {
                            this.initializeAutomaticSessionWithData(storage);
                        }
                    }
                    if (!this.automaticSession.id) {
                        this.automaticSession.isFirst = true;
                        this.renew();
                    }
                };
                _SessionManager.prototype.initializeAutomaticSessionWithData = function (sessionData) {
                    var params = sessionData.split("|");
                    if (params.length > 0) {
                        this.automaticSession.id = params[0];
                    }
                    try {
                        if (params.length > 1) {
                            var acq = +params[1];
                            this.automaticSession.acquisitionDate = +new Date(acq);
                            this.automaticSession.acquisitionDate = this.automaticSession.acquisitionDate > 0 ? this.automaticSession.acquisitionDate : 0;
                        }
                        if (params.length > 2) {
                            var renewal = +params[2];
                            this.automaticSession.renewalDate = +new Date(renewal);
                            this.automaticSession.renewalDate = this.automaticSession.renewalDate > 0 ? this.automaticSession.renewalDate : 0;
                        }
                    }
                    catch (e) {
                        ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_ErrorParsingAISessionCookie, "Error parsing ai_session cookie, session will be reset: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
                    }
                    if (this.automaticSession.renewalDate == 0) {
                        ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_SessionRenewalDateIsZero, "AI session renewal date is 0, session will be reset."));
                    }
                };
                _SessionManager.prototype.renew = function () {
                    var now = +new Date;
                    this.automaticSession.id = ApplicationInsights.Util.newId();
                    this.automaticSession.acquisitionDate = now;
                    this.automaticSession.renewalDate = now;
                    this.setCookie(this.automaticSession.id, this.automaticSession.acquisitionDate, this.automaticSession.renewalDate);
                    if (!ApplicationInsights.Util.canUseLocalStorage()) {
                        ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_BrowserDoesNotSupportLocalStorage, "Browser does not support local storage. Session durations will be inaccurate."));
                    }
                };
                _SessionManager.prototype.setCookie = function (guid, acq, renewal) {
                    var acquisitionExpiry = acq + this.config.sessionExpirationMs();
                    var renewalExpiry = renewal + this.config.sessionRenewalMs();
                    var cookieExpiry = new Date();
                    var cookie = [guid, acq, renewal];
                    if (acquisitionExpiry < renewalExpiry) {
                        cookieExpiry.setTime(acquisitionExpiry);
                    }
                    else {
                        cookieExpiry.setTime(renewalExpiry);
                    }
                    var cookieDomnain = this.config.cookieDomain ? this.config.cookieDomain() : null;
                    ApplicationInsights.Util.setCookie('ai_session', cookie.join('|') + ';expires=' + cookieExpiry.toUTCString(), cookieDomnain);
                };
                _SessionManager.prototype.setStorage = function (guid, acq, renewal) {
                    ApplicationInsights.Util.setStorage('ai_session', [guid, acq, renewal].join('|'));
                };
                _SessionManager.acquisitionSpan = 86400000;
                _SessionManager.renewalSpan = 1800000;
                return _SessionManager;
            })();
            Context._SessionManager = _SessionManager;
        })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="../util.ts" />
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var Context;
        (function (Context) {
            "use strict";
            var User = (function () {
                function User(config) {
                    var cookie = ApplicationInsights.Util.getCookie(User.userCookieName);
                    if (cookie) {
                        var params = cookie.split(User.cookieSeparator);
                        if (params.length > 0) {
                            this.id = params[0];
                        }
                    }
                    this.config = config;
                    if (!this.id) {
                        this.id = ApplicationInsights.Util.newId();
                        var date = new Date();
                        var acqStr = ApplicationInsights.Util.toISOStringForIE8(date);
                        this.accountAcquisitionDate = acqStr;
                        date.setTime(date.getTime() + 31536000000);
                        var newCookie = [this.id, acqStr];
                        var cookieDomain = this.config.cookieDomain ? this.config.cookieDomain() : undefined;
                        ApplicationInsights.Util.setCookie(User.userCookieName, newCookie.join(User.cookieSeparator) + ';expires=' + date.toUTCString(), cookieDomain);
                        ApplicationInsights.Util.removeStorage('ai_session');
                    }
                    this.accountId = config.accountId ? config.accountId() : undefined;
                    var authCookie = ApplicationInsights.Util.getCookie(User.authUserCookieName);
                    if (authCookie) {
                        authCookie = decodeURI(authCookie);
                        var authCookieString = authCookie.split(User.cookieSeparator);
                        if (authCookieString[0]) {
                            this.authenticatedId = authCookieString[0];
                        }
                        if (authCookieString.length > 1 && authCookieString[1]) {
                            this.accountId = authCookieString[1];
                        }
                    }
                }
                User.prototype.setAuthenticatedUserContext = function (authenticatedUserId, accountId) {
                    var isInvalidInput = !this.validateUserInput(authenticatedUserId) || (accountId && !this.validateUserInput(accountId));
                    if (isInvalidInput) {
                        ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_SetAuthContextFailedAccountName, "Setting auth user context failed. " +
                            "User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars."));
                        return;
                    }
                    this.authenticatedId = authenticatedUserId;
                    var authCookie = this.authenticatedId;
                    if (accountId) {
                        this.accountId = accountId;
                        authCookie = [this.authenticatedId, this.accountId].join(User.cookieSeparator);
                    }
                    ApplicationInsights.Util.setCookie(User.authUserCookieName, encodeURI(authCookie), this.config.cookieDomain());
                };
                User.prototype.clearAuthenticatedUserContext = function () {
                    this.authenticatedId = null;
                    this.accountId = null;
                    ApplicationInsights.Util.deleteCookie(User.authUserCookieName);
                };
                User.prototype.validateUserInput = function (id) {
                    if (typeof id !== 'string' ||
                        !id ||
                        id.match(/,|;|=| |\|/)) {
                        return false;
                    }
                    return true;
                };
                User.cookieSeparator = '|';
                User.userCookieName = 'ai_user';
                User.authUserCookieName = 'ai_authUser';
                return User;
            })();
            Context.User = User;
        })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        "use strict";
        var DataLossAnalyzer = (function () {
            function DataLossAnalyzer() {
            }
            DataLossAnalyzer.reset = function () {
                if (DataLossAnalyzer.isEnabled()) {
                    ApplicationInsights.Util.setSessionStorage(DataLossAnalyzer.ITEMS_QUEUED_KEY, "0");
                }
            };
            DataLossAnalyzer.isEnabled = function () {
                return DataLossAnalyzer.enabled &&
                    DataLossAnalyzer.appInsights != null &&
                    ApplicationInsights.Util.canUseSessionStorage();
            };
            DataLossAnalyzer.getIssuesReported = function () {
                var result = (!DataLossAnalyzer.isEnabled() || isNaN(+ApplicationInsights.Util.getSessionStorage(DataLossAnalyzer.ISSUES_REPORTED_KEY))) ?
                    0 :
                    +ApplicationInsights.Util.getSessionStorage(DataLossAnalyzer.ISSUES_REPORTED_KEY);
                return result;
            };
            DataLossAnalyzer.incrementItemsQueued = function () {
                try {
                    if (DataLossAnalyzer.isEnabled()) {
                        var itemsQueued = DataLossAnalyzer.getNumberOfLostItems();
                        ++itemsQueued;
                        ApplicationInsights.Util.setSessionStorage(DataLossAnalyzer.ITEMS_QUEUED_KEY, itemsQueued.toString());
                    }
                }
                catch (e) { }
            };
            DataLossAnalyzer.decrementItemsQueued = function (countOfItemsSentSuccessfully) {
                try {
                    if (DataLossAnalyzer.isEnabled()) {
                        var itemsQueued = DataLossAnalyzer.getNumberOfLostItems();
                        itemsQueued -= countOfItemsSentSuccessfully;
                        if (itemsQueued < 0)
                            itemsQueued = 0;
                        ApplicationInsights.Util.setSessionStorage(DataLossAnalyzer.ITEMS_QUEUED_KEY, itemsQueued.toString());
                    }
                }
                catch (e) { }
            };
            DataLossAnalyzer.getNumberOfLostItems = function () {
                var result = 0;
                try {
                    if (DataLossAnalyzer.isEnabled()) {
                        result = isNaN(+ApplicationInsights.Util.getSessionStorage(DataLossAnalyzer.ITEMS_QUEUED_KEY)) ?
                            0 :
                            +ApplicationInsights.Util.getSessionStorage(DataLossAnalyzer.ITEMS_QUEUED_KEY);
                    }
                }
                catch (e) {
                    result = 0;
                }
                return result;
            };
            DataLossAnalyzer.reportLostItems = function () {
                try {
                    if (DataLossAnalyzer.isEnabled() &&
                        DataLossAnalyzer.getIssuesReported() < DataLossAnalyzer.LIMIT_PER_SESSION &&
                        DataLossAnalyzer.getNumberOfLostItems() > 0) {
                        DataLossAnalyzer.appInsights.trackTrace("AI (Internal): Internal report DATALOSS: "
                            + DataLossAnalyzer.getNumberOfLostItems(), null);
                        DataLossAnalyzer.appInsights.flush();
                        var issuesReported = DataLossAnalyzer.getIssuesReported();
                        ++issuesReported;
                        ApplicationInsights.Util.setSessionStorage(DataLossAnalyzer.ISSUES_REPORTED_KEY, issuesReported.toString());
                    }
                }
                catch (e) {
                    ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedToReportDataLoss, "Failed to report data loss: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
                }
                finally {
                    try {
                        DataLossAnalyzer.reset();
                    }
                    catch (e) { }
                }
            };
            DataLossAnalyzer.enabled = false;
            DataLossAnalyzer.LIMIT_PER_SESSION = 10;
            DataLossAnalyzer.ITEMS_QUEUED_KEY = "AI_itemsQueued";
            DataLossAnalyzer.ISSUES_REPORTED_KEY = "AI_lossIssuesReported";
            return DataLossAnalyzer;
        })();
        ApplicationInsights.DataLossAnalyzer = DataLossAnalyzer;
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="serializer.ts" />
/// <reference path="Telemetry/Common/Envelope.ts"/>
/// <reference path="Telemetry/Common/Base.ts" />
/// <reference path="Contracts/Generated/ContextTagKeys.ts"/>
/// <reference path="Context/Application.ts"/>
/// <reference path="Context/Device.ts"/>
/// <reference path="Context/Internal.ts"/>
/// <reference path="Context/Location.ts"/>
/// <reference path="Context/Operation.ts"/>
/// <reference path="Context/Sample.ts"/>
/// <reference path="Context/Session.ts"/>
/// <reference path="Context/User.ts"/>
/// <reference path="ajax/ajax.ts"/>
/// <reference path="./DataLossAnalyzer.ts"/>
;
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        "use strict";
        var Sender = (function () {
            function Sender(config) {
                this._buffer = [];
                this._lastSend = 0;
                this._config = config;
                this._sender = null;
                if (typeof XMLHttpRequest != "undefined") {
                    var testXhr = new XMLHttpRequest();
                    if ("withCredentials" in testXhr) {
                        this._sender = this._xhrSender;
                    }
                    else if (typeof XDomainRequest !== "undefined") {
                        this._sender = this._xdrSender;
                    }
                }
            }
            Sender.prototype.send = function (envelope) {
                var _this = this;
                try {
                    if (this._config.disableTelemetry()) {
                        return;
                    }
                    if (!envelope) {
                        ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_CannotSendEmptyTelemetry, "Cannot send empty telemetry"));
                        return;
                    }
                    if (!this._sender) {
                        ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_SenderNotInitialized, "Sender was not initialized"));
                        return;
                    }
                    var payload = ApplicationInsights.Serializer.serialize(envelope);
                    if (this._getSizeInBytes(this._buffer) + payload.length > this._config.maxBatchSizeInBytes()) {
                        this.triggerSend();
                    }
                    this._buffer.push(payload);
                    if (!this._timeoutHandle) {
                        this._timeoutHandle = setTimeout(function () {
                            _this._timeoutHandle = null;
                            _this.triggerSend();
                        }, this._config.maxBatchInterval());
                    }
                    ApplicationInsights.DataLossAnalyzer.incrementItemsQueued();
                }
                catch (e) {
                    ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedAddingTelemetryToBuffer, "Failed adding telemetry to the sender's buffer, some telemetry will be lost: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
                }
            };
            Sender.prototype._getSizeInBytes = function (list) {
                var size = 0;
                if (list && list.length) {
                    for (var i = 0; i < list.length; i++) {
                        var item = list[i];
                        if (item && item.length) {
                            size += item.length;
                        }
                    }
                }
                return size;
            };
            Sender.prototype.triggerSend = function (async) {
                var isAsync = true;
                if (typeof async === 'boolean') {
                    isAsync = async;
                }
                try {
                    if (!this._config.disableTelemetry()) {
                        if (this._buffer.length) {
                            var batch = this._config.emitLineDelimitedJson() ?
                                this._buffer.join("\n") :
                                "[" + this._buffer.join(",") + "]";
                            this._sender(batch, isAsync, this._buffer.length);
                        }
                        this._lastSend = +new Date;
                    }
                    this._buffer.length = 0;
                    clearTimeout(this._timeoutHandle);
                    this._timeoutHandle = null;
                }
                catch (e) {
                    if (!ApplicationInsights.Util.getIEVersion() || ApplicationInsights.Util.getIEVersion() > 9) {
                        ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TransmissionFailed, "Telemetry transmission failed, some telemetry will be lost: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
                    }
                }
            };
            Sender.prototype._xhrSender = function (payload, isAsync, countOfItemsInPayload) {
                var xhr = new XMLHttpRequest();
                xhr[ApplicationInsights.AjaxMonitor.DisabledPropertyName] = true;
                xhr.open("POST", this._config.endpointUrl(), isAsync);
                xhr.setRequestHeader("Content-type", "application/json");
                xhr.onreadystatechange = function () { return Sender._xhrReadyStateChange(xhr, payload, countOfItemsInPayload); };
                xhr.onerror = function (event) { return Sender._onError(payload, xhr.responseText || xhr.response || "", event); };
                xhr.send(payload);
            };
            Sender.prototype._xdrSender = function (payload, isAsync) {
                var xdr = new XDomainRequest();
                xdr.onload = function () { return Sender._xdrOnLoad(xdr, payload); };
                xdr.onerror = function (event) { return Sender._onError(payload, xdr.responseText || "", event); };
                xdr.open('POST', this._config.endpointUrl());
                xdr.send(payload);
            };
            Sender._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {
                if (xhr.readyState === 4) {
                    if ((xhr.status < 200 || xhr.status >= 300) && xhr.status !== 0) {
                        Sender._onError(payload, xhr.responseText || xhr.response || "");
                    }
                    else {
                        Sender._onSuccess(payload, countOfItemsInPayload);
                    }
                }
            };
            Sender._xdrOnLoad = function (xdr, payload) {
                if (xdr && (xdr.responseText + "" === "200" || xdr.responseText === "")) {
                    Sender._onSuccess(payload, 0);
                }
                else {
                    Sender._onError(payload, xdr && xdr.responseText || "");
                }
            };
            Sender._onError = function (payload, message, event) {
                ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_OnError, "Failed to send telemetry.", { message: message }));
            };
            Sender._onSuccess = function (payload, countOfItemsInPayload) {
                ApplicationInsights.DataLossAnalyzer.decrementItemsQueued(countOfItemsInPayload);
            };
            return Sender;
        })();
        ApplicationInsights.Sender = Sender;
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="./HashCodeScoreGenerator.ts" />
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        "use strict";
        var SplitTest = (function () {
            function SplitTest() {
                this.hashCodeGeneragor = new ApplicationInsights.HashCodeScoreGenerator();
            }
            SplitTest.prototype.isEnabled = function (key, percentEnabled) {
                return this.hashCodeGeneragor.getHashCodeScore(key) < percentEnabled;
            };
            return SplitTest;
        })();
        ApplicationInsights.SplitTest = SplitTest;
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
var Microsoft;
(function (Microsoft) {
    var Telemetry;
    (function (Telemetry) {
        "use strict";
        var Domain = (function () {
            function Domain() {
            }
            return Domain;
        })();
        Telemetry.Domain = Domain;
    })(Telemetry = Microsoft.Telemetry || (Microsoft.Telemetry = {}));
})(Microsoft || (Microsoft = {}));
var AI;
(function (AI) {
    "use strict";
    (function (SeverityLevel) {
        SeverityLevel[SeverityLevel["Verbose"] = 0] = "Verbose";
        SeverityLevel[SeverityLevel["Information"] = 1] = "Information";
        SeverityLevel[SeverityLevel["Warning"] = 2] = "Warning";
        SeverityLevel[SeverityLevel["Error"] = 3] = "Error";
        SeverityLevel[SeverityLevel["Critical"] = 4] = "Critical";
    })(AI.SeverityLevel || (AI.SeverityLevel = {}));
    var SeverityLevel = AI.SeverityLevel;
})(AI || (AI = {}));
/// <reference path="Domain.ts" />
/// <reference path="SeverityLevel.ts" />
var AI;
(function (AI) {
    "use strict";
    var MessageData = (function (_super) {
        __extends(MessageData, _super);
        function MessageData() {
            this.ver = 2;
            this.properties = {};
            _super.call(this);
        }
        return MessageData;
    })(Microsoft.Telemetry.Domain);
    AI.MessageData = MessageData;
})(AI || (AI = {}));
/// <reference path="../../logging.ts" />
/// <reference path="../../Util.ts"/>
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var Telemetry;
        (function (Telemetry) {
            var Common;
            (function (Common) {
                "use strict";
                var DataSanitizer = (function () {
                    function DataSanitizer() {
                    }
                    DataSanitizer.sanitizeKeyAndAddUniqueness = function (key, map) {
                        var origLength = key.length;
                        var field = DataSanitizer.sanitizeKey(key);
                        if (field.length !== origLength) {
                            var i = 0;
                            var uniqueField = field;
                            while (map[uniqueField] !== undefined) {
                                i++;
                                uniqueField = field.substring(0, DataSanitizer.MAX_NAME_LENGTH - 3) + DataSanitizer.padNumber(i);
                            }
                            field = uniqueField;
                        }
                        return field;
                    };
                    DataSanitizer.sanitizeKey = function (name) {
                        if (name) {
                            name = ApplicationInsights.Util.trim(name.toString());
                            if (name.search(/[^0-9a-zA-Z-._()\/ ]/g) >= 0) {
                                name = name.replace(/[^0-9a-zA-Z-._()\/ ]/g, "_");
                                ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_IllegalCharsInName, "name contains illegal characters. Illegal characters have been replaced with '_'.", { newName: name }));
                            }
                            if (name.length > DataSanitizer.MAX_NAME_LENGTH) {
                                name = name.substring(0, DataSanitizer.MAX_NAME_LENGTH);
                                ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_NameTooLong, "name is too long.  It has been truncated to " + DataSanitizer.MAX_NAME_LENGTH + " characters.", { name: name }));
                            }
                        }
                        return name;
                    };
                    DataSanitizer.sanitizeString = function (value) {
                        if (value) {
                            value = ApplicationInsights.Util.trim(value);
                            if (value.toString().length > DataSanitizer.MAX_STRING_LENGTH) {
                                value = value.toString().substring(0, DataSanitizer.MAX_STRING_LENGTH);
                                ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_StringValueTooLong, "string value is too long. It has been truncated to " + DataSanitizer.MAX_STRING_LENGTH + " characters.", { value: value }));
                            }
                        }
                        return value;
                    };
                    DataSanitizer.sanitizeUrl = function (url) {
                        if (url) {
                            if (url.length > DataSanitizer.MAX_URL_LENGTH) {
                                url = url.substring(0, DataSanitizer.MAX_URL_LENGTH);
                                ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_UrlTooLong, "url is too long, it has been trucated to " + DataSanitizer.MAX_URL_LENGTH + " characters.", { url: url }));
                            }
                        }
                        return url;
                    };
                    DataSanitizer.sanitizeMessage = function (message) {
                        if (message) {
                            if (message.length > DataSanitizer.MAX_MESSAGE_LENGTH) {
                                message = message.substring(0, DataSanitizer.MAX_MESSAGE_LENGTH);
                                ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_MessageTruncated, "message is too long, it has been trucated to " + DataSanitizer.MAX_MESSAGE_LENGTH + " characters.", { message: message }));
                            }
                        }
                        return message;
                    };
                    DataSanitizer.sanitizeException = function (exception) {
                        if (exception) {
                            if (exception.length > DataSanitizer.MAX_EXCEPTION_LENGTH) {
                                exception = exception.substring(0, DataSanitizer.MAX_EXCEPTION_LENGTH);
                                ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_ExceptionTruncated, "exception is too long, it has been trucated to " + DataSanitizer.MAX_EXCEPTION_LENGTH + " characters.", { exception: exception }));
                            }
                        }
                        return exception;
                    };
                    DataSanitizer.sanitizeProperties = function (properties) {
                        if (properties) {
                            var tempProps = {};
                            for (var prop in properties) {
                                var value = DataSanitizer.sanitizeString(properties[prop]);
                                prop = DataSanitizer.sanitizeKeyAndAddUniqueness(prop, tempProps);
                                tempProps[prop] = value;
                            }
                            properties = tempProps;
                        }
                        return properties;
                    };
                    DataSanitizer.sanitizeMeasurements = function (measurements) {
                        if (measurements) {
                            var tempMeasurements = {};
                            for (var measure in measurements) {
                                var value = measurements[measure];
                                measure = DataSanitizer.sanitizeKeyAndAddUniqueness(measure, tempMeasurements);
                                tempMeasurements[measure] = value;
                            }
                            measurements = tempMeasurements;
                        }
                        return measurements;
                    };
                    DataSanitizer.padNumber = function (num) {
                        var s = "00" + num;
                        return s.substr(s.length - 3);
                    };
                    DataSanitizer.MAX_NAME_LENGTH = 150;
                    DataSanitizer.MAX_STRING_LENGTH = 1024;
                    DataSanitizer.MAX_URL_LENGTH = 2048;
                    DataSanitizer.MAX_MESSAGE_LENGTH = 32768;
                    DataSanitizer.MAX_EXCEPTION_LENGTH = 32768;
                    return DataSanitizer;
                })();
                Common.DataSanitizer = DataSanitizer;
            })(Common = Telemetry.Common || (Telemetry.Common = {}));
        })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="../Contracts/Generated/MessageData.ts" />
/// <reference path="./Common/DataSanitizer.ts"/>
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var Telemetry;
        (function (Telemetry) {
            "use strict";
            var Trace = (function (_super) {
                __extends(Trace, _super);
                function Trace(message, properties) {
                    _super.call(this);
                    this.aiDataContract = {
                        ver: ApplicationInsights.FieldType.Required,
                        message: ApplicationInsights.FieldType.Required,
                        severityLevel: ApplicationInsights.FieldType.Default,
                        measurements: ApplicationInsights.FieldType.Default,
                        properties: ApplicationInsights.FieldType.Default
                    };
                    message = message || ApplicationInsights.Util.NotSpecified;
                    this.message = Telemetry.Common.DataSanitizer.sanitizeMessage(message);
                    this.properties = Telemetry.Common.DataSanitizer.sanitizeProperties(properties);
                }
                Trace.envelopeType = "Microsoft.ApplicationInsights.{0}.Message";
                Trace.dataType = "MessageData";
                return Trace;
            })(AI.MessageData);
            Telemetry.Trace = Trace;
        })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="Domain.ts" />
var AI;
(function (AI) {
    "use strict";
    var EventData = (function (_super) {
        __extends(EventData, _super);
        function EventData() {
            this.ver = 2;
            this.properties = {};
            this.measurements = {};
            _super.call(this);
        }
        return EventData;
    })(Microsoft.Telemetry.Domain);
    AI.EventData = EventData;
})(AI || (AI = {}));
/// <reference path="../Contracts/Generated/EventData.ts" />
/// <reference path="./Common/DataSanitizer.ts"/>
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var Telemetry;
        (function (Telemetry) {
            "use strict";
            var Event = (function (_super) {
                __extends(Event, _super);
                function Event(name, properties, measurements) {
                    _super.call(this);
                    this.aiDataContract = {
                        ver: ApplicationInsights.FieldType.Required,
                        name: ApplicationInsights.FieldType.Required,
                        properties: ApplicationInsights.FieldType.Default,
                        measurements: ApplicationInsights.FieldType.Default
                    };
                    this.name = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeString(name);
                    this.properties = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeProperties(properties);
                    this.measurements = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeMeasurements(measurements);
                }
                Event.envelopeType = "Microsoft.ApplicationInsights.{0}.Event";
                Event.dataType = "EventData";
                return Event;
            })(AI.EventData);
            Telemetry.Event = Event;
        })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
var AI;
(function (AI) {
    "use strict";
    var ExceptionDetails = (function () {
        function ExceptionDetails() {
            this.hasFullStack = true;
            this.parsedStack = [];
        }
        return ExceptionDetails;
    })();
    AI.ExceptionDetails = ExceptionDetails;
})(AI || (AI = {}));
/// <reference path="Domain.ts" />
/// <reference path="SeverityLevel.ts" />
/// <reference path="ExceptionDetails.ts"/>
var AI;
(function (AI) {
    "use strict";
    var ExceptionData = (function (_super) {
        __extends(ExceptionData, _super);
        function ExceptionData() {
            this.ver = 2;
            this.exceptions = [];
            this.properties = {};
            this.measurements = {};
            _super.call(this);
        }
        return ExceptionData;
    })(Microsoft.Telemetry.Domain);
    AI.ExceptionData = ExceptionData;
})(AI || (AI = {}));
var AI;
(function (AI) {
    "use strict";
    var StackFrame = (function () {
        function StackFrame() {
        }
        return StackFrame;
    })();
    AI.StackFrame = StackFrame;
})(AI || (AI = {}));
/// <reference path="../Contracts/Generated/ExceptionData.ts" />
/// <reference path="../Contracts/Generated/StackFrame.ts" />
/// <reference path="./Common/DataSanitizer.ts"/>
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var Telemetry;
        (function (Telemetry) {
            "use strict";
            var Exception = (function (_super) {
                __extends(Exception, _super);
                function Exception(exception, handledAt, properties, measurements) {
                    _super.call(this);
                    this.aiDataContract = {
                        ver: ApplicationInsights.FieldType.Required,
                        handledAt: ApplicationInsights.FieldType.Required,
                        exceptions: ApplicationInsights.FieldType.Required,
                        severityLevel: ApplicationInsights.FieldType.Default,
                        properties: ApplicationInsights.FieldType.Default,
                        measurements: ApplicationInsights.FieldType.Default
                    };
                    this.properties = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeProperties(properties);
                    this.measurements = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeMeasurements(measurements);
                    this.handledAt = handledAt || "unhandled";
                    this.exceptions = [new _ExceptionDetails(exception)];
                }
                Exception.CreateSimpleException = function (message, typeName, assembly, fileName, details, line, handledAt) {
                    return {
                        handledAt: handledAt || "unhandled",
                        exceptions: [
                            {
                                hasFullStack: true,
                                message: message,
                                stack: details,
                                typeName: typeName,
                                parsedStack: [
                                    {
                                        level: 0,
                                        assembly: assembly,
                                        fileName: fileName,
                                        line: line,
                                        method: "unknown"
                                    }
                                ]
                            }
                        ]
                    };
                };
                Exception.envelopeType = "Microsoft.ApplicationInsights.{0}.Exception";
                Exception.dataType = "ExceptionData";
                return Exception;
            })(AI.ExceptionData);
            Telemetry.Exception = Exception;
            var _ExceptionDetails = (function (_super) {
                __extends(_ExceptionDetails, _super);
                function _ExceptionDetails(exception) {
                    _super.call(this);
                    this.aiDataContract = {
                        id: ApplicationInsights.FieldType.Default,
                        outerId: ApplicationInsights.FieldType.Default,
                        typeName: ApplicationInsights.FieldType.Required,
                        message: ApplicationInsights.FieldType.Required,
                        hasFullStack: ApplicationInsights.FieldType.Default,
                        stack: ApplicationInsights.FieldType.Default,
                        parsedStack: ApplicationInsights.FieldType.Array
                    };
                    this.typeName = Telemetry.Common.DataSanitizer.sanitizeString(exception.name || ApplicationInsights.Util.NotSpecified);
                    this.message = Telemetry.Common.DataSanitizer.sanitizeMessage(exception.message || ApplicationInsights.Util.NotSpecified);
                    var stack = exception["stack"];
                    this.parsedStack = this.parseStack(stack);
                    this.stack = Telemetry.Common.DataSanitizer.sanitizeException(stack);
                    this.hasFullStack = ApplicationInsights.Util.isArray(this.parsedStack) && this.parsedStack.length > 0;
                }
                _ExceptionDetails.prototype.parseStack = function (stack) {
                    var parsedStack = undefined;
                    if (typeof stack === "string") {
                        var frames = stack.split('\n');
                        parsedStack = [];
                        var level = 0;
                        var totalSizeInBytes = 0;
                        for (var i = 0; i <= frames.length; i++) {
                            var frame = frames[i];
                            if (_StackFrame.regex.test(frame)) {
                                var parsedFrame = new _StackFrame(frames[i], level++);
                                totalSizeInBytes += parsedFrame.sizeInBytes;
                                parsedStack.push(parsedFrame);
                            }
                        }
                        var exceptionParsedStackThreshold = 32 * 1024;
                        if (totalSizeInBytes > exceptionParsedStackThreshold) {
                            var left = 0;
                            var right = parsedStack.length - 1;
                            var size = 0;
                            var acceptedLeft = left;
                            var acceptedRight = right;
                            while (left < right) {
                                var lSize = parsedStack[left].sizeInBytes;
                                var rSize = parsedStack[right].sizeInBytes;
                                size += lSize + rSize;
                                if (size > exceptionParsedStackThreshold) {
                                    var howMany = acceptedRight - acceptedLeft + 1;
                                    parsedStack.splice(acceptedLeft, howMany);
                                    break;
                                }
                                acceptedLeft = left;
                                acceptedRight = right;
                                left++;
                                right--;
                            }
                        }
                    }
                    return parsedStack;
                };
                return _ExceptionDetails;
            })(AI.ExceptionDetails);
            var _StackFrame = (function (_super) {
                __extends(_StackFrame, _super);
                function _StackFrame(frame, level) {
                    _super.call(this);
                    this.sizeInBytes = 0;
                    this.aiDataContract = {
                        level: ApplicationInsights.FieldType.Required,
                        method: ApplicationInsights.FieldType.Required,
                        assembly: ApplicationInsights.FieldType.Default,
                        fileName: ApplicationInsights.FieldType.Default,
                        line: ApplicationInsights.FieldType.Default
                    };
                    this.level = level;
                    this.method = "<no_method>";
                    this.assembly = ApplicationInsights.Util.trim(frame);
                    var matches = frame.match(_StackFrame.regex);
                    if (matches && matches.length >= 5) {
                        this.method = ApplicationInsights.Util.trim(matches[2]) || this.method;
                        this.fileName = ApplicationInsights.Util.trim(matches[4]);
                        this.line = parseInt(matches[5]) || 0;
                    }
                    this.sizeInBytes += this.method.length;
                    this.sizeInBytes += this.fileName.length;
                    this.sizeInBytes += this.assembly.length;
                    this.sizeInBytes += _StackFrame.baseSize;
                    this.sizeInBytes += this.level.toString().length;
                    this.sizeInBytes += this.line.toString().length;
                }
                _StackFrame.regex = /^([\s]+at)?(.*?)(\@|\s\(|\s)([^\(\@\n]+):([0-9]+):([0-9]+)(\)?)$/;
                _StackFrame.baseSize = 58;
                return _StackFrame;
            })(AI.StackFrame);
            Telemetry._StackFrame = _StackFrame;
        })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="Domain.ts" />
var AI;
(function (AI) {
    "use strict";
    var MetricData = (function (_super) {
        __extends(MetricData, _super);
        function MetricData() {
            this.ver = 2;
            this.metrics = [];
            this.properties = {};
            _super.call(this);
        }
        return MetricData;
    })(Microsoft.Telemetry.Domain);
    AI.MetricData = MetricData;
})(AI || (AI = {}));
var AI;
(function (AI) {
    "use strict";
    (function (DataPointType) {
        DataPointType[DataPointType["Measurement"] = 0] = "Measurement";
        DataPointType[DataPointType["Aggregation"] = 1] = "Aggregation";
    })(AI.DataPointType || (AI.DataPointType = {}));
    var DataPointType = AI.DataPointType;
})(AI || (AI = {}));
/// <reference path="DataPointType.ts" />
var AI;
(function (AI) {
    "use strict";
    var DataPoint = (function () {
        function DataPoint() {
            this.kind = AI.DataPointType.Measurement;
        }
        return DataPoint;
    })();
    AI.DataPoint = DataPoint;
})(AI || (AI = {}));
/// <reference path="../../Contracts/Generated/DataPoint.ts"/>
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var Telemetry;
        (function (Telemetry) {
            var Common;
            (function (Common) {
                "use strict";
                var DataPoint = (function (_super) {
                    __extends(DataPoint, _super);
                    function DataPoint() {
                        _super.apply(this, arguments);
                        this.aiDataContract = {
                            name: ApplicationInsights.FieldType.Required,
                            kind: ApplicationInsights.FieldType.Default,
                            value: ApplicationInsights.FieldType.Required,
                            count: ApplicationInsights.FieldType.Default,
                            min: ApplicationInsights.FieldType.Default,
                            max: ApplicationInsights.FieldType.Default,
                            stdDev: ApplicationInsights.FieldType.Default
                        };
                    }
                    return DataPoint;
                })(AI.DataPoint);
                Common.DataPoint = DataPoint;
            })(Common = Telemetry.Common || (Telemetry.Common = {}));
        })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="../Contracts/Generated/MetricData.ts" />
/// <reference path="./Common/DataSanitizer.ts" />
/// <reference path="./Common/DataPoint.ts" />
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var Telemetry;
        (function (Telemetry) {
            "use strict";
            var Metric = (function (_super) {
                __extends(Metric, _super);
                function Metric(name, value, count, min, max, properties) {
                    _super.call(this);
                    this.aiDataContract = {
                        ver: ApplicationInsights.FieldType.Required,
                        metrics: ApplicationInsights.FieldType.Required,
                        properties: ApplicationInsights.FieldType.Default
                    };
                    var dataPoint = new Microsoft.ApplicationInsights.Telemetry.Common.DataPoint();
                    dataPoint.count = count > 0 ? count : undefined;
                    dataPoint.max = isNaN(max) || max === null ? undefined : max;
                    dataPoint.min = isNaN(min) || min === null ? undefined : min;
                    dataPoint.name = Telemetry.Common.DataSanitizer.sanitizeString(name);
                    dataPoint.value = value;
                    this.metrics = [dataPoint];
                    this.properties = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeProperties(properties);
                }
                Metric.envelopeType = "Microsoft.ApplicationInsights.{0}.Metric";
                Metric.dataType = "MetricData";
                return Metric;
            })(AI.MetricData);
            Telemetry.Metric = Metric;
        })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="EventData.ts" />
var AI;
(function (AI) {
    "use strict";
    var PageViewData = (function (_super) {
        __extends(PageViewData, _super);
        function PageViewData() {
            this.ver = 2;
            this.properties = {};
            this.measurements = {};
            _super.call(this);
        }
        return PageViewData;
    })(AI.EventData);
    AI.PageViewData = PageViewData;
})(AI || (AI = {}));
/// <reference path="../Contracts/Generated/PageViewData.ts" />
/// <reference path="./Common/DataSanitizer.ts"/>
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var Telemetry;
        (function (Telemetry) {
            "use strict";
            var PageView = (function (_super) {
                __extends(PageView, _super);
                function PageView(name, url, durationMs, properties, measurements) {
                    _super.call(this);
                    this.aiDataContract = {
                        ver: ApplicationInsights.FieldType.Required,
                        name: ApplicationInsights.FieldType.Default,
                        url: ApplicationInsights.FieldType.Default,
                        duration: ApplicationInsights.FieldType.Default,
                        properties: ApplicationInsights.FieldType.Default,
                        measurements: ApplicationInsights.FieldType.Default
                    };
                    this.url = Telemetry.Common.DataSanitizer.sanitizeUrl(url);
                    this.name = Telemetry.Common.DataSanitizer.sanitizeString(name || ApplicationInsights.Util.NotSpecified);
                    if (!isNaN(durationMs)) {
                        this.duration = ApplicationInsights.Util.msToTimeSpan(durationMs);
                    }
                    this.properties = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeProperties(properties);
                    this.measurements = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeMeasurements(measurements);
                }
                PageView.envelopeType = "Microsoft.ApplicationInsights.{0}.Pageview";
                PageView.dataType = "PageviewData";
                return PageView;
            })(AI.PageViewData);
            Telemetry.PageView = PageView;
        })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="PageViewData.ts" />
var AI;
(function (AI) {
    "use strict";
    var PageViewPerfData = (function (_super) {
        __extends(PageViewPerfData, _super);
        function PageViewPerfData() {
            this.ver = 2;
            this.properties = {};
            this.measurements = {};
            _super.call(this);
        }
        return PageViewPerfData;
    })(AI.PageViewData);
    AI.PageViewPerfData = PageViewPerfData;
})(AI || (AI = {}));
/// <reference path="../Contracts/Generated/PageViewPerfData.ts"/>
/// <reference path="./Common/DataSanitizer.ts"/>
/// <reference path="../Util.ts"/>
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var Telemetry;
        (function (Telemetry) {
            "use strict";
            var PageViewPerformance = (function (_super) {
                __extends(PageViewPerformance, _super);
                function PageViewPerformance(name, url, unused, properties, measurements) {
                    _super.call(this);
                    this.aiDataContract = {
                        ver: ApplicationInsights.FieldType.Required,
                        name: ApplicationInsights.FieldType.Default,
                        url: ApplicationInsights.FieldType.Default,
                        duration: ApplicationInsights.FieldType.Default,
                        perfTotal: ApplicationInsights.FieldType.Default,
                        networkConnect: ApplicationInsights.FieldType.Default,
                        sentRequest: ApplicationInsights.FieldType.Default,
                        receivedResponse: ApplicationInsights.FieldType.Default,
                        domProcessing: ApplicationInsights.FieldType.Default,
                        properties: ApplicationInsights.FieldType.Default,
                        measurements: ApplicationInsights.FieldType.Default
                    };
                    this.isValid = false;
                    var timing = PageViewPerformance.getPerformanceTiming();
                    if (timing) {
                        var total = PageViewPerformance.getDuration(timing.navigationStart, timing.loadEventEnd);
                        var network = PageViewPerformance.getDuration(timing.navigationStart, timing.connectEnd);
                        var request = PageViewPerformance.getDuration(timing.requestStart, timing.responseStart);
                        var response = PageViewPerformance.getDuration(timing.responseStart, timing.responseEnd);
                        var dom = PageViewPerformance.getDuration(timing.responseEnd, timing.loadEventEnd);
                        if (total == 0) {
                            ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_ErrorPVCalc, "error calculating page view performance.", { total: total, network: network, request: request, response: response, dom: dom }));
                        }
                        else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {
                            ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_ClientPerformanceMathError, "client performance math error.", { total: total, network: network, request: request, response: response, dom: dom }));
                        }
                        else {
                            this.durationMs = total;
                            this.perfTotal = this.duration = ApplicationInsights.Util.msToTimeSpan(total);
                            this.networkConnect = ApplicationInsights.Util.msToTimeSpan(network);
                            this.sentRequest = ApplicationInsights.Util.msToTimeSpan(request);
                            this.receivedResponse = ApplicationInsights.Util.msToTimeSpan(response);
                            this.domProcessing = ApplicationInsights.Util.msToTimeSpan(dom);
                            this.isValid = true;
                        }
                    }
                    this.url = Telemetry.Common.DataSanitizer.sanitizeUrl(url);
                    this.name = Telemetry.Common.DataSanitizer.sanitizeString(name || ApplicationInsights.Util.NotSpecified);
                    this.properties = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeProperties(properties);
                    this.measurements = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeMeasurements(measurements);
                }
                PageViewPerformance.prototype.getIsValid = function () {
                    return this.isValid;
                };
                PageViewPerformance.prototype.getDurationMs = function () {
                    return this.durationMs;
                };
                PageViewPerformance.getPerformanceTiming = function () {
                    if (typeof window != "undefined" && window.performance && window.performance.timing) {
                        return window.performance.timing;
                    }
                    return null;
                };
                PageViewPerformance.isPerformanceTimingSupported = function () {
                    return typeof window != "undefined" && window.performance && window.performance.timing;
                };
                PageViewPerformance.isPerformanceTimingDataReady = function () {
                    var timing = window.performance.timing;
                    return timing.domainLookupStart > 0
                        && timing.navigationStart > 0
                        && timing.responseStart > 0
                        && timing.requestStart > 0
                        && timing.loadEventEnd > 0
                        && timing.responseEnd > 0
                        && timing.connectEnd > 0
                        && timing.domLoading > 0;
                };
                PageViewPerformance.getDuration = function (start, end) {
                    var duration = 0;
                    if (!(isNaN(start) || isNaN(end))) {
                        duration = Math.max(end - start, 0);
                    }
                    return duration;
                };
                PageViewPerformance.envelopeType = "Microsoft.ApplicationInsights.{0}.PageviewPerformance";
                PageViewPerformance.dataType = "PageviewPerformanceData";
                return PageViewPerformance;
            })(AI.PageViewPerfData);
            Telemetry.PageViewPerformance = PageViewPerformance;
        })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="sender.ts"/>
/// <reference path="telemetry/trace.ts" />
/// <reference path="telemetry/event.ts" />
/// <reference path="telemetry/exception.ts" />
/// <reference path="telemetry/metric.ts" />
/// <reference path="telemetry/pageview.ts" />
/// <reference path="telemetry/pageviewperformance.ts" />
/// <reference path="./Util.ts"/>
/// <reference path="./Contracts/Generated/SessionState.ts"/>
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        "use strict";
        var TelemetryContext = (function () {
            function TelemetryContext(config) {
                this._config = config;
                this._sender = new ApplicationInsights.Sender(config);
                if (typeof window !== 'undefined') {
                    this._sessionManager = new ApplicationInsights.Context._SessionManager(config);
                    this.application = new ApplicationInsights.Context.Application();
                    this.device = new ApplicationInsights.Context.Device();
                    this.internal = new ApplicationInsights.Context.Internal();
                    this.location = new ApplicationInsights.Context.Location();
                    this.user = new ApplicationInsights.Context.User(config);
                    this.operation = new ApplicationInsights.Context.Operation();
                    this.session = new ApplicationInsights.Context.Session();
                    this.sample = new ApplicationInsights.Context.Sample(config.sampleRate());
                }
            }
            TelemetryContext.prototype.addTelemetryInitializer = function (telemetryInitializer) {
                this.telemetryInitializers = this.telemetryInitializers || [];
                this.telemetryInitializers.push(telemetryInitializer);
            };
            TelemetryContext.prototype.track = function (envelope) {
                if (!envelope) {
                    ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_TrackArgumentsNotSpecified, "cannot call .track() with a null or undefined argument"));
                }
                else {
                    if (envelope.name === ApplicationInsights.Telemetry.PageView.envelopeType) {
                        ApplicationInsights._InternalLogging.resetInternalMessageCount();
                    }
                    if (this.session) {
                        if (typeof this.session.id !== "string") {
                            this._sessionManager.update();
                        }
                    }
                    this._track(envelope);
                }
                return envelope;
            };
            TelemetryContext.prototype._track = function (envelope) {
                if (this.session) {
                    if (typeof this.session.id === "string") {
                        this._applySessionContext(envelope, this.session);
                    }
                    else {
                        this._applySessionContext(envelope, this._sessionManager.automaticSession);
                    }
                }
                this._applyApplicationContext(envelope, this.application);
                this._applyDeviceContext(envelope, this.device);
                this._applyInternalContext(envelope, this.internal);
                this._applyLocationContext(envelope, this.location);
                this._applySampleContext(envelope, this.sample);
                this._applyUserContext(envelope, this.user);
                this._applyOperationContext(envelope, this.operation);
                envelope.iKey = this._config.instrumentationKey();
                var doNotSendItem = false;
                try {
                    this.telemetryInitializers = this.telemetryInitializers || [];
                    var telemetryInitializersCount = this.telemetryInitializers.length;
                    for (var i = 0; i < telemetryInitializersCount; ++i) {
                        var telemetryInitializer = this.telemetryInitializers[i];
                        if (telemetryInitializer) {
                            if (telemetryInitializer.apply(null, [envelope]) === false) {
                                doNotSendItem = true;
                                break;
                            }
                        }
                    }
                }
                catch (e) {
                    doNotSendItem = true;
                    ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_TelemetryInitializerFailed, "One of telemetry initializers failed, telemetry item will not be sent: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
                }
                if (!doNotSendItem) {
                    if (envelope.name === ApplicationInsights.Telemetry.Metric.envelopeType ||
                        this.sample.isSampledIn(envelope)) {
                        var iKeyNoDashes = this._config.instrumentationKey().replace(/-/g, "");
                        envelope.name = envelope.name.replace("{0}", iKeyNoDashes);
                        this._sender.send(envelope);
                    }
                    else {
                        ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TelemetrySampledAndNotSent, "Telemetry is sampled and not sent to the AI service.", { SampleRate: this.sample.sampleRate }));
                    }
                }
                return envelope;
            };
            TelemetryContext.prototype._applyApplicationContext = function (envelope, appContext) {
                if (appContext) {
                    var tagKeys = new AI.ContextTagKeys();
                    if (typeof appContext.ver === "string") {
                        envelope.tags[tagKeys.applicationVersion] = appContext.ver;
                    }
                    if (typeof appContext.build === "string") {
                        envelope.tags[tagKeys.applicationBuild] = appContext.build;
                    }
                }
            };
            TelemetryContext.prototype._applyDeviceContext = function (envelope, deviceContext) {
                var tagKeys = new AI.ContextTagKeys();
                if (deviceContext) {
                    if (typeof deviceContext.id === "string") {
                        envelope.tags[tagKeys.deviceId] = deviceContext.id;
                    }
                    if (typeof deviceContext.ip === "string") {
                        envelope.tags[tagKeys.deviceIp] = deviceContext.ip;
                    }
                    if (typeof deviceContext.language === "string") {
                        envelope.tags[tagKeys.deviceLanguage] = deviceContext.language;
                    }
                    if (typeof deviceContext.locale === "string") {
                        envelope.tags[tagKeys.deviceLocale] = deviceContext.locale;
                    }
                    if (typeof deviceContext.model === "string") {
                        envelope.tags[tagKeys.deviceModel] = deviceContext.model;
                    }
                    if (typeof deviceContext.network !== "undefined") {
                        envelope.tags[tagKeys.deviceNetwork] = deviceContext.network;
                    }
                    if (typeof deviceContext.oemName === "string") {
                        envelope.tags[tagKeys.deviceOEMName] = deviceContext.oemName;
                    }
                    if (typeof deviceContext.os === "string") {
                        envelope.tags[tagKeys.deviceOS] = deviceContext.os;
                    }
                    if (typeof deviceContext.osversion === "string") {
                        envelope.tags[tagKeys.deviceOSVersion] = deviceContext.osversion;
                    }
                    if (typeof deviceContext.resolution === "string") {
                        envelope.tags[tagKeys.deviceScreenResolution] = deviceContext.resolution;
                    }
                    if (typeof deviceContext.type === "string") {
                        envelope.tags[tagKeys.deviceType] = deviceContext.type;
                    }
                }
            };
            TelemetryContext.prototype._applyInternalContext = function (envelope, internalContext) {
                if (internalContext) {
                    var tagKeys = new AI.ContextTagKeys();
                    if (typeof internalContext.agentVersion === "string") {
                        envelope.tags[tagKeys.internalAgentVersion] = internalContext.agentVersion;
                    }
                    if (typeof internalContext.sdkVersion === "string") {
                        envelope.tags[tagKeys.internalSdkVersion] = internalContext.sdkVersion;
                    }
                }
            };
            TelemetryContext.prototype._applyLocationContext = function (envelope, locationContext) {
                if (locationContext) {
                    var tagKeys = new AI.ContextTagKeys();
                    if (typeof locationContext.ip === "string") {
                        envelope.tags[tagKeys.locationIp] = locationContext.ip;
                    }
                }
            };
            TelemetryContext.prototype._applyOperationContext = function (envelope, operationContext) {
                if (operationContext) {
                    var tagKeys = new AI.ContextTagKeys();
                    if (typeof operationContext.id === "string") {
                        envelope.tags[tagKeys.operationId] = operationContext.id;
                    }
                    if (typeof operationContext.name === "string") {
                        envelope.tags[tagKeys.operationName] = operationContext.name;
                    }
                    if (typeof operationContext.parentId === "string") {
                        envelope.tags[tagKeys.operationParentId] = operationContext.parentId;
                    }
                    if (typeof operationContext.rootId === "string") {
                        envelope.tags[tagKeys.operationRootId] = operationContext.rootId;
                    }
                    if (typeof operationContext.syntheticSource === "string") {
                        envelope.tags[tagKeys.operationSyntheticSource] = operationContext.syntheticSource;
                    }
                }
            };
            TelemetryContext.prototype._applySampleContext = function (envelope, sampleContext) {
                if (sampleContext) {
                    envelope.sampleRate = sampleContext.sampleRate;
                }
            };
            TelemetryContext.prototype._applySessionContext = function (envelope, sessionContext) {
                if (sessionContext) {
                    var tagKeys = new AI.ContextTagKeys();
                    if (typeof sessionContext.id === "string") {
                        envelope.tags[tagKeys.sessionId] = sessionContext.id;
                    }
                    if (typeof sessionContext.isFirst !== "undefined") {
                        envelope.tags[tagKeys.sessionIsFirst] = sessionContext.isFirst;
                    }
                }
            };
            TelemetryContext.prototype._applyUserContext = function (envelope, userContext) {
                if (userContext) {
                    var tagKeys = new AI.ContextTagKeys();
                    if (typeof userContext.accountId === "string") {
                        envelope.tags[tagKeys.userAccountId] = userContext.accountId;
                    }
                    if (typeof userContext.agent === "string") {
                        envelope.tags[tagKeys.userAgent] = userContext.agent;
                    }
                    if (typeof userContext.id === "string") {
                        envelope.tags[tagKeys.userId] = userContext.id;
                    }
                    if (typeof userContext.authenticatedId === "string") {
                        envelope.tags[tagKeys.userAuthUserId] = userContext.authenticatedId;
                    }
                    if (typeof userContext.storeRegion === "string") {
                        envelope.tags[tagKeys.userStoreRegion] = userContext.storeRegion;
                    }
                }
            };
            return TelemetryContext;
        })();
        ApplicationInsights.TelemetryContext = TelemetryContext;
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="Base.ts" />
var Microsoft;
(function (Microsoft) {
    var Telemetry;
    (function (Telemetry) {
        "use strict";
        var Data = (function (_super) {
            __extends(Data, _super);
            function Data() {
                _super.call(this);
            }
            return Data;
        })(Microsoft.Telemetry.Base);
        Telemetry.Data = Data;
    })(Telemetry = Microsoft.Telemetry || (Microsoft.Telemetry = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="../../Contracts/Generated/Data.ts"/>
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var Telemetry;
        (function (Telemetry) {
            var Common;
            (function (Common) {
                "use strict";
                var Data = (function (_super) {
                    __extends(Data, _super);
                    function Data(type, data) {
                        _super.call(this);
                        this.aiDataContract = {
                            baseType: ApplicationInsights.FieldType.Required,
                            baseData: ApplicationInsights.FieldType.Required
                        };
                        this.baseType = type;
                        this.baseData = data;
                    }
                    return Data;
                })(Microsoft.Telemetry.Data);
                Common.Data = Data;
            })(Common = Telemetry.Common || (Telemetry.Common = {}));
        })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="../Contracts/Generated/PageViewData.ts" />
/// <reference path="./Common/DataSanitizer.ts"/>
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var Telemetry;
        (function (Telemetry) {
            "use strict";
            var PageViewManager = (function () {
                function PageViewManager(appInsights, overridePageViewDuration) {
                    this.pageViewPerformanceSent = false;
                    this.overridePageViewDuration = false;
                    this.overridePageViewDuration = overridePageViewDuration;
                    this.appInsights = appInsights;
                }
                PageViewManager.prototype.trackPageView = function (name, url, properties, measurements, duration) {
                    var _this = this;
                    if (typeof name !== "string") {
                        name = window.document && window.document.title || "";
                    }
                    if (typeof url !== "string") {
                        url = window.location && window.location.href || "";
                    }
                    var pageViewSent = false;
                    var customDuration = 0;
                    if (Telemetry.PageViewPerformance.isPerformanceTimingSupported()) {
                        var start = Telemetry.PageViewPerformance.getPerformanceTiming().navigationStart;
                        customDuration = Telemetry.PageViewPerformance.getDuration(start, +new Date);
                    }
                    else {
                        this.appInsights.sendPageViewInternal(name, url, !isNaN(duration) ? duration : 0, properties, measurements);
                        this.appInsights.flush();
                        pageViewSent = true;
                    }
                    if (this.overridePageViewDuration || !isNaN(duration)) {
                        this.appInsights.sendPageViewInternal(name, url, !isNaN(duration) ? duration : customDuration, properties, measurements);
                        this.appInsights.flush();
                        pageViewSent = true;
                    }
                    var maxDurationLimit = 60000;
                    if (!Telemetry.PageViewPerformance.isPerformanceTimingSupported()) {
                        ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_NavigationTimingNotSupported, "trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info."));
                        return;
                    }
                    var handle = setInterval(function () {
                        try {
                            if (Telemetry.PageViewPerformance.isPerformanceTimingDataReady()) {
                                clearInterval(handle);
                                var pageViewPerformance = new Telemetry.PageViewPerformance(name, url, null, properties, measurements);
                                if (!pageViewPerformance.getIsValid() && !pageViewSent) {
                                    _this.appInsights.sendPageViewInternal(name, url, customDuration, properties, measurements);
                                    _this.appInsights.flush();
                                }
                                else {
                                    if (!pageViewSent) {
                                        _this.appInsights.sendPageViewInternal(name, url, pageViewPerformance.getDurationMs(), properties, measurements);
                                    }
                                    if (!_this.pageViewPerformanceSent) {
                                        _this.appInsights.sendPageViewPerformanceInternal(pageViewPerformance);
                                        _this.pageViewPerformanceSent = true;
                                    }
                                    _this.appInsights.flush();
                                }
                            }
                            else if (Telemetry.PageViewPerformance.getDuration(start, +new Date) > maxDurationLimit) {
                                clearInterval(handle);
                                if (!pageViewSent) {
                                    _this.appInsights.sendPageViewInternal(name, url, maxDurationLimit, properties, measurements);
                                    _this.appInsights.flush();
                                }
                            }
                        }
                        catch (e) {
                            ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TrackPVFailedCalc, "trackPageView failed on page load calculation: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
                        }
                    }, 100);
                };
                return PageViewManager;
            })();
            Telemetry.PageViewManager = PageViewManager;
        })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="../AppInsights.ts" />
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var Telemetry;
        (function (Telemetry) {
            "use strict";
            var PageVisitTimeManager = (function () {
                function PageVisitTimeManager(pageVisitTimeTrackingHandler) {
                    this.prevPageVisitDataKeyName = "prevPageVisitData";
                    this.pageVisitTimeTrackingHandler = pageVisitTimeTrackingHandler;
                }
                PageVisitTimeManager.prototype.trackPreviousPageVisit = function (currentPageName, currentPageUrl) {
                    try {
                        var prevPageVisitTimeData = this.restartPageVisitTimer(currentPageName, currentPageUrl);
                        if (prevPageVisitTimeData) {
                            this.pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);
                        }
                    }
                    catch (e) {
                        ApplicationInsights._InternalLogging.warnToConsole("Auto track page visit time failed, metric will not be collected: " + ApplicationInsights.Util.dump(e));
                    }
                };
                PageVisitTimeManager.prototype.restartPageVisitTimer = function (pageName, pageUrl) {
                    try {
                        var prevPageVisitData = this.stopPageVisitTimer();
                        this.startPageVisitTimer(pageName, pageUrl);
                        return prevPageVisitData;
                    }
                    catch (e) {
                        ApplicationInsights._InternalLogging.warnToConsole("Call to restart failed: " + ApplicationInsights.Util.dump(e));
                        return null;
                    }
                };
                PageVisitTimeManager.prototype.startPageVisitTimer = function (pageName, pageUrl) {
                    try {
                        if (ApplicationInsights.Util.canUseSessionStorage()) {
                            if (ApplicationInsights.Util.getSessionStorage(this.prevPageVisitDataKeyName) != null) {
                                throw new Error("Cannot call startPageVisit consecutively without first calling stopPageVisit");
                            }
                            var currPageVisitData = new PageVisitData(pageName, pageUrl);
                            var currPageVisitDataStr = JSON.stringify(currPageVisitData);
                            ApplicationInsights.Util.setSessionStorage(this.prevPageVisitDataKeyName, currPageVisitDataStr);
                        }
                    }
                    catch (e) {
                        ApplicationInsights._InternalLogging.warnToConsole("Call to start failed: " + ApplicationInsights.Util.dump(e));
                    }
                };
                PageVisitTimeManager.prototype.stopPageVisitTimer = function () {
                    try {
                        if (ApplicationInsights.Util.canUseSessionStorage()) {
                            var pageVisitEndTime = Date.now();
                            var pageVisitDataJsonStr = ApplicationInsights.Util.getSessionStorage(this.prevPageVisitDataKeyName);
                            if (pageVisitDataJsonStr) {
                                var prevPageVisitData = JSON.parse(pageVisitDataJsonStr);
                                prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData.pageVisitStartTime;
                                ApplicationInsights.Util.removeSessionStorage(this.prevPageVisitDataKeyName);
                                return prevPageVisitData;
                            }
                            else {
                                return null;
                            }
                        }
                        return null;
                    }
                    catch (e) {
                        ApplicationInsights._InternalLogging.warnToConsole("Stop page visit timer failed: " + ApplicationInsights.Util.dump(e));
                        return null;
                    }
                };
                return PageVisitTimeManager;
            })();
            Telemetry.PageVisitTimeManager = PageVisitTimeManager;
            var PageVisitData = (function () {
                function PageVisitData(pageName, pageUrl) {
                    this.pageVisitStartTime = Date.now();
                    this.pageName = pageName;
                    this.pageUrl = pageUrl;
                }
                return PageVisitData;
            })();
            Telemetry.PageVisitData = PageVisitData;
        })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
var AI;
(function (AI) {
    "use strict";
    (function (DependencyKind) {
        DependencyKind[DependencyKind["SQL"] = 0] = "SQL";
        DependencyKind[DependencyKind["Http"] = 1] = "Http";
        DependencyKind[DependencyKind["Other"] = 2] = "Other";
    })(AI.DependencyKind || (AI.DependencyKind = {}));
    var DependencyKind = AI.DependencyKind;
})(AI || (AI = {}));
var AI;
(function (AI) {
    "use strict";
    (function (DependencySourceType) {
        DependencySourceType[DependencySourceType["Undefined"] = 0] = "Undefined";
        DependencySourceType[DependencySourceType["Aic"] = 1] = "Aic";
        DependencySourceType[DependencySourceType["Apmc"] = 2] = "Apmc";
    })(AI.DependencySourceType || (AI.DependencySourceType = {}));
    var DependencySourceType = AI.DependencySourceType;
})(AI || (AI = {}));
/// <reference path="Domain.ts" />
/// <reference path="DataPointType.ts" />
/// <reference path="DependencyKind.ts" />
/// <reference path="DependencySourceType.ts" />
var AI;
(function (AI) {
    "use strict";
    var RemoteDependencyData = (function (_super) {
        __extends(RemoteDependencyData, _super);
        function RemoteDependencyData() {
            this.ver = 2;
            this.kind = AI.DataPointType.Aggregation;
            this.dependencyKind = AI.DependencyKind.Other;
            this.success = true;
            this.dependencySource = AI.DependencySourceType.Apmc;
            this.properties = {};
            _super.call(this);
        }
        return RemoteDependencyData;
    })(Microsoft.Telemetry.Domain);
    AI.RemoteDependencyData = RemoteDependencyData;
})(AI || (AI = {}));
/// <reference path="../Contracts/Generated/PageViewData.ts" />
/// <reference path="./Common/DataSanitizer.ts"/>
/// <reference path="../Contracts/Generated/RemoteDependencyData.ts"/>
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        var Telemetry;
        (function (Telemetry) {
            "use strict";
            var RemoteDependencyData = (function (_super) {
                __extends(RemoteDependencyData, _super);
                function RemoteDependencyData(id, name, commandName, value, success, resultCode) {
                    _super.call(this);
                    this.aiDataContract = {
                        id: ApplicationInsights.FieldType.Required,
                        ver: ApplicationInsights.FieldType.Required,
                        name: ApplicationInsights.FieldType.Default,
                        kind: ApplicationInsights.FieldType.Required,
                        value: ApplicationInsights.FieldType.Default,
                        count: ApplicationInsights.FieldType.Default,
                        min: ApplicationInsights.FieldType.Default,
                        max: ApplicationInsights.FieldType.Default,
                        stdDev: ApplicationInsights.FieldType.Default,
                        dependencyKind: ApplicationInsights.FieldType.Default,
                        success: ApplicationInsights.FieldType.Default,
                        async: ApplicationInsights.FieldType.Default,
                        dependencySource: ApplicationInsights.FieldType.Default,
                        commandName: ApplicationInsights.FieldType.Default,
                        dependencyTypeName: ApplicationInsights.FieldType.Default,
                        properties: ApplicationInsights.FieldType.Default,
                        resultCode: ApplicationInsights.FieldType.Default
                    };
                    this.id = id;
                    this.name = name;
                    this.commandName = commandName;
                    this.value = value;
                    this.success = success;
                    this.resultCode = resultCode + "";
                    this.dependencyKind = AI.DependencyKind.Http;
                    this.dependencyTypeName = "Ajax";
                }
                RemoteDependencyData.envelopeType = "Microsoft.ApplicationInsights.{0}.RemoteDependency";
                RemoteDependencyData.dataType = "RemoteDependencyData";
                return RemoteDependencyData;
            })(AI.RemoteDependencyData);
            Telemetry.RemoteDependencyData = RemoteDependencyData;
        })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="telemetrycontext.ts" />
/// <reference path="./Telemetry/Common/Data.ts"/>
/// <reference path="./Util.ts"/>
/// <reference path="./Contracts/Generated/SessionState.ts"/>
/// <reference path="./Telemetry/PageViewManager.ts"/>
/// <reference path="./Telemetry/PageVisitTimeManager.ts"/>
/// <reference path="./Telemetry/RemoteDependencyData.ts"/>
/// <reference path="./ajax/ajax.ts"/>
/// <reference path="./DataLossAnalyzer.ts"/>
/// <reference path="./SplitTest.ts"/>
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        "use strict";
        ApplicationInsights.Version = "0.22.9";
        var AppInsights = (function () {
            function AppInsights(config) {
                var _this = this;
                this._trackAjaxAttempts = 0;
                this.config = config || {};
                var defaults = AppInsights.defaultConfig;
                if (defaults !== undefined) {
                    for (var field in defaults) {
                        if (this.config[field] === undefined) {
                            this.config[field] = defaults[field];
                        }
                    }
                }
                ApplicationInsights._InternalLogging.verboseLogging = function () { return _this.config.verboseLogging; };
                ApplicationInsights._InternalLogging.enableDebugExceptions = function () { return _this.config.enableDebug; };
                var configGetters = {
                    instrumentationKey: function () { return _this.config.instrumentationKey; },
                    accountId: function () { return _this.config.accountId; },
                    sessionRenewalMs: function () { return _this.config.sessionRenewalMs; },
                    sessionExpirationMs: function () { return _this.config.sessionExpirationMs; },
                    endpointUrl: function () { return _this.config.endpointUrl; },
                    emitLineDelimitedJson: function () { return _this.config.emitLineDelimitedJson; },
                    maxBatchSizeInBytes: function () { return _this.config.maxBatchSizeInBytes; },
                    maxBatchInterval: function () { return _this.config.maxBatchInterval; },
                    disableTelemetry: function () { return _this.config.disableTelemetry; },
                    sampleRate: function () { return _this.config.samplingPercentage; },
                    cookieDomain: function () { return _this.config.cookieDomain; }
                };
                this.context = new ApplicationInsights.TelemetryContext(configGetters);
                this._pageViewManager = new Microsoft.ApplicationInsights.Telemetry.PageViewManager(this, this.config.overridePageViewDuration);
                this._eventTracking = new Timing("trackEvent");
                this._eventTracking.action = function (name, url, duration, properties, measurements) {
                    if (!measurements) {
                        measurements = { duration: duration };
                    }
                    else {
                        if (isNaN(measurements["duration"])) {
                            measurements["duration"] = duration;
                        }
                    }
                    var event = new ApplicationInsights.Telemetry.Event(name, properties, measurements);
                    var data = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.Event.dataType, event);
                    var envelope = new ApplicationInsights.Telemetry.Common.Envelope(data, ApplicationInsights.Telemetry.Event.envelopeType);
                    _this.context.track(envelope);
                };
                this._pageTracking = new Timing("trackPageView");
                this._pageTracking.action = function (name, url, duration, properties, measurements) {
                    _this.sendPageViewInternal(name, url, duration, properties, measurements);
                };
                this._pageVisitTimeManager = new ApplicationInsights.Telemetry.PageVisitTimeManager(function (pageName, pageUrl, pageVisitTime) { return _this.trackPageVisitTime(pageName, pageUrl, pageVisitTime); });
                if (!this.config.disableAjaxTracking) {
                    new Microsoft.ApplicationInsights.AjaxMonitor(this);
                }
            }
            AppInsights.prototype.sendPageViewInternal = function (name, url, duration, properties, measurements) {
                var pageView = new ApplicationInsights.Telemetry.PageView(name, url, duration, properties, measurements);
                var data = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.PageView.dataType, pageView);
                var envelope = new ApplicationInsights.Telemetry.Common.Envelope(data, ApplicationInsights.Telemetry.PageView.envelopeType);
                this.context.track(envelope);
                this._trackAjaxAttempts = 0;
            };
            AppInsights.prototype.sendPageViewPerformanceInternal = function (pageViewPerformance) {
                var pageViewPerformanceData = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.PageViewPerformance.dataType, pageViewPerformance);
                var pageViewPerformanceEnvelope = new ApplicationInsights.Telemetry.Common.Envelope(pageViewPerformanceData, ApplicationInsights.Telemetry.PageViewPerformance.envelopeType);
                this.context.track(pageViewPerformanceEnvelope);
            };
            AppInsights.prototype.startTrackPage = function (name) {
                try {
                    if (typeof name !== "string") {
                        name = window.document && window.document.title || "";
                    }
                    this._pageTracking.start(name);
                }
                catch (e) {
                    ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_StartTrackFailed, "startTrackPage failed, page view may not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
                }
            };
            AppInsights.prototype.stopTrackPage = function (name, url, properties, measurements) {
                try {
                    if (typeof name !== "string") {
                        name = window.document && window.document.title || "";
                    }
                    if (typeof url !== "string") {
                        url = window.location && window.location.href || "";
                    }
                    this._pageTracking.stop(name, url, properties, measurements);
                    if (this.config.autoTrackPageVisitTime) {
                        this._pageVisitTimeManager.trackPreviousPageVisit(name, url);
                    }
                }
                catch (e) {
                    ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_StopTrackFailed, "stopTrackPage failed, page view will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
                }
            };
            AppInsights.prototype.trackPageView = function (name, url, properties, measurements, duration) {
                try {
                    this._pageViewManager.trackPageView(name, url, properties, measurements, duration);
                    if (this.config.autoTrackPageVisitTime) {
                        this._pageVisitTimeManager.trackPreviousPageVisit(name, url);
                    }
                }
                catch (e) {
                    ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TrackPVFailed, "trackPageView failed, page view will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
                }
            };
            AppInsights.prototype.startTrackEvent = function (name) {
                try {
                    this._eventTracking.start(name);
                }
                catch (e) {
                    ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_StartTrackEventFailed, "startTrackEvent failed, event will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
                }
            };
            AppInsights.prototype.stopTrackEvent = function (name, properties, measurements) {
                try {
                    this._eventTracking.stop(name, undefined, properties, measurements);
                }
                catch (e) {
                    ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_StopTrackEventFailed, "stopTrackEvent failed, event will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
                }
            };
            AppInsights.prototype.trackEvent = function (name, properties, measurements) {
                try {
                    var eventTelemetry = new ApplicationInsights.Telemetry.Event(name, properties, measurements);
                    var data = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.Event.dataType, eventTelemetry);
                    var envelope = new ApplicationInsights.Telemetry.Common.Envelope(data, ApplicationInsights.Telemetry.Event.envelopeType);
                    this.context.track(envelope);
                }
                catch (e) {
                    ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TrackEventFailed, "trackEvent failed, event will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
                }
            };
            AppInsights.prototype.trackAjax = function (id, absoluteUrl, pathName, totalTime, success, resultCode) {
                if (this.config.maxAjaxCallsPerView === -1 ||
                    this._trackAjaxAttempts < this.config.maxAjaxCallsPerView) {
                    var dependency = new ApplicationInsights.Telemetry.RemoteDependencyData(id, absoluteUrl, pathName, totalTime, success, resultCode);
                    var dependencyData = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.RemoteDependencyData.dataType, dependency);
                    var envelope = new ApplicationInsights.Telemetry.Common.Envelope(dependencyData, ApplicationInsights.Telemetry.RemoteDependencyData.envelopeType);
                    this.context.track(envelope);
                }
                else if (this._trackAjaxAttempts === this.config.maxAjaxCallsPerView) {
                    ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_MaxAjaxPerPVExceeded, "Maximum ajax per page view limit reached, ajax monitoring is paused until the next trackPageView(). In order to increase the limit set the maxAjaxCallsPerView configuration parameter."));
                }
                ++this._trackAjaxAttempts;
            };
            AppInsights.prototype.trackException = function (exception, handledAt, properties, measurements) {
                try {
                    if (!ApplicationInsights.Util.isError(exception)) {
                        try {
                            throw new Error(exception);
                        }
                        catch (error) {
                            exception = error;
                        }
                    }
                    var exceptionTelemetry = new ApplicationInsights.Telemetry.Exception(exception, handledAt, properties, measurements);
                    var data = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.Exception.dataType, exceptionTelemetry);
                    var envelope = new ApplicationInsights.Telemetry.Common.Envelope(data, ApplicationInsights.Telemetry.Exception.envelopeType);
                    this.context.track(envelope);
                }
                catch (e) {
                    ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TrackExceptionFailed, "trackException failed, exception will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
                }
            };
            AppInsights.prototype.trackMetric = function (name, average, sampleCount, min, max, properties) {
                try {
                    var telemetry = new ApplicationInsights.Telemetry.Metric(name, average, sampleCount, min, max, properties);
                    var data = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.Metric.dataType, telemetry);
                    var envelope = new ApplicationInsights.Telemetry.Common.Envelope(data, ApplicationInsights.Telemetry.Metric.envelopeType);
                    this.context.track(envelope);
                }
                catch (e) {
                    ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TrackMetricFailed, "trackMetric failed, metric will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
                }
            };
            AppInsights.prototype.trackTrace = function (message, properties) {
                try {
                    var telemetry = new ApplicationInsights.Telemetry.Trace(message, properties);
                    var data = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.Trace.dataType, telemetry);
                    var envelope = new ApplicationInsights.Telemetry.Common.Envelope(data, ApplicationInsights.Telemetry.Trace.envelopeType);
                    this.context.track(envelope);
                }
                catch (e) {
                    ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TrackTraceFailed, "trackTrace failed, trace will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
                }
            };
            AppInsights.prototype.trackPageVisitTime = function (pageName, pageUrl, pageVisitTime) {
                var properties = { PageName: pageName, PageUrl: pageUrl };
                this.trackMetric("PageVisitTime", pageVisitTime, 1, pageVisitTime, pageVisitTime, properties);
            };
            AppInsights.prototype.flush = function () {
                try {
                    this.context._sender.triggerSend();
                }
                catch (e) {
                    ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FlushFailed, "flush failed, telemetry will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
                }
            };
            AppInsights.prototype.setAuthenticatedUserContext = function (authenticatedUserId, accountId) {
                try {
                    this.context.user.setAuthenticatedUserContext(authenticatedUserId, accountId);
                }
                catch (e) {
                    ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_SetAuthContextFailed, "Setting auth user context failed. " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
                }
            };
            AppInsights.prototype.clearAuthenticatedUserContext = function () {
                try {
                    this.context.user.clearAuthenticatedUserContext();
                }
                catch (e) {
                    ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_SetAuthContextFailed, "Clearing auth user context failed. " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
                }
            };
            AppInsights.prototype.SendCORSException = function (properties) {
                var exceptionData = Microsoft.ApplicationInsights.Telemetry.Exception.CreateSimpleException("Script error.", "Error", "unknown", "unknown", "The browser’s same-origin policy prevents us from getting the details of this exception.The exception occurred in a script loaded from an origin different than the web page.For cross- domain error reporting you can use crossorigin attribute together with appropriate CORS HTTP headers.For more information please see http://www.w3.org/TR/cors/.", 0, null);
                exceptionData.properties = properties;
                var data = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.Exception.dataType, exceptionData);
                var envelope = new ApplicationInsights.Telemetry.Common.Envelope(data, ApplicationInsights.Telemetry.Exception.envelopeType);
                this.context.track(envelope);
            };
            AppInsights.prototype._onerror = function (message, url, lineNumber, columnNumber, error) {
                try {
                    var properties = { url: url ? url : document.URL };
                    if (ApplicationInsights.Util.isCrossOriginError(message, url, lineNumber, columnNumber, error)) {
                        this.SendCORSException(properties);
                    }
                    else {
                        if (!ApplicationInsights.Util.isError(error)) {
                            var stack = "window.onerror@" + properties.url + ":" + lineNumber + ":" + (columnNumber || 0);
                            error = new Error(message);
                            error["stack"] = stack;
                        }
                        this.trackException(error, null, properties);
                    }
                }
                catch (exception) {
                    var errorString = error ? (error.name + ", " + error.message) : "null";
                    var exceptionDump = ApplicationInsights.Util.dump(exception);
                    ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_ExceptionWhileLoggingError, "_onerror threw exception while logging error, error will not be collected: " + ApplicationInsights.Util.getExceptionName(exception), { exception: exceptionDump, errorString: errorString }));
                }
            };
            return AppInsights;
        })();
        ApplicationInsights.AppInsights = AppInsights;
        var Timing = (function () {
            function Timing(name) {
                this._name = name;
                this._events = {};
            }
            Timing.prototype.start = function (name) {
                if (typeof this._events[name] !== "undefined") {
                    ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_StartCalledMoreThanOnce, "start was called more than once for this event without calling stop.", { name: this._name, key: name }));
                }
                this._events[name] = +new Date;
            };
            Timing.prototype.stop = function (name, url, properties, measurements) {
                var start = this._events[name];
                if (isNaN(start)) {
                    ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_StopCalledWithoutStart, "stop was called without a corresponding start.", { name: this._name, key: name }));
                }
                else {
                    var end = +new Date;
                    var duration = ApplicationInsights.Telemetry.PageViewPerformance.getDuration(start, end);
                    this.action(name, url, duration, properties, measurements);
                }
                delete this._events[name];
                this._events[name] = undefined;
            };
            return Timing;
        })();
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="PageViewData.ts" />
var AI;
(function (AI) {
    "use strict";
    var AjaxCallData = (function (_super) {
        __extends(AjaxCallData, _super);
        function AjaxCallData() {
            this.ver = 2;
            this.properties = {};
            this.measurements = {};
            _super.call(this);
        }
        return AjaxCallData;
    })(AI.PageViewData);
    AI.AjaxCallData = AjaxCallData;
})(AI || (AI = {}));
/// <reference path="Domain.ts" />
var AI;
(function (AI) {
    "use strict";
    var RequestData = (function (_super) {
        __extends(RequestData, _super);
        function RequestData() {
            this.ver = 2;
            this.properties = {};
            this.measurements = {};
            _super.call(this);
        }
        return RequestData;
    })(Microsoft.Telemetry.Domain);
    AI.RequestData = RequestData;
})(AI || (AI = {}));
/// <reference path="Domain.ts" />
/// <reference path="SessionState.ts" />
var AI;
(function (AI) {
    "use strict";
    var SessionStateData = (function (_super) {
        __extends(SessionStateData, _super);
        function SessionStateData() {
            this.ver = 2;
            this.state = AI.SessionState.Start;
            _super.call(this);
        }
        return SessionStateData;
    })(Microsoft.Telemetry.Domain);
    AI.SessionStateData = SessionStateData;
})(AI || (AI = {}));
/// <reference path="appinsights.ts" />
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        "use strict";
        var Initialization = (function () {
            function Initialization(snippet) {
                snippet.queue = snippet.queue || [];
                var config = snippet.config || {};
                if (config && !config.instrumentationKey) {
                    config = snippet;
                    if (config["iKey"]) {
                        Microsoft.ApplicationInsights.Version = "0.10.0.0";
                        config.instrumentationKey = config["iKey"];
                    }
                    else if (config["applicationInsightsId"]) {
                        Microsoft.ApplicationInsights.Version = "0.7.2.0";
                        config.instrumentationKey = config["applicationInsightsId"];
                    }
                    else {
                        throw new Error("Cannot load Application Insights SDK, no instrumentationKey was provided.");
                    }
                }
                config = Initialization.getDefaultConfig(config);
                this.snippet = snippet;
                this.config = config;
            }
            Initialization.prototype.loadAppInsights = function () {
                var appInsights = new Microsoft.ApplicationInsights.AppInsights(this.config);
                if (this.config["iKey"]) {
                    var originalTrackPageView = appInsights.trackPageView;
                    appInsights.trackPageView = function (pagePath, properties, measurements) {
                        originalTrackPageView.apply(appInsights, [null, pagePath, properties, measurements]);
                    };
                }
                var legacyPageView = "logPageView";
                if (typeof this.snippet[legacyPageView] === "function") {
                    appInsights[legacyPageView] = function (pagePath, properties, measurements) {
                        appInsights.trackPageView(null, pagePath, properties, measurements);
                    };
                }
                var legacyEvent = "logEvent";
                if (typeof this.snippet[legacyEvent] === "function") {
                    appInsights[legacyEvent] = function (name, properties, measurements) {
                        appInsights.trackEvent(name, properties, measurements);
                    };
                }
                return appInsights;
            };
            Initialization.prototype.emptyQueue = function () {
                try {
                    if (Microsoft.ApplicationInsights.Util.isArray(this.snippet.queue)) {
                        var length = this.snippet.queue.length;
                        for (var i = 0; i < length; i++) {
                            var call = this.snippet.queue[i];
                            call();
                        }
                        this.snippet.queue = undefined;
                        delete this.snippet.queue;
                    }
                }
                catch (exception) {
                    var properties = {};
                    if (exception && typeof exception.toString === "function") {
                        properties.exception = exception.toString();
                    }
                    var message = new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedToSendQueuedTelemetry, "Failed to send queued telemetry", properties);
                    Microsoft.ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, message);
                }
            };
            Initialization.prototype.pollInteralLogs = function (appInsightsInstance) {
                return setInterval(function () {
                    var queue = Microsoft.ApplicationInsights._InternalLogging.queue;
                    var length = queue.length;
                    for (var i = 0; i < length; i++) {
                        appInsightsInstance.trackTrace(queue[i].message);
                    }
                    queue.length = 0;
                }, this.config.diagnosticLogInterval);
            };
            Initialization.prototype.addHousekeepingBeforeUnload = function (appInsightsInstance) {
                // Add callback to push events when the user navigates away
                if (!appInsightsInstance.config.disableFlushOnBeforeUnload && ('onbeforeunload' in window)) {
                    var performHousekeeping = function () {
                        appInsightsInstance.context._sender.triggerSend();
                        appInsightsInstance.context._sessionManager.backup();
                    };
                    if (!Microsoft.ApplicationInsights.Util.addEventHandler('beforeunload', performHousekeeping)) {
                        Microsoft.ApplicationInsights._InternalLogging.throwInternalNonUserActionable(Microsoft.ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedToAddHandlerForOnBeforeUnload, 'Could not add handler for beforeunload'));
                    }
                }
            };
            Initialization.getDefaultConfig = function (config) {
                if (!config) {
                    config = {};
                }
                config.endpointUrl = config.endpointUrl || "//dc.services.visualstudio.com/v2/track";
                config.sessionRenewalMs = 30 * 60 * 1000;
                config.sessionExpirationMs = 24 * 60 * 60 * 1000;
                config.maxBatchSizeInBytes = config.maxBatchSizeInBytes > 0 ? config.maxBatchSizeInBytes : 1000000;
                config.maxBatchInterval = !isNaN(config.maxBatchInterval) ? config.maxBatchInterval : 15000;
                config.enableDebug = ApplicationInsights.Util.stringToBoolOrDefault(config.enableDebug);
                config.disableExceptionTracking = (config.disableExceptionTracking !== undefined && config.disableExceptionTracking !== null) ?
                    ApplicationInsights.Util.stringToBoolOrDefault(config.disableExceptionTracking) :
                    false;
                config.disableTelemetry = ApplicationInsights.Util.stringToBoolOrDefault(config.disableTelemetry);
                config.verboseLogging = ApplicationInsights.Util.stringToBoolOrDefault(config.verboseLogging);
                config.emitLineDelimitedJson = ApplicationInsights.Util.stringToBoolOrDefault(config.emitLineDelimitedJson);
                config.diagnosticLogInterval = config.diagnosticLogInterval || 10000;
                config.autoTrackPageVisitTime = ApplicationInsights.Util.stringToBoolOrDefault(config.autoTrackPageVisitTime);
                if (isNaN(config.samplingPercentage) || config.samplingPercentage <= 0 || config.samplingPercentage >= 100) {
                    config.samplingPercentage = 100;
                }
                config.disableAjaxTracking = (config.disableAjaxTracking !== undefined && config.disableAjaxTracking !== null) ?
                    ApplicationInsights.Util.stringToBoolOrDefault(config.disableAjaxTracking) :
                    false;
                config.maxAjaxCallsPerView = !isNaN(config.maxAjaxCallsPerView) ? config.maxAjaxCallsPerView : 500;
                config.disableCorrelationHeaders = (config.disableCorrelationHeaders !== undefined && config.disableCorrelationHeaders !== null) ?
                    ApplicationInsights.Util.stringToBoolOrDefault(config.disableCorrelationHeaders) :
                    true;
                config.disableFlushOnBeforeUnload = (config.disableFlushOnBeforeUnload !== undefined && config.disableFlushOnBeforeUnload !== null) ?
                    ApplicationInsights.Util.stringToBoolOrDefault(config.disableFlushOnBeforeUnload) :
                    false;
                return config;
            };
            return Initialization;
        })();
        ApplicationInsights.Initialization = Initialization;
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
/// <reference path="initialization.ts" />
var Microsoft;
(function (Microsoft) {
    var ApplicationInsights;
    (function (ApplicationInsights) {
        "use strict";
        try {
            if (typeof window !== "undefined" && typeof JSON !== "undefined") {
                var aiName = "appInsights";
                if (window[aiName] === undefined) {
                    Microsoft.ApplicationInsights.AppInsights.defaultConfig = Microsoft.ApplicationInsights.Initialization.getDefaultConfig();
                }
                else {
                    var snippet = window[aiName] || {};
                    var init = new Microsoft.ApplicationInsights.Initialization(snippet);
                    var appInsightsLocal = init.loadAppInsights();
                    for (var field in appInsightsLocal) {
                        snippet[field] = appInsightsLocal[field];
                    }
                    init.emptyQueue();
                    init.pollInteralLogs(appInsightsLocal);
                    init.addHousekeepingBeforeUnload(appInsightsLocal);
                }
            }
        }
        catch (e) {
            Microsoft.ApplicationInsights._InternalLogging.warnToConsole('Failed to initialize AppInsights JS SDK: ' + e.message);
        }
    })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
})(Microsoft || (Microsoft = {}));
WebApi/GTech.Solution.Api.WebSite/scripts/ai.0.22.9-build00167.min.js
New file
@@ -0,0 +1 @@
var __extends,AI,Microsoft;(function(n){var t;(function(n){var r,t,i,u;(function(n){n[n.CRITICAL=0]="CRITICAL";n[n.WARNING=1]="WARNING"})(n.LoggingSeverity||(n.LoggingSeverity={}));r=n.LoggingSeverity,function(n){n[n.NONUSRACT_BrowserDoesNotSupportLocalStorage=0]="NONUSRACT_BrowserDoesNotSupportLocalStorage";n[n.NONUSRACT_BrowserCannotReadLocalStorage=1]="NONUSRACT_BrowserCannotReadLocalStorage";n[n.NONUSRACT_BrowserCannotReadSessionStorage=2]="NONUSRACT_BrowserCannotReadSessionStorage";n[n.NONUSRACT_BrowserCannotWriteLocalStorage=3]="NONUSRACT_BrowserCannotWriteLocalStorage";n[n.NONUSRACT_BrowserCannotWriteSessionStorage=4]="NONUSRACT_BrowserCannotWriteSessionStorage";n[n.NONUSRACT_BrowserFailedRemovalFromLocalStorage=5]="NONUSRACT_BrowserFailedRemovalFromLocalStorage";n[n.NONUSRACT_BrowserFailedRemovalFromSessionStorage=6]="NONUSRACT_BrowserFailedRemovalFromSessionStorage";n[n.NONUSRACT_CannotSendEmptyTelemetry=7]="NONUSRACT_CannotSendEmptyTelemetry";n[n.NONUSRACT_ClientPerformanceMathError=8]="NONUSRACT_ClientPerformanceMathError";n[n.NONUSRACT_ErrorParsingAISessionCookie=9]="NONUSRACT_ErrorParsingAISessionCookie";n[n.NONUSRACT_ErrorPVCalc=10]="NONUSRACT_ErrorPVCalc";n[n.NONUSRACT_ExceptionWhileLoggingError=11]="NONUSRACT_ExceptionWhileLoggingError";n[n.NONUSRACT_FailedAddingTelemetryToBuffer=12]="NONUSRACT_FailedAddingTelemetryToBuffer";n[n.NONUSRACT_FailedMonitorAjaxAbort=13]="NONUSRACT_FailedMonitorAjaxAbort";n[n.NONUSRACT_FailedMonitorAjaxDur=14]="NONUSRACT_FailedMonitorAjaxDur";n[n.NONUSRACT_FailedMonitorAjaxOpen=15]="NONUSRACT_FailedMonitorAjaxOpen";n[n.NONUSRACT_FailedMonitorAjaxRSC=16]="NONUSRACT_FailedMonitorAjaxRSC";n[n.NONUSRACT_FailedMonitorAjaxSend=17]="NONUSRACT_FailedMonitorAjaxSend";n[n.NONUSRACT_FailedToAddHandlerForOnBeforeUnload=18]="NONUSRACT_FailedToAddHandlerForOnBeforeUnload";n[n.NONUSRACT_FailedToSendQueuedTelemetry=19]="NONUSRACT_FailedToSendQueuedTelemetry";n[n.NONUSRACT_FailedToReportDataLoss=20]="NONUSRACT_FailedToReportDataLoss";n[n.NONUSRACT_FlushFailed=21]="NONUSRACT_FlushFailed";n[n.NONUSRACT_MessageLimitPerPVExceeded=22]="NONUSRACT_MessageLimitPerPVExceeded";n[n.NONUSRACT_MissingRequiredFieldSpecification=23]="NONUSRACT_MissingRequiredFieldSpecification";n[n.NONUSRACT_NavigationTimingNotSupported=24]="NONUSRACT_NavigationTimingNotSupported";n[n.NONUSRACT_OnError=25]="NONUSRACT_OnError";n[n.NONUSRACT_SessionRenewalDateIsZero=26]="NONUSRACT_SessionRenewalDateIsZero";n[n.NONUSRACT_SenderNotInitialized=27]="NONUSRACT_SenderNotInitialized";n[n.NONUSRACT_StartTrackEventFailed=28]="NONUSRACT_StartTrackEventFailed";n[n.NONUSRACT_StopTrackEventFailed=29]="NONUSRACT_StopTrackEventFailed";n[n.NONUSRACT_StartTrackFailed=30]="NONUSRACT_StartTrackFailed";n[n.NONUSRACT_StopTrackFailed=31]="NONUSRACT_StopTrackFailed";n[n.NONUSRACT_TelemetrySampledAndNotSent=32]="NONUSRACT_TelemetrySampledAndNotSent";n[n.NONUSRACT_TrackEventFailed=33]="NONUSRACT_TrackEventFailed";n[n.NONUSRACT_TrackExceptionFailed=34]="NONUSRACT_TrackExceptionFailed";n[n.NONUSRACT_TrackMetricFailed=35]="NONUSRACT_TrackMetricFailed";n[n.NONUSRACT_TrackPVFailed=36]="NONUSRACT_TrackPVFailed";n[n.NONUSRACT_TrackPVFailedCalc=37]="NONUSRACT_TrackPVFailedCalc";n[n.NONUSRACT_TrackTraceFailed=38]="NONUSRACT_TrackTraceFailed";n[n.NONUSRACT_TransmissionFailed=39]="NONUSRACT_TransmissionFailed";n[n.USRACT_CannotSerializeObject=40]="USRACT_CannotSerializeObject";n[n.USRACT_CannotSerializeObjectNonSerializable=41]="USRACT_CannotSerializeObjectNonSerializable";n[n.USRACT_CircularReferenceDetected=42]="USRACT_CircularReferenceDetected";n[n.USRACT_ClearAuthContextFailed=43]="USRACT_ClearAuthContextFailed";n[n.USRACT_ExceptionTruncated=44]="USRACT_ExceptionTruncated";n[n.USRACT_IllegalCharsInName=45]="USRACT_IllegalCharsInName";n[n.USRACT_ItemNotInArray=46]="USRACT_ItemNotInArray";n[n.USRACT_MaxAjaxPerPVExceeded=47]="USRACT_MaxAjaxPerPVExceeded";n[n.USRACT_MessageTruncated=48]="USRACT_MessageTruncated";n[n.USRACT_NameTooLong=49]="USRACT_NameTooLong";n[n.USRACT_SampleRateOutOfRange=50]="USRACT_SampleRateOutOfRange";n[n.USRACT_SetAuthContextFailed=51]="USRACT_SetAuthContextFailed";n[n.USRACT_SetAuthContextFailedAccountName=52]="USRACT_SetAuthContextFailedAccountName";n[n.USRACT_StringValueTooLong=53]="USRACT_StringValueTooLong";n[n.USRACT_StartCalledMoreThanOnce=54]="USRACT_StartCalledMoreThanOnce";n[n.USRACT_StopCalledWithoutStart=55]="USRACT_StopCalledWithoutStart";n[n.USRACT_TelemetryInitializerFailed=56]="USRACT_TelemetryInitializerFailed";n[n.USRACT_TrackArgumentsNotSpecified=57]="USRACT_TrackArgumentsNotSpecified";n[n.USRACT_UrlTooLong=58]="USRACT_UrlTooLong"}(n._InternalMessageId||(n._InternalMessageId={}));t=n._InternalMessageId;i=function(){function n(i,r,u){this.message=t[i].toString();this.messageId=i;var f=(r?" message:"+n.sanitizeDiagnosticText(r):"")+(u?" props:"+n.sanitizeDiagnosticText(JSON.stringify(u)):"");this.message+=f}return n.sanitizeDiagnosticText=function(n){return'"'+n.replace(/\"/g,"")+'"'},n}();n._InternalLogMessage=i;u=function(){function u(){}return u.throwInternalNonUserActionable=function(n,t){if(this.enableDebugExceptions())throw t;else typeof t=="undefined"||!t||typeof t.message!="undefined"&&(t.message=this.AiNonUserActionablePrefix+t.message,this.warnToConsole(t.message),this.logInternalMessage(n,t))},u.throwInternalUserActionable=function(n,t){if(this.enableDebugExceptions())throw t;else typeof t=="undefined"||!t||typeof t.message!="undefined"&&(t.message=this.AiUserActionablePrefix+t.message,this.warnToConsole(t.message),this.logInternalMessage(n,t))},u.warnToConsole=function(n){typeof console=="undefined"||!console||(typeof console.warn=="function"?console.warn(n):typeof console.log=="function"&&console.log(n))},u.resetInternalMessageCount=function(){this._messageCount=0},u.clearInternalMessageLoggedTypes=function(){var i,t;if(n.Util.canUseSessionStorage())for(i=n.Util.getSessionStorageKeys(),t=0;t<i.length;t++)i[t].indexOf(u.AIInternalMessagePrefix)===0&&n.Util.removeSessionStorage(i[t])},u.setMaxInternalMessageLimit=function(n){if(!n)throw new Error("limit cannot be undefined.");this.MAX_INTERNAL_MESSAGE_LIMIT=n},u.logInternalMessage=function(f,e){var o,s,c,h,l;this._areInternalMessagesThrottled()||(o=!0,n.Util.canUseSessionStorage()&&(s=u.AIInternalMessagePrefix+t[e.messageId],c=n.Util.getSessionStorage(s),c?o=!1:n.Util.setSessionStorage(s,"1")),o&&((this.verboseLogging()||f===r.CRITICAL)&&(this.queue.push(e),this._messageCount++),this._messageCount==this.MAX_INTERNAL_MESSAGE_LIMIT&&(h="Internal events throttle limit per PageView reached for this app.",l=new i(t.NONUSRACT_MessageLimitPerPVExceeded,h),this.queue.push(l),this.warnToConsole(h))))},u._areInternalMessagesThrottled=function(){return this._messageCount>=this.MAX_INTERNAL_MESSAGE_LIMIT},u.AiUserActionablePrefix="AI: ",u.AIInternalMessagePrefix="AITR_",u.AiNonUserActionablePrefix="AI (Internal): ",u.enableDebugExceptions=function(){return!1},u.verboseLogging=function(){return!1},u.queue=[],u.MAX_INTERNAL_MESSAGE_LIMIT=25,u._messageCount=0,u}();n._InternalLogging=u})(t=n.ApplicationInsights||(n.ApplicationInsights={}))})(Microsoft||(Microsoft={})),function(n){var t;(function(n){var t,i,r;(function(n){n[n.LocalStorage=0]="LocalStorage";n[n.SessionStorage=1]="SessionStorage"})(t||(t={}));i=function(){function i(){}return i._getLocalStorageObject=function(){return i._getVerifiedStorageObject(t.LocalStorage)},i._getVerifiedStorageObject=function(n){var i=null,u,r;try{r=new Date;i=n===t.LocalStorage?window.localStorage:window.sessionStorage;i.setItem(r,r);u=i.getItem(r)!=r;i.removeItem(r);u&&(i=null)}catch(f){i=null}return i},i.canUseLocalStorage=function(){return!!i._getLocalStorageObject()},i.getStorage=function(t){var r=i._getLocalStorageObject(),f;if(r!==null)try{return r.getItem(t)}catch(u){f=new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_BrowserCannotReadLocalStorage,"Browser failed read of local storage. "+i.getExceptionName(u),{exception:i.dump(u)});n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.WARNING,f)}return null},i.setStorage=function(t,r){var u=i._getLocalStorageObject(),e;if(u!==null)try{return u.setItem(t,r),!0}catch(f){e=new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_BrowserCannotWriteLocalStorage,"Browser failed write to local storage. "+i.getExceptionName(f),{exception:i.dump(f)});n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.WARNING,e)}return!1},i.removeStorage=function(t){var r=i._getLocalStorageObject(),f;if(r!==null)try{return r.removeItem(t),!0}catch(u){f=new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_BrowserFailedRemovalFromLocalStorage,"Browser failed removal of local storage item. "+i.getExceptionName(u),{exception:i.dump(u)});n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.WARNING,f)}return!1},i._getSessionStorageObject=function(){return i._getVerifiedStorageObject(t.SessionStorage)},i.canUseSessionStorage=function(){return!!i._getSessionStorageObject()},i.getSessionStorageKeys=function(){var n=[],t;if(i.canUseSessionStorage())for(t in window.sessionStorage)n.push(t);return n},i.getSessionStorage=function(t){var r=i._getSessionStorageObject(),f;if(r!==null)try{return r.getItem(t)}catch(u){f=new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_BrowserCannotReadSessionStorage,"Browser failed read of session storage. "+i.getExceptionName(u),{exception:i.dump(u)});n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,f)}return null},i.setSessionStorage=function(t,r){var u=i._getSessionStorageObject(),e;if(u!==null)try{return u.setItem(t,r),!0}catch(f){e=new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_BrowserCannotWriteSessionStorage,"Browser failed write to session storage. "+i.getExceptionName(f),{exception:i.dump(f)});n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,e)}return!1},i.removeSessionStorage=function(t){var r=i._getSessionStorageObject(),f;if(r!==null)try{return r.removeItem(t),!0}catch(u){f=new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_BrowserFailedRemovalFromSessionStorage,"Browser failed removal of session storage item. "+i.getExceptionName(u),{exception:i.dump(u)});n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,f)}return!1},i.setCookie=function(n,t,r){var u="";r&&(u=";domain="+r);i.document.cookie=n+"="+t+u+";path=/"},i.stringToBoolOrDefault=function(n){return n?n.toString().toLowerCase()==="true":!1},i.getCookie=function(n){var e="",f,u,r,t;if(n&&n.length)for(f=n+"=",u=i.document.cookie.split(";"),r=0;r<u.length;r++)if(t=u[r],t=i.trim(t),t&&t.indexOf(f)===0){e=t.substring(f.length,u[r].length);break}return e},i.deleteCookie=function(n){i.document.cookie=n+"=;path=/;expires=Thu, 01 Jan 1970 00:00:01 GMT;"},i.trim=function(n){return typeof n!="string"?n:n.replace(/^\s+|\s+$/g,"")},i.newId=function(){for(var t="",n=Math.random()*1073741824,i;n>0;)i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(n%64),t+=i,n=Math.floor(n/64);return t},i.isArray=function(n){return Object.prototype.toString.call(n)==="[object Array]"},i.isError=function(n){return Object.prototype.toString.call(n)==="[object Error]"},i.isDate=function(n){return Object.prototype.toString.call(n)==="[object Date]"},i.toISOStringForIE8=function(n){if(i.isDate(n)){function t(n){var t=String(n);return t.length===1&&(t="0"+t),t}return Date.prototype.toISOString?n.toISOString():n.getUTCFullYear()+"-"+t(n.getUTCMonth()+1)+"-"+t(n.getUTCDate())+"T"+t(n.getUTCHours())+":"+t(n.getUTCMinutes())+":"+t(n.getUTCSeconds())+"."+String((n.getUTCMilliseconds()/1e3).toFixed(3)).slice(2,5)+"Z"}},i.getIEVersion=function(n){n===void 0&&(n=null);var t=n?n.toLowerCase():navigator.userAgent.toLowerCase();return t.indexOf("msie")!=-1?parseInt(t.split("msie")[1]):null},i.msToTimeSpan=function(n){(isNaN(n)||n<0)&&(n=0);var t=""+n%1e3,i=""+Math.floor(n/1e3)%60,r=""+Math.floor(n/6e4)%60,u=""+Math.floor(n/36e5)%24;return t=t.length===1?"00"+t:t.length===2?"0"+t:t,i=i.length<2?"0"+i:i,r=r.length<2?"0"+r:r,u=u.length<2?"0"+u:u,u+":"+r+":"+i+"."+t},i.isCrossOriginError=function(n,t,i,r,u){return(n==="Script error."||n==="Script error")&&u===null},i.dump=function(n){var t=Object.prototype.toString.call(n),i=JSON.stringify(n);return t==="[object Error]"&&(i="{ stack: '"+n.stack+"', message: '"+n.message+"', name: '"+n.name+"'"),t+i},i.getExceptionName=function(n){var t=Object.prototype.toString.call(n);return t==="[object Error]"?n.name:""},i.addEventHandler=function(n,t){if(!window||typeof n!="string"||typeof t!="function")return!1;var i="on"+n;if(window.addEventListener)window.addEventListener(n,t,!1);else if(window.attachEvent)window.attachEvent.call(i,t);else return!1;return!0},i.document=typeof document!="undefined"?document:{},i.NotSpecified="not_specified",i}();n.Util=i;r=function(){function n(){}return n.parseUrl=function(t){return n.htmlAnchorElement||(n.htmlAnchorElement=n.document.createElement("a")),n.htmlAnchorElement.href=t,n.htmlAnchorElement},n.getAbsoluteUrl=function(t){var i,r=n.parseUrl(t);return r&&(i=r.href),i},n.getPathName=function(t){var i,r=n.parseUrl(t);return r&&(i=r.pathname),i},n.document=typeof document!="undefined"?document:{},n}();n.UrlHelper=r})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){"use strict";var t=function(){function n(){}return n.IsNullOrUndefined=function(n){return typeof n=="undefined"||n===null},n}(),i,r,u;n.extensions=t;i=function(){function n(){}return n.GetLength=function(n){var i=0,r;if(!t.IsNullOrUndefined(n)){r="";try{r=n.toString()}catch(u){}i=r.length;i=isNaN(i)?0:i}return i},n}();n.stringUtils=i;r=function(){function n(){}return n.Now=window.performance&&window.performance.now?function(){return performance.now()}:function(){return(new Date).getTime()},n.GetDuration=function(n,i){var r=null;return n===0||i===0||t.IsNullOrUndefined(n)||t.IsNullOrUndefined(i)||(r=i-n),r},n}();n.dateTime=r;u=function(){function n(){}return n.AttachEvent=function(n,i,r){var u=!1;return t.IsNullOrUndefined(n)||(t.IsNullOrUndefined(n.attachEvent)?t.IsNullOrUndefined(n.addEventListener)||(n.addEventListener(i,r,!1),u=!0):(n.attachEvent("on"+i,r),u=!0)),u},n.DetachEvent=function(n,i,r){t.IsNullOrUndefined(n)||(t.IsNullOrUndefined(n.detachEvent)?t.IsNullOrUndefined(n.removeEventListener)||n.removeEventListener(i,r,!1):n.detachEvent("on"+i,r))},n}();n.EventHelper=u})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){"use strict";var t=function(){function n(){this.openDone=!1;this.setRequestHeaderDone=!1;this.sendDone=!1;this.abortDone=!1;this.onreadystatechangeCallbackAttached=!1}return n}(),i;n.XHRMonitoringState=t;i=function(){function i(i){this.completed=!1;this.requestHeadersSize=null;this.ttfb=null;this.responseReceivingDuration=null;this.callbackDuration=null;this.ajaxTotalDuration=null;this.aborted=null;this.pageUrl=null;this.requestUrl=null;this.requestSize=0;this.method=null;this.status=null;this.requestSentTime=null;this.responseStartedTime=null;this.responseFinishedTime=null;this.callbackFinishedTime=null;this.endTime=null;this.originalOnreadystatechage=null;this.xhrMonitoringState=new t;this.clientFailure=0;this.CalculateMetrics=function(){var t=this;t.ajaxTotalDuration=n.dateTime.GetDuration(t.requestSentTime,t.responseFinishedTime)};this.id=i}return i.prototype.getAbsoluteUrl=function(){return this.requestUrl?n.UrlHelper.getAbsoluteUrl(this.requestUrl):null},i.prototype.getPathName=function(){return this.requestUrl?n.UrlHelper.getPathName(this.requestUrl):null},i}();n.ajaxRecord=i})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(t){"use strict";var i=function(){function i(n){this.currentWindowHost=window.location.host;this.appInsights=n;this.initialized=!1;this.Init()}return i.prototype.Init=function(){this.supportsMonitoring()&&(this.instrumentOpen(),this.instrumentSend(),this.instrumentAbort(),this.initialized=!0)},i.prototype.isMonitoredInstance=function(n,r){return this.initialized&&(r===!0||!t.extensions.IsNullOrUndefined(n.ajaxData))&&n[i.DisabledPropertyName]!==!0},i.prototype.supportsMonitoring=function(){var n=!1;return t.extensions.IsNullOrUndefined(XMLHttpRequest)||(n=!0),n},i.prototype.instrumentOpen=function(){var u=XMLHttpRequest.prototype.open,r=this;XMLHttpRequest.prototype.open=function(f,e,o){try{!r.isMonitoredInstance(this,!0)||this.ajaxData&&this.ajaxData.xhrMonitoringState.openDone||r.openHandler(this,f,e,o)}catch(s){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_FailedMonitorAjaxOpen,"Failed to monitor XMLHttpRequest.open, monitoring data for this ajax call may be incorrect.",{ajaxDiagnosticsMessage:i.getFailedAjaxDiagnosticsMessage(this),exception:n.ApplicationInsights.Util.dump(s)}))}return u.apply(this,arguments)}},i.prototype.openHandler=function(n,i,r){var u=new t.ajaxRecord(t.Util.newId());u.method=i;u.requestUrl=r;u.xhrMonitoringState.openDone=!0;n.ajaxData=u;this.attachToOnReadyStateChange(n)},i.getFailedAjaxDiagnosticsMessage=function(n){var i="";try{t.extensions.IsNullOrUndefined(n)||t.extensions.IsNullOrUndefined(n.ajaxData)||t.extensions.IsNullOrUndefined(n.ajaxData.requestUrl)||(i+="(url: '"+n.ajaxData.requestUrl+"')")}catch(r){}return i},i.prototype.instrumentSend=function(){var u=XMLHttpRequest.prototype.send,r=this;XMLHttpRequest.prototype.send=function(f){try{r.isMonitoredInstance(this)&&!this.ajaxData.xhrMonitoringState.sendDone&&r.sendHandler(this,f)}catch(e){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_FailedMonitorAjaxSend,"Failed to monitor XMLHttpRequest, monitoring data for this ajax call may be incorrect.",{ajaxDiagnosticsMessage:i.getFailedAjaxDiagnosticsMessage(this),exception:n.ApplicationInsights.Util.dump(e)}))}return u.apply(this,arguments)}},i.prototype.sendHandler=function(n){n.ajaxData.requestSentTime=t.dateTime.Now();this.appInsights.config.disableCorrelationHeaders||t.UrlHelper.parseUrl(n.ajaxData.getAbsoluteUrl()).host!=this.currentWindowHost||n.setRequestHeader("x-ms-request-id",n.ajaxData.id);n.ajaxData.xhrMonitoringState.sendDone=!0},i.prototype.instrumentAbort=function(){var r=XMLHttpRequest.prototype.abort,u=this;XMLHttpRequest.prototype.abort=function(){try{u.isMonitoredInstance(this)&&!this.ajaxData.xhrMonitoringState.abortDone&&(this.ajaxData.aborted=1,this.ajaxData.xhrMonitoringState.abortDone=!0)}catch(f){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_FailedMonitorAjaxAbort,"Failed to monitor XMLHttpRequest.abort, monitoring data for this ajax call may be incorrect.",{ajaxDiagnosticsMessage:i.getFailedAjaxDiagnosticsMessage(this),exception:n.ApplicationInsights.Util.dump(f)}))}return r.apply(this,arguments)}},i.prototype.attachToOnReadyStateChange=function(r){var u=this;r.ajaxData.xhrMonitoringState.onreadystatechangeCallbackAttached=t.EventHelper.AttachEvent(r,"readystatechange",function(){try{if(u.isMonitoredInstance(r)&&r.readyState===4)u.onAjaxComplete(r)}catch(f){var e=n.ApplicationInsights.Util.dump(f);e&&e.toLowerCase().indexOf("c00c023f")!=-1||t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_FailedMonitorAjaxRSC,"Failed to monitor XMLHttpRequest 'readystatechange' event handler, monitoring data for this ajax call may be incorrect.",{ajaxDiagnosticsMessage:i.getFailedAjaxDiagnosticsMessage(r),exception:n.ApplicationInsights.Util.dump(f)}))}})},i.prototype.onAjaxComplete=function(n){n.ajaxData.responseFinishedTime=t.dateTime.Now();n.ajaxData.status=n.status;n.ajaxData.CalculateMetrics();n.ajaxData.ajaxTotalDuration<0?t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.WARNING,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_FailedMonitorAjaxDur,"Failed to calculate the duration of the ajax call, monitoring data for this ajax call won't be sent.",{ajaxDiagnosticsMessage:i.getFailedAjaxDiagnosticsMessage(n),requestSentTime:n.ajaxData.requestSentTime,responseFinishedTime:n.ajaxData.responseFinishedTime})):(this.appInsights.trackAjax(n.ajaxData.id,n.ajaxData.getAbsoluteUrl(),n.ajaxData.getPathName(),n.ajaxData.ajaxTotalDuration,+n.ajaxData.status>=200&&+n.ajaxData.status<400,+n.ajaxData.status),n.ajaxData=null)},i.instrumentedByAppInsightsName="InstrumentedByAppInsights",i.DisabledPropertyName="Microsoft_ApplicationInsights_BypassAjaxInstrumentation",i}();t.AjaxMonitor=i})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){var t=function(){function n(){}return n.prototype.getHashCodeScore=function(t){var i=this.getHashCode(t)/n.INT_MAX_VALUE;return i*100},n.prototype.getHashCode=function(t){var i,r;if(t=="")return 0;while(t.length<n.MIN_INPUT_LENGTH)t=t.concat(t);for(i=5381,r=0;r<t.length;++r)i=(i<<5)+i+t.charCodeAt(r),i=i&i;return Math.abs(i)},n.INT_MAX_VALUE=2147483647,n.MIN_INPUT_LENGTH=8,n}();n.HashCodeScoreGenerator=t})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){"use strict";(function(n){n[n.Default=0]="Default";n[n.Required=1]="Required";n[n.Array=2]="Array";n[n.Hidden=4]="Hidden"})(n.FieldType||(n.FieldType={}));var t=n.FieldType,i=function(){function i(){}return i.serialize=function(n){var t=i._serializeObject(n,"root");return JSON.stringify(t)},i._serializeObject=function(r,u){var s="__aiCircularRefCheck",e={},f,c;if(!r)return n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.USRACT_CannotSerializeObject,"cannot serialize object because it is null or undefined",{name:u})),e;if(r[s])return n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_CircularReferenceDetected,"Circular reference detected while serializing object",{name:u})),e;if(!r.aiDataContract){if(u==="measurements")e=i._serializeStringMap(r,"number",u);else if(u==="properties")e=i._serializeStringMap(r,"string",u);else if(u==="tags")e=i._serializeStringMap(r,"string",u);else if(n.Util.isArray(r))e=i._serializeArray(r,u);else{n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_CannotSerializeObjectNonSerializable,"Attempting to serialize an object which does not implement ISerializable",{name:u}));try{JSON.stringify(r);e=r}catch(h){n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.CRITICAL,h&&typeof h.toString=="function"?h.toString():"Error serializing object")}}return e}r[s]=!0;for(f in r.aiDataContract){var o=r.aiDataContract[f],a=typeof o=="function"?o()&t.Required:o&t.Required,v=typeof o=="function"?o()&t.Hidden:o&t.Hidden,l=o&t.Array,y=r[f]!==undefined,p=typeof r[f]=="object"&&r[f]!==null;if(a&&!y&&!l){n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_MissingRequiredFieldSpecification,"Missing required field specification. The field is required but not present on source",{field:f,name:u}));continue}v||(c=p?l?i._serializeArray(r[f],f):i._serializeObject(r[f],f):r[f],c!==undefined&&(e[f]=c))}return delete r[s],e},i._serializeArray=function(t,r){var f=undefined,u,e,o;if(!!t)if(n.Util.isArray(t))for(f=[],u=0;u<t.length;u++)e=t[u],o=i._serializeObject(e,r+"["+u+"]"),f.push(o);else n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.USRACT_ItemNotInArray,"This field was specified as an array in the contract but the item is not an array.\r\n",{name:r}));return f},i._serializeStringMap=function(t,i,r){var u=undefined,f,e,o;if(t){u={};for(f in t)e=t[f],i==="string"?u[f]=e===undefined?"undefined":e===null?"null":e.toString?e.toString():"invalid field: toString() is not defined.":i==="number"?e===undefined?u[f]="undefined":e===null?u[f]="null":(o=parseFloat(e),u[f]=isNaN(o)?"NaN":o):(u[f]="invalid field: "+r+" is of unknown type.",n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.CRITICAL,u[f]))}return u},i}();n.Serializer=i})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){"use strict";var t=function(){function n(){}return n}();n.Base=t})(t=n.Telemetry||(n.Telemetry={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){"use strict";var t=function(){function n(){this.ver=1;this.sampleRate=100;this.tags={}}return n}();n.Envelope=t})(t=n.Telemetry||(n.Telemetry={}))}(Microsoft||(Microsoft={}));__extends=this&&this.__extends||function(n,t){function r(){this.constructor=n}for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i]);r.prototype=t.prototype;n.prototype=new r},function(n){var t;(function(t){var i;(function(i){var r;(function(i){"use strict";var r=function(n){function i(i,r){var u=this;n.call(this);this.name=r;this.data=i;this.time=t.Util.toISOStringForIE8(new Date);this.aiDataContract={time:t.FieldType.Required,iKey:t.FieldType.Required,name:t.FieldType.Required,sampleRate:function(){return u.sampleRate==100?t.FieldType.Hidden:t.FieldType.Required},tags:t.FieldType.Required,data:t.FieldType.Required}}return __extends(i,n),i}(n.Telemetry.Envelope);i.Envelope=r})(r=i.Common||(i.Common={}))})(i=t.Telemetry||(t.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(t){var i;(function(t){var i;(function(t){"use strict";var i=function(n){function t(){n.apply(this,arguments);this.aiDataContract={}}return __extends(t,n),t}(n.Telemetry.Base);t.Base=i})(i=t.Common||(t.Common={}))})(i=t.Telemetry||(t.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){"use strict";var t=function(){function n(){this.applicationVersion="ai.application.ver";this.applicationBuild="ai.application.build";this.applicationTypeId="ai.application.typeId";this.applicationId="ai.application.applicationId";this.deviceId="ai.device.id";this.deviceIp="ai.device.ip";this.deviceLanguage="ai.device.language";this.deviceLocale="ai.device.locale";this.deviceModel="ai.device.model";this.deviceNetwork="ai.device.network";this.deviceNetworkName="ai.device.networkName";this.deviceOEMName="ai.device.oemName";this.deviceOS="ai.device.os";this.deviceOSVersion="ai.device.osVersion";this.deviceRoleInstance="ai.device.roleInstance";this.deviceRoleName="ai.device.roleName";this.deviceScreenResolution="ai.device.screenResolution";this.deviceType="ai.device.type";this.deviceMachineName="ai.device.machineName";this.deviceVMName="ai.device.vmName";this.locationIp="ai.location.ip";this.operationId="ai.operation.id";this.operationName="ai.operation.name";this.operationParentId="ai.operation.parentId";this.operationRootId="ai.operation.rootId";this.operationSyntheticSource="ai.operation.syntheticSource";this.operationIsSynthetic="ai.operation.isSynthetic";this.operationCorrelationVector="ai.operation.correlationVector";this.sessionId="ai.session.id";this.sessionIsFirst="ai.session.isFirst";this.sessionIsNew="ai.session.isNew";this.userAccountAcquisitionDate="ai.user.accountAcquisitionDate";this.userAccountId="ai.user.accountId";this.userAgent="ai.user.userAgent";this.userId="ai.user.id";this.userStoreRegion="ai.user.storeRegion";this.userAuthUserId="ai.user.authUserId";this.userAnonymousUserAcquisitionDate="ai.user.anonUserAcquisitionDate";this.userAuthenticatedUserAcquisitionDate="ai.user.authUserAcquisitionDate";this.sampleRate="ai.sample.sampleRate";this.cloudName="ai.cloud.name";this.cloudRoleVer="ai.cloud.roleVer";this.cloudEnvironment="ai.cloud.environment";this.cloudLocation="ai.cloud.location";this.cloudDeploymentUnit="ai.cloud.deploymentUnit";this.serverDeviceOS="ai.serverDevice.os";this.serverDeviceOSVer="ai.serverDevice.osVer";this.internalSdkVersion="ai.internal.sdkVersion";this.internalAgentVersion="ai.internal.agentVersion";this.internalDataCollectorReceivedTime="ai.internal.dataCollectorReceivedTime";this.internalProfileId="ai.internal.profileId";this.internalProfileClassId="ai.internal.profileClassId";this.internalAccountId="ai.internal.accountId";this.internalApplicationName="ai.internal.applicationName";this.internalInstrumentationKey="ai.internal.instrumentationKey";this.internalTelemetryItemId="ai.internal.telemetryItemId";this.internalApplicationType="ai.internal.applicationType";this.internalRequestSource="ai.internal.requestSource";this.internalFlowType="ai.internal.flowType";this.internalIsAudit="ai.internal.isAudit";this.internalTrackingSourceId="ai.internal.trackingSourceId";this.internalTrackingType="ai.internal.trackingType";this.internalIsDiagnosticExample="ai.internal.isDiagnosticExample"}return n}();n.ContextTagKeys=t}(AI||(AI={})),function(n){var t;(function(n){var t;(function(n){"use strict";var t=function(){function n(){}return n}();n.Application=t})(t=n.Context||(n.Context={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){var t;(function(n){"use strict";var t=function(){function n(){this.id="browser";this.type="Browser"}return n}();n.Device=t})(t=n.Context||(n.Context={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){var t;(function(t){"use strict";var i=function(){function t(){this.sdkVersion="JavaScript:"+n.Version}return t}();t.Internal=i})(t=n.Context||(n.Context={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){var t;(function(n){"use strict";var t=function(){function n(){}return n}();n.Location=t})(t=n.Context||(n.Context={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){var t;(function(t){"use strict";var i=function(){function t(){this.id=n.Util.newId();window&&window.location&&window.location.pathname&&(this.name=window.location.pathname)}return t}();t.Operation=i})(t=n.Context||(n.Context={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){var t=function(){function t(){this.hashCodeGeneragor=new n.HashCodeScoreGenerator}return t.prototype.getSamplingScore=function(n){var t=new AI.ContextTagKeys;return n.tags[t.userId]?this.hashCodeGeneragor.getHashCodeScore(n.tags[t.userId]):n.tags[t.operationId]?this.hashCodeGeneragor.getHashCodeScore(n.tags[t.operationId]):Math.random()},t}();n.SamplingScoreGenerator=t})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){var t;(function(t){"use strict";var i=function(){function t(t){this.INT_MAX_VALUE=2147483647;(t>100||t<0)&&(n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_SampleRateOutOfRange,"Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.",{samplingRate:t})),this.sampleRate=100);this.sampleRate=t;this.samplingScoreGenerator=new n.SamplingScoreGenerator}return t.prototype.isSampledIn=function(n){if(this.sampleRate==100)return!0;var t=this.samplingScoreGenerator.getSamplingScore(n);return t<this.sampleRate},t}();t.Sample=i})(t=n.Context||(n.Context={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){"use strict";(function(n){n[n.Start=0]="Start";n[n.End=1]="End"})(n.SessionState||(n.SessionState={}));var t=n.SessionState}(AI||(AI={})),function(n){var t;(function(n){var t;(function(t){"use strict";var i=function(){function n(){}return n}(),r;t.Session=i;r=function(){function t(n){n||(n={});typeof n.sessionExpirationMs=="function"||(n.sessionExpirationMs=function(){return t.acquisitionSpan});typeof n.sessionRenewalMs=="function"||(n.sessionRenewalMs=function(){return t.renewalSpan});this.config=n;this.automaticSession=new i}return t.prototype.update=function(){this.automaticSession.id||this.initializeAutomaticSession();var n=+new Date,t=n-this.automaticSession.acquisitionDate>this.config.sessionExpirationMs(),i=n-this.automaticSession.renewalDate>this.config.sessionRenewalMs();t||i?(this.automaticSession.isFirst=undefined,this.renew()):(this.automaticSession.renewalDate=+new Date,this.setCookie(this.automaticSession.id,this.automaticSession.acquisitionDate,this.automaticSession.renewalDate))},t.prototype.backup=function(){this.setStorage(this.automaticSession.id,this.automaticSession.acquisitionDate,this.automaticSession.renewalDate)},t.prototype.initializeAutomaticSession=function(){var t=n.Util.getCookie("ai_session"),i;t&&typeof t.split=="function"?this.initializeAutomaticSessionWithData(t):(i=n.Util.getStorage("ai_session"),i&&this.initializeAutomaticSessionWithData(i));this.automaticSession.id||(this.automaticSession.isFirst=!0,this.renew())},t.prototype.initializeAutomaticSessionWithData=function(t){var i=t.split("|"),r,u;i.length>0&&(this.automaticSession.id=i[0]);try{i.length>1&&(r=+i[1],this.automaticSession.acquisitionDate=+new Date(r),this.automaticSession.acquisitionDate=this.automaticSession.acquisitionDate>0?this.automaticSession.acquisitionDate:0);i.length>2&&(u=+i[2],this.automaticSession.renewalDate=+new Date(u),this.automaticSession.renewalDate=this.automaticSession.renewalDate>0?this.automaticSession.renewalDate:0)}catch(f){n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_ErrorParsingAISessionCookie,"Error parsing ai_session cookie, session will be reset: "+n.Util.getExceptionName(f),{exception:n.Util.dump(f)}))}this.automaticSession.renewalDate==0&&n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_SessionRenewalDateIsZero,"AI session renewal date is 0, session will be reset."))},t.prototype.renew=function(){var t=+new Date;this.automaticSession.id=n.Util.newId();this.automaticSession.acquisitionDate=t;this.automaticSession.renewalDate=t;this.setCookie(this.automaticSession.id,this.automaticSession.acquisitionDate,this.automaticSession.renewalDate);n.Util.canUseLocalStorage()||n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_BrowserDoesNotSupportLocalStorage,"Browser does not support local storage. Session durations will be inaccurate."))},t.prototype.setCookie=function(t,i,r){var f=i+this.config.sessionExpirationMs(),e=r+this.config.sessionRenewalMs(),u=new Date,s=[t,i,r],o;f<e?u.setTime(f):u.setTime(e);o=this.config.cookieDomain?this.config.cookieDomain():null;n.Util.setCookie("ai_session",s.join("|")+";expires="+u.toUTCString(),o)},t.prototype.setStorage=function(t,i,r){n.Util.setStorage("ai_session",[t,i,r].join("|"))},t.acquisitionSpan=864e5,t.renewalSpan=18e5,t}();t._SessionManager=r})(t=n.Context||(n.Context={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){var t;(function(t){"use strict";var i=function(){function t(i){var s=n.Util.getCookie(t.userCookieName),e,u,o,h,c,f,r;s&&(e=s.split(t.cookieSeparator),e.length>0&&(this.id=e[0]));this.config=i;this.id||(this.id=n.Util.newId(),u=new Date,o=n.Util.toISOStringForIE8(u),this.accountAcquisitionDate=o,u.setTime(u.getTime()+31536e6),h=[this.id,o],c=this.config.cookieDomain?this.config.cookieDomain():undefined,n.Util.setCookie(t.userCookieName,h.join(t.cookieSeparator)+";expires="+u.toUTCString(),c),n.Util.removeStorage("ai_session"));this.accountId=i.accountId?i.accountId():undefined;f=n.Util.getCookie(t.authUserCookieName);f&&(f=decodeURI(f),r=f.split(t.cookieSeparator),r[0]&&(this.authenticatedId=r[0]),r.length>1&&r[1]&&(this.accountId=r[1]))}return t.prototype.setAuthenticatedUserContext=function(i,r){var f=!this.validateUserInput(i)||r&&!this.validateUserInput(r),u;if(f){n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_SetAuthContextFailedAccountName,"Setting auth user context failed. User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars."));return}this.authenticatedId=i;u=this.authenticatedId;r&&(this.accountId=r,u=[this.authenticatedId,this.accountId].join(t.cookieSeparator));n.Util.setCookie(t.authUserCookieName,encodeURI(u),this.config.cookieDomain())},t.prototype.clearAuthenticatedUserContext=function(){this.authenticatedId=null;this.accountId=null;n.Util.deleteCookie(t.authUserCookieName)},t.prototype.validateUserInput=function(n){return typeof n!="string"||!n||n.match(/,|;|=| |\|/)?!1:!0},t.cookieSeparator="|",t.userCookieName="ai_user",t.authUserCookieName="ai_authUser",t}();t.User=i})(t=n.Context||(n.Context={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){"use strict";var t=function(){function t(){}return t.reset=function(){t.isEnabled()&&n.Util.setSessionStorage(t.ITEMS_QUEUED_KEY,"0")},t.isEnabled=function(){return t.enabled&&t.appInsights!=null&&n.Util.canUseSessionStorage()},t.getIssuesReported=function(){return!t.isEnabled()||isNaN(+n.Util.getSessionStorage(t.ISSUES_REPORTED_KEY))?0:+n.Util.getSessionStorage(t.ISSUES_REPORTED_KEY)},t.incrementItemsQueued=function(){try{if(t.isEnabled()){var i=t.getNumberOfLostItems();++i;n.Util.setSessionStorage(t.ITEMS_QUEUED_KEY,i.toString())}}catch(r){}},t.decrementItemsQueued=function(i){try{if(t.isEnabled()){var r=t.getNumberOfLostItems();r-=i;r<0&&(r=0);n.Util.setSessionStorage(t.ITEMS_QUEUED_KEY,r.toString())}}catch(u){}},t.getNumberOfLostItems=function(){var i=0;try{t.isEnabled()&&(i=isNaN(+n.Util.getSessionStorage(t.ITEMS_QUEUED_KEY))?0:+n.Util.getSessionStorage(t.ITEMS_QUEUED_KEY))}catch(r){i=0}return i},t.reportLostItems=function(){try{if(t.isEnabled()&&t.getIssuesReported()<t.LIMIT_PER_SESSION&&t.getNumberOfLostItems()>0){t.appInsights.trackTrace("AI (Internal): Internal report DATALOSS: "+t.getNumberOfLostItems(),null);t.appInsights.flush();var i=t.getIssuesReported();++i;n.Util.setSessionStorage(t.ISSUES_REPORTED_KEY,i.toString())}}catch(r){n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_FailedToReportDataLoss,"Failed to report data loss: "+n.Util.getExceptionName(r),{exception:n.Util.dump(r)}))}finally{try{t.reset()}catch(r){}}},t.enabled=!1,t.LIMIT_PER_SESSION=10,t.ITEMS_QUEUED_KEY="AI_itemsQueued",t.ISSUES_REPORTED_KEY="AI_lossIssuesReported",t}();n.DataLossAnalyzer=t})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){"use strict";var t=function(){function t(n){if(this._buffer=[],this._lastSend=0,this._config=n,this._sender=null,typeof XMLHttpRequest!="undefined"){var t=new XMLHttpRequest;"withCredentials"in t?this._sender=this._xhrSender:typeof XDomainRequest!="undefined"&&(this._sender=this._xdrSender)}}return t.prototype.send=function(t){var r=this,i;try{if(this._config.disableTelemetry())return;if(!t){n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_CannotSendEmptyTelemetry,"Cannot send empty telemetry"));return}if(!this._sender){n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_SenderNotInitialized,"Sender was not initialized"));return}i=n.Serializer.serialize(t);this._getSizeInBytes(this._buffer)+i.length>this._config.maxBatchSizeInBytes()&&this.triggerSend();this._buffer.push(i);this._timeoutHandle||(this._timeoutHandle=setTimeout(function(){r._timeoutHandle=null;r.triggerSend()},this._config.maxBatchInterval()));n.DataLossAnalyzer.incrementItemsQueued()}catch(u){n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_FailedAddingTelemetryToBuffer,"Failed adding telemetry to the sender's buffer, some telemetry will be lost: "+n.Util.getExceptionName(u),{exception:n.Util.dump(u)}))}},t.prototype._getSizeInBytes=function(n){var r=0,t,i;if(n&&n.length)for(t=0;t<n.length;t++)i=n[t],i&&i.length&&(r+=i.length);return r},t.prototype.triggerSend=function(t){var i=!0,r;typeof t=="boolean"&&(i=t);try{this._config.disableTelemetry()||(this._buffer.length&&(r=this._config.emitLineDelimitedJson()?this._buffer.join("\n"):"["+this._buffer.join(",")+"]",this._sender(r,i,this._buffer.length)),this._lastSend=+new Date);this._buffer.length=0;clearTimeout(this._timeoutHandle);this._timeoutHandle=null}catch(u){(!n.Util.getIEVersion()||n.Util.getIEVersion()>9)&&n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_TransmissionFailed,"Telemetry transmission failed, some telemetry will be lost: "+n.Util.getExceptionName(u),{exception:n.Util.dump(u)}))}},t.prototype._xhrSender=function(i,r,u){var f=new XMLHttpRequest;f[n.AjaxMonitor.DisabledPropertyName]=!0;f.open("POST",this._config.endpointUrl(),r);f.setRequestHeader("Content-type","application/json");f.onreadystatechange=function(){return t._xhrReadyStateChange(f,i,u)};f.onerror=function(n){return t._onError(i,f.responseText||f.response||"",n)};f.send(i)},t.prototype._xdrSender=function(n){var i=new XDomainRequest;i.onload=function(){return t._xdrOnLoad(i,n)};i.onerror=function(r){return t._onError(n,i.responseText||"",r)};i.open("POST",this._config.endpointUrl());i.send(n)},t._xhrReadyStateChange=function(n,i,r){n.readyState===4&&((n.status<200||n.status>=300)&&n.status!==0?t._onError(i,n.responseText||n.response||""):t._onSuccess(i,r))},t._xdrOnLoad=function(n,i){n&&(n.responseText+""=="200"||n.responseText==="")?t._onSuccess(i,0):t._onError(i,n&&n.responseText||"")},t._onError=function(t,i){n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_OnError,"Failed to send telemetry.",{message:i}))},t._onSuccess=function(t,i){n.DataLossAnalyzer.decrementItemsQueued(i)},t}();n.Sender=t})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){"use strict";var t=function(){function t(){this.hashCodeGeneragor=new n.HashCodeScoreGenerator}return t.prototype.isEnabled=function(n,t){return this.hashCodeGeneragor.getHashCodeScore(n)<t},t}();n.SplitTest=t})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){"use strict";var t=function(){function n(){}return n}();n.Domain=t})(t=n.Telemetry||(n.Telemetry={}))}(Microsoft||(Microsoft={})),function(n){"use strict";(function(n){n[n.Verbose=0]="Verbose";n[n.Information=1]="Information";n[n.Warning=2]="Warning";n[n.Error=3]="Error";n[n.Critical=4]="Critical"})(n.SeverityLevel||(n.SeverityLevel={}));var t=n.SeverityLevel}(AI||(AI={})),function(n){"use strict";var t=function(n){function t(){this.ver=2;this.properties={};n.call(this)}return __extends(t,n),t}(Microsoft.Telemetry.Domain);n.MessageData=t}(AI||(AI={})),function(n){var t;(function(n){var t;(function(t){var i;(function(t){"use strict";var i=function(){function t(){}return t.sanitizeKeyAndAddUniqueness=function(n,i){var e=n.length,r=t.sanitizeKey(n),f,u;if(r.length!==e){for(f=0,u=r;i[u]!==undefined;)f++,u=r.substring(0,t.MAX_NAME_LENGTH-3)+t.padNumber(f);r=u}return r},t.sanitizeKey=function(i){return i&&(i=n.Util.trim(i.toString()),i.search(/[^0-9a-zA-Z-._()\/ ]/g)>=0&&(i=i.replace(/[^0-9a-zA-Z-._()\/ ]/g,"_"),n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_IllegalCharsInName,"name contains illegal characters. Illegal characters have been replaced with '_'.",{newName:i}))),i.length>t.MAX_NAME_LENGTH&&(i=i.substring(0,t.MAX_NAME_LENGTH),n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_NameTooLong,"name is too long.  It has been truncated to "+t.MAX_NAME_LENGTH+" characters.",{name:i})))),i},t.sanitizeString=function(i){return i&&(i=n.Util.trim(i),i.toString().length>t.MAX_STRING_LENGTH&&(i=i.toString().substring(0,t.MAX_STRING_LENGTH),n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_StringValueTooLong,"string value is too long. It has been truncated to "+t.MAX_STRING_LENGTH+" characters.",{value:i})))),i},t.sanitizeUrl=function(i){return i&&i.length>t.MAX_URL_LENGTH&&(i=i.substring(0,t.MAX_URL_LENGTH),n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_UrlTooLong,"url is too long, it has been trucated to "+t.MAX_URL_LENGTH+" characters.",{url:i}))),i},t.sanitizeMessage=function(i){return i&&i.length>t.MAX_MESSAGE_LENGTH&&(i=i.substring(0,t.MAX_MESSAGE_LENGTH),n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_MessageTruncated,"message is too long, it has been trucated to "+t.MAX_MESSAGE_LENGTH+" characters.",{message:i}))),i},t.sanitizeException=function(i){return i&&i.length>t.MAX_EXCEPTION_LENGTH&&(i=i.substring(0,t.MAX_EXCEPTION_LENGTH),n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_ExceptionTruncated,"exception is too long, it has been trucated to "+t.MAX_EXCEPTION_LENGTH+" characters.",{exception:i}))),i},t.sanitizeProperties=function(n){var r,i,u;if(n){r={};for(i in n)u=t.sanitizeString(n[i]),i=t.sanitizeKeyAndAddUniqueness(i,r),r[i]=u;n=r}return n},t.sanitizeMeasurements=function(n){var r,i,u;if(n){r={};for(i in n)u=n[i],i=t.sanitizeKeyAndAddUniqueness(i,r),r[i]=u;n=r}return n},t.padNumber=function(n){var t="00"+n;return t.substr(t.length-3)},t.MAX_NAME_LENGTH=150,t.MAX_STRING_LENGTH=1024,t.MAX_URL_LENGTH=2048,t.MAX_MESSAGE_LENGTH=32768,t.MAX_EXCEPTION_LENGTH=32768,t}();t.DataSanitizer=i})(i=t.Common||(t.Common={}))})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){var t;(function(t){"use strict";var i=function(i){function r(r,u){i.call(this);this.aiDataContract={ver:n.FieldType.Required,message:n.FieldType.Required,severityLevel:n.FieldType.Default,measurements:n.FieldType.Default,properties:n.FieldType.Default};r=r||n.Util.NotSpecified;this.message=t.Common.DataSanitizer.sanitizeMessage(r);this.properties=t.Common.DataSanitizer.sanitizeProperties(u)}return __extends(r,i),r.envelopeType="Microsoft.ApplicationInsights.{0}.Message",r.dataType="MessageData",r}(AI.MessageData);t.Trace=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){"use strict";var t=function(n){function t(){this.ver=2;this.properties={};this.measurements={};n.call(this)}return __extends(t,n),t}(Microsoft.Telemetry.Domain);n.EventData=t}(AI||(AI={})),function(n){var t;(function(n){var t;(function(t){"use strict";var i=function(t){function i(i,r,u){t.call(this);this.aiDataContract={ver:n.FieldType.Required,name:n.FieldType.Required,properties:n.FieldType.Default,measurements:n.FieldType.Default};this.name=n.Telemetry.Common.DataSanitizer.sanitizeString(i);this.properties=n.Telemetry.Common.DataSanitizer.sanitizeProperties(r);this.measurements=n.Telemetry.Common.DataSanitizer.sanitizeMeasurements(u)}return __extends(i,t),i.envelopeType="Microsoft.ApplicationInsights.{0}.Event",i.dataType="EventData",i}(AI.EventData);t.Event=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){"use strict";var t=function(){function n(){this.hasFullStack=!0;this.parsedStack=[]}return n}();n.ExceptionDetails=t}(AI||(AI={})),function(n){"use strict";var t=function(n){function t(){this.ver=2;this.exceptions=[];this.properties={};this.measurements={};n.call(this)}return __extends(t,n),t}(Microsoft.Telemetry.Domain);n.ExceptionData=t}(AI||(AI={})),function(n){"use strict";var t=function(){function n(){}return n}();n.StackFrame=t}(AI||(AI={})),function(n){var t;(function(n){var t;(function(t){"use strict";var u=function(t){function i(i,u,f,e){t.call(this);this.aiDataContract={ver:n.FieldType.Required,handledAt:n.FieldType.Required,exceptions:n.FieldType.Required,severityLevel:n.FieldType.Default,properties:n.FieldType.Default,measurements:n.FieldType.Default};this.properties=n.Telemetry.Common.DataSanitizer.sanitizeProperties(f);this.measurements=n.Telemetry.Common.DataSanitizer.sanitizeMeasurements(e);this.handledAt=u||"unhandled";this.exceptions=[new r(i)]}return __extends(i,t),i.CreateSimpleException=function(n,t,i,r,u,f,e){return{handledAt:e||"unhandled",exceptions:[{hasFullStack:!0,message:n,stack:u,typeName:t,parsedStack:[{level:0,assembly:i,fileName:r,line:f,method:"unknown"}]}]}},i.envelopeType="Microsoft.ApplicationInsights.{0}.Exception",i.dataType="ExceptionData",i}(AI.ExceptionData),r,i;t.Exception=u;r=function(r){function u(i){r.call(this);this.aiDataContract={id:n.FieldType.Default,outerId:n.FieldType.Default,typeName:n.FieldType.Required,message:n.FieldType.Required,hasFullStack:n.FieldType.Default,stack:n.FieldType.Default,parsedStack:n.FieldType.Array};this.typeName=t.Common.DataSanitizer.sanitizeString(i.name||n.Util.NotSpecified);this.message=t.Common.DataSanitizer.sanitizeMessage(i.message||n.Util.NotSpecified);var u=i.stack;this.parsedStack=this.parseStack(u);this.stack=t.Common.DataSanitizer.sanitizeException(u);this.hasFullStack=n.Util.isArray(this.parsedStack)&&this.parsedStack.length>0}return __extends(u,r),u.prototype.parseStack=function(n){var t=undefined,e,l,o,r,a,s,h,p,w,b;if(typeof n=="string"){for(e=n.split("\n"),t=[],l=0,o=0,r=0;r<=e.length;r++)a=e[r],i.regex.test(a)&&(s=new i(e[r],l++),o+=s.sizeInBytes,t.push(s));if(h=32768,o>h)for(var u=0,f=t.length-1,v=0,c=u,y=f;u<f;){if(p=t[u].sizeInBytes,w=t[f].sizeInBytes,v+=p+w,v>h){b=y-c+1;t.splice(c,b);break}c=u;y=f;u++;f--}}return t},u}(AI.ExceptionDetails);i=function(t){function i(r,u){t.call(this);this.sizeInBytes=0;this.aiDataContract={level:n.FieldType.Required,method:n.FieldType.Required,assembly:n.FieldType.Default,fileName:n.FieldType.Default,line:n.FieldType.Default};this.level=u;this.method="<no_method>";this.assembly=n.Util.trim(r);var f=r.match(i.regex);f&&f.length>=5&&(this.method=n.Util.trim(f[2])||this.method,this.fileName=n.Util.trim(f[4]),this.line=parseInt(f[5])||0);this.sizeInBytes+=this.method.length;this.sizeInBytes+=this.fileName.length;this.sizeInBytes+=this.assembly.length;this.sizeInBytes+=i.baseSize;this.sizeInBytes+=this.level.toString().length;this.sizeInBytes+=this.line.toString().length}return __extends(i,t),i.regex=/^([\s]+at)?(.*?)(\@|\s\(|\s)([^\(\@\n]+):([0-9]+):([0-9]+)(\)?)$/,i.baseSize=58,i}(AI.StackFrame);t._StackFrame=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){"use strict";var t=function(n){function t(){this.ver=2;this.metrics=[];this.properties={};n.call(this)}return __extends(t,n),t}(Microsoft.Telemetry.Domain);n.MetricData=t}(AI||(AI={})),function(n){"use strict";(function(n){n[n.Measurement=0]="Measurement";n[n.Aggregation=1]="Aggregation"})(n.DataPointType||(n.DataPointType={}));var t=n.DataPointType}(AI||(AI={})),function(n){"use strict";var t=function(){function t(){this.kind=n.DataPointType.Measurement}return t}();n.DataPoint=t}(AI||(AI={})),function(n){var t;(function(n){var t;(function(t){var i;(function(t){"use strict";var i=function(t){function i(){t.apply(this,arguments);this.aiDataContract={name:n.FieldType.Required,kind:n.FieldType.Default,value:n.FieldType.Required,count:n.FieldType.Default,min:n.FieldType.Default,max:n.FieldType.Default,stdDev:n.FieldType.Default}}return __extends(i,t),i}(AI.DataPoint);t.DataPoint=i})(i=t.Common||(t.Common={}))})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(t){var i;(function(i){"use strict";var r=function(r){function u(u,f,e,o,s,h){r.call(this);this.aiDataContract={ver:t.FieldType.Required,metrics:t.FieldType.Required,properties:t.FieldType.Default};var c=new n.ApplicationInsights.Telemetry.Common.DataPoint;c.count=e>0?e:undefined;c.max=isNaN(s)||s===null?undefined:s;c.min=isNaN(o)||o===null?undefined:o;c.name=i.Common.DataSanitizer.sanitizeString(u);c.value=f;this.metrics=[c];this.properties=t.Telemetry.Common.DataSanitizer.sanitizeProperties(h)}return __extends(u,r),u.envelopeType="Microsoft.ApplicationInsights.{0}.Metric",u.dataType="MetricData",u}(AI.MetricData);i.Metric=r})(i=t.Telemetry||(t.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){"use strict";var t=function(n){function t(){this.ver=2;this.properties={};this.measurements={};n.call(this)}return __extends(t,n),t}(n.EventData);n.PageViewData=t}(AI||(AI={})),function(n){var t;(function(n){var t;(function(t){"use strict";var i=function(i){function r(r,u,f,e,o){i.call(this);this.aiDataContract={ver:n.FieldType.Required,name:n.FieldType.Default,url:n.FieldType.Default,duration:n.FieldType.Default,properties:n.FieldType.Default,measurements:n.FieldType.Default};this.url=t.Common.DataSanitizer.sanitizeUrl(u);this.name=t.Common.DataSanitizer.sanitizeString(r||n.Util.NotSpecified);isNaN(f)||(this.duration=n.Util.msToTimeSpan(f));this.properties=n.Telemetry.Common.DataSanitizer.sanitizeProperties(e);this.measurements=n.Telemetry.Common.DataSanitizer.sanitizeMeasurements(o)}return __extends(r,i),r.envelopeType="Microsoft.ApplicationInsights.{0}.Pageview",r.dataType="PageviewData",r}(AI.PageViewData);t.PageView=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){"use strict";var t=function(n){function t(){this.ver=2;this.properties={};this.measurements={};n.call(this)}return __extends(t,n),t}(n.PageViewData);n.PageViewPerfData=t}(AI||(AI={})),function(n){var t;(function(n){var t;(function(t){"use strict";var i=function(i){function r(u,f,e,o,s){var h;if(i.call(this),this.aiDataContract={ver:n.FieldType.Required,name:n.FieldType.Default,url:n.FieldType.Default,duration:n.FieldType.Default,perfTotal:n.FieldType.Default,networkConnect:n.FieldType.Default,sentRequest:n.FieldType.Default,receivedResponse:n.FieldType.Default,domProcessing:n.FieldType.Default,properties:n.FieldType.Default,measurements:n.FieldType.Default},this.isValid=!1,h=r.getPerformanceTiming(),h){var c=r.getDuration(h.navigationStart,h.loadEventEnd),l=r.getDuration(h.navigationStart,h.connectEnd),a=r.getDuration(h.requestStart,h.responseStart),v=r.getDuration(h.responseStart,h.responseEnd),y=r.getDuration(h.responseEnd,h.loadEventEnd);c==0?n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_ErrorPVCalc,"error calculating page view performance.",{total:c,network:l,request:a,response:v,dom:y})):c<Math.floor(l)+Math.floor(a)+Math.floor(v)+Math.floor(y)?n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_ClientPerformanceMathError,"client performance math error.",{total:c,network:l,request:a,response:v,dom:y})):(this.durationMs=c,this.perfTotal=this.duration=n.Util.msToTimeSpan(c),this.networkConnect=n.Util.msToTimeSpan(l),this.sentRequest=n.Util.msToTimeSpan(a),this.receivedResponse=n.Util.msToTimeSpan(v),this.domProcessing=n.Util.msToTimeSpan(y),this.isValid=!0)}this.url=t.Common.DataSanitizer.sanitizeUrl(f);this.name=t.Common.DataSanitizer.sanitizeString(u||n.Util.NotSpecified);this.properties=n.Telemetry.Common.DataSanitizer.sanitizeProperties(o);this.measurements=n.Telemetry.Common.DataSanitizer.sanitizeMeasurements(s)}return __extends(r,i),r.prototype.getIsValid=function(){return this.isValid},r.prototype.getDurationMs=function(){return this.durationMs},r.getPerformanceTiming=function(){return typeof window!="undefined"&&window.performance&&window.performance.timing?window.performance.timing:null},r.isPerformanceTimingSupported=function(){return typeof window!="undefined"&&window.performance&&window.performance.timing},r.isPerformanceTimingDataReady=function(){var n=window.performance.timing;return n.domainLookupStart>0&&n.navigationStart>0&&n.responseStart>0&&n.requestStart>0&&n.loadEventEnd>0&&n.responseEnd>0&&n.connectEnd>0&&n.domLoading>0},r.getDuration=function(n,t){var i=0;return isNaN(n)||isNaN(t)||(i=Math.max(t-n,0)),i},r.envelopeType="Microsoft.ApplicationInsights.{0}.PageviewPerformance",r.dataType="PageviewPerformanceData",r}(AI.PageViewPerfData);t.PageViewPerformance=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){"use strict";var t=function(){function t(t){this._config=t;this._sender=new n.Sender(t);typeof window!="undefined"&&(this._sessionManager=new n.Context._SessionManager(t),this.application=new n.Context.Application,this.device=new n.Context.Device,this.internal=new n.Context.Internal,this.location=new n.Context.Location,this.user=new n.Context.User(t),this.operation=new n.Context.Operation,this.session=new n.Context.Session,this.sample=new n.Context.Sample(t.sampleRate()))}return t.prototype.addTelemetryInitializer=function(n){this.telemetryInitializers=this.telemetryInitializers||[];this.telemetryInitializers.push(n)},t.prototype.track=function(t){return t?(t.name===n.Telemetry.PageView.envelopeType&&n._InternalLogging.resetInternalMessageCount(),this.session&&typeof this.session.id!="string"&&this._sessionManager.update(),this._track(t)):n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.USRACT_TrackArgumentsNotSpecified,"cannot call .track() with a null or undefined argument")),t},t.prototype._track=function(t){var i,f,r,u,o;this.session&&(typeof this.session.id=="string"?this._applySessionContext(t,this.session):this._applySessionContext(t,this._sessionManager.automaticSession));this._applyApplicationContext(t,this.application);this._applyDeviceContext(t,this.device);this._applyInternalContext(t,this.internal);this._applyLocationContext(t,this.location);this._applySampleContext(t,this.sample);this._applyUserContext(t,this.user);this._applyOperationContext(t,this.operation);t.iKey=this._config.instrumentationKey();i=!1;try{for(this.telemetryInitializers=this.telemetryInitializers||[],f=this.telemetryInitializers.length,r=0;r<f;++r)if(u=this.telemetryInitializers[r],u&&u.apply(null,[t])===!1){i=!0;break}}catch(e){i=!0;n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.USRACT_TelemetryInitializerFailed,"One of telemetry initializers failed, telemetry item will not be sent: "+n.Util.getExceptionName(e),{exception:n.Util.dump(e)}))}return i||(t.name===n.Telemetry.Metric.envelopeType||this.sample.isSampledIn(t)?(o=this._config.instrumentationKey().replace(/-/g,""),t.name=t.name.replace("{0}",o),this._sender.send(t)):n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_TelemetrySampledAndNotSent,"Telemetry is sampled and not sent to the AI service.",{SampleRate:this.sample.sampleRate}))),t},t.prototype._applyApplicationContext=function(n,t){if(t){var i=new AI.ContextTagKeys;typeof t.ver=="string"&&(n.tags[i.applicationVersion]=t.ver);typeof t.build=="string"&&(n.tags[i.applicationBuild]=t.build)}},t.prototype._applyDeviceContext=function(n,t){var i=new AI.ContextTagKeys;t&&(typeof t.id=="string"&&(n.tags[i.deviceId]=t.id),typeof t.ip=="string"&&(n.tags[i.deviceIp]=t.ip),typeof t.language=="string"&&(n.tags[i.deviceLanguage]=t.language),typeof t.locale=="string"&&(n.tags[i.deviceLocale]=t.locale),typeof t.model=="string"&&(n.tags[i.deviceModel]=t.model),typeof t.network!="undefined"&&(n.tags[i.deviceNetwork]=t.network),typeof t.oemName=="string"&&(n.tags[i.deviceOEMName]=t.oemName),typeof t.os=="string"&&(n.tags[i.deviceOS]=t.os),typeof t.osversion=="string"&&(n.tags[i.deviceOSVersion]=t.osversion),typeof t.resolution=="string"&&(n.tags[i.deviceScreenResolution]=t.resolution),typeof t.type=="string"&&(n.tags[i.deviceType]=t.type))},t.prototype._applyInternalContext=function(n,t){if(t){var i=new AI.ContextTagKeys;typeof t.agentVersion=="string"&&(n.tags[i.internalAgentVersion]=t.agentVersion);typeof t.sdkVersion=="string"&&(n.tags[i.internalSdkVersion]=t.sdkVersion)}},t.prototype._applyLocationContext=function(n,t){if(t){var i=new AI.ContextTagKeys;typeof t.ip=="string"&&(n.tags[i.locationIp]=t.ip)}},t.prototype._applyOperationContext=function(n,t){if(t){var i=new AI.ContextTagKeys;typeof t.id=="string"&&(n.tags[i.operationId]=t.id);typeof t.name=="string"&&(n.tags[i.operationName]=t.name);typeof t.parentId=="string"&&(n.tags[i.operationParentId]=t.parentId);typeof t.rootId=="string"&&(n.tags[i.operationRootId]=t.rootId);typeof t.syntheticSource=="string"&&(n.tags[i.operationSyntheticSource]=t.syntheticSource)}},t.prototype._applySampleContext=function(n,t){t&&(n.sampleRate=t.sampleRate)},t.prototype._applySessionContext=function(n,t){if(t){var i=new AI.ContextTagKeys;typeof t.id=="string"&&(n.tags[i.sessionId]=t.id);typeof t.isFirst!="undefined"&&(n.tags[i.sessionIsFirst]=t.isFirst)}},t.prototype._applyUserContext=function(n,t){if(t){var i=new AI.ContextTagKeys;typeof t.accountId=="string"&&(n.tags[i.userAccountId]=t.accountId);typeof t.agent=="string"&&(n.tags[i.userAgent]=t.agent);typeof t.id=="string"&&(n.tags[i.userId]=t.id);typeof t.authenticatedId=="string"&&(n.tags[i.userAuthUserId]=t.authenticatedId);typeof t.storeRegion=="string"&&(n.tags[i.userStoreRegion]=t.storeRegion)}},t}();n.TelemetryContext=t})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(t){"use strict";var i=function(n){function t(){n.call(this)}return __extends(t,n),t}(n.Telemetry.Base);t.Data=i})(t=n.Telemetry||(n.Telemetry={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(t){var i;(function(i){var r;(function(i){"use strict";var r=function(n){function i(i,r){n.call(this);this.aiDataContract={baseType:t.FieldType.Required,baseData:t.FieldType.Required};this.baseType=i;this.baseData=r}return __extends(i,n),i}(n.Telemetry.Data);i.Data=r})(r=i.Common||(i.Common={}))})(i=t.Telemetry||(t.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){var t;(function(t){"use strict";var i=function(){function i(n,t){this.pageViewPerformanceSent=!1;this.overridePageViewDuration=!1;this.overridePageViewDuration=t;this.appInsights=n}return i.prototype.trackPageView=function(i,r,u,f,e){var o=this,s,h,c,l,a;if(typeof i!="string"&&(i=window.document&&window.document.title||""),typeof r!="string"&&(r=window.location&&window.location.href||""),s=!1,h=0,t.PageViewPerformance.isPerformanceTimingSupported()?(c=t.PageViewPerformance.getPerformanceTiming().navigationStart,h=t.PageViewPerformance.getDuration(c,+new Date)):(this.appInsights.sendPageViewInternal(i,r,isNaN(e)?0:e,u,f),this.appInsights.flush(),s=!0),(this.overridePageViewDuration||!isNaN(e))&&(this.appInsights.sendPageViewInternal(i,r,isNaN(e)?h:e,u,f),this.appInsights.flush(),s=!0),l=6e4,!t.PageViewPerformance.isPerformanceTimingSupported()){n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_NavigationTimingNotSupported,"trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info."));return}a=setInterval(function(){try{if(t.PageViewPerformance.isPerformanceTimingDataReady()){clearInterval(a);var e=new t.PageViewPerformance(i,r,null,u,f);e.getIsValid()||s?(s||o.appInsights.sendPageViewInternal(i,r,e.getDurationMs(),u,f),o.pageViewPerformanceSent||(o.appInsights.sendPageViewPerformanceInternal(e),o.pageViewPerformanceSent=!0),o.appInsights.flush()):(o.appInsights.sendPageViewInternal(i,r,h,u,f),o.appInsights.flush())}else t.PageViewPerformance.getDuration(c,+new Date)>l&&(clearInterval(a),s||(o.appInsights.sendPageViewInternal(i,r,l,u,f),o.appInsights.flush()))}catch(v){n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_TrackPVFailedCalc,"trackPageView failed on page load calculation: "+n.Util.getExceptionName(v),{exception:n.Util.dump(v)}))}},100)},i}();t.PageViewManager=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){var t;(function(t){"use strict";var r=function(){function t(n){this.prevPageVisitDataKeyName="prevPageVisitData";this.pageVisitTimeTrackingHandler=n}return t.prototype.trackPreviousPageVisit=function(t,i){try{var r=this.restartPageVisitTimer(t,i);r&&this.pageVisitTimeTrackingHandler(r.pageName,r.pageUrl,r.pageVisitTime)}catch(u){n._InternalLogging.warnToConsole("Auto track page visit time failed, metric will not be collected: "+n.Util.dump(u))}},t.prototype.restartPageVisitTimer=function(t,i){try{var r=this.stopPageVisitTimer();return this.startPageVisitTimer(t,i),r}catch(u){return n._InternalLogging.warnToConsole("Call to restart failed: "+n.Util.dump(u)),null}},t.prototype.startPageVisitTimer=function(t,r){try{if(n.Util.canUseSessionStorage()){if(n.Util.getSessionStorage(this.prevPageVisitDataKeyName)!=null)throw new Error("Cannot call startPageVisit consecutively without first calling stopPageVisit");var u=new i(t,r),f=JSON.stringify(u);n.Util.setSessionStorage(this.prevPageVisitDataKeyName,f)}}catch(e){n._InternalLogging.warnToConsole("Call to start failed: "+n.Util.dump(e))}},t.prototype.stopPageVisitTimer=function(){var r,i,t;try{return n.Util.canUseSessionStorage()?(r=Date.now(),i=n.Util.getSessionStorage(this.prevPageVisitDataKeyName),i?(t=JSON.parse(i),t.pageVisitTime=r-t.pageVisitStartTime,n.Util.removeSessionStorage(this.prevPageVisitDataKeyName),t):null):null}catch(u){return n._InternalLogging.warnToConsole("Stop page visit timer failed: "+n.Util.dump(u)),null}},t}(),i;t.PageVisitTimeManager=r;i=function(){function n(n,t){this.pageVisitStartTime=Date.now();this.pageName=n;this.pageUrl=t}return n}();t.PageVisitData=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){"use strict";(function(n){n[n.SQL=0]="SQL";n[n.Http=1]="Http";n[n.Other=2]="Other"})(n.DependencyKind||(n.DependencyKind={}));var t=n.DependencyKind}(AI||(AI={})),function(n){"use strict";(function(n){n[n.Undefined=0]="Undefined";n[n.Aic=1]="Aic";n[n.Apmc=2]="Apmc"})(n.DependencySourceType||(n.DependencySourceType={}));var t=n.DependencySourceType}(AI||(AI={})),function(n){"use strict";var t=function(t){function i(){this.ver=2;this.kind=n.DataPointType.Aggregation;this.dependencyKind=n.DependencyKind.Other;this.success=!0;this.dependencySource=n.DependencySourceType.Apmc;this.properties={};t.call(this)}return __extends(i,t),i}(Microsoft.Telemetry.Domain);n.RemoteDependencyData=t}(AI||(AI={})),function(n){var t;(function(n){var t;(function(t){"use strict";var i=function(t){function i(i,r,u,f,e,o){t.call(this);this.aiDataContract={id:n.FieldType.Required,ver:n.FieldType.Required,name:n.FieldType.Default,kind:n.FieldType.Required,value:n.FieldType.Default,count:n.FieldType.Default,min:n.FieldType.Default,max:n.FieldType.Default,stdDev:n.FieldType.Default,dependencyKind:n.FieldType.Default,success:n.FieldType.Default,async:n.FieldType.Default,dependencySource:n.FieldType.Default,commandName:n.FieldType.Default,dependencyTypeName:n.FieldType.Default,properties:n.FieldType.Default,resultCode:n.FieldType.Default};this.id=i;this.name=r;this.commandName=u;this.value=f;this.success=e;this.resultCode=o+"";this.dependencyKind=AI.DependencyKind.Http;this.dependencyTypeName="Ajax"}return __extends(i,t),i.envelopeType="Microsoft.ApplicationInsights.{0}.RemoteDependency",i.dataType="RemoteDependencyData",i}(AI.RemoteDependencyData);t.RemoteDependencyData=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(t){"use strict";var r,i;t.Version="0.22.9";r=function(){function r(u){var f=this,e,o,s;if(this._trackAjaxAttempts=0,this.config=u||{},e=r.defaultConfig,e!==undefined)for(o in e)this.config[o]===undefined&&(this.config[o]=e[o]);t._InternalLogging.verboseLogging=function(){return f.config.verboseLogging};t._InternalLogging.enableDebugExceptions=function(){return f.config.enableDebug};s={instrumentationKey:function(){return f.config.instrumentationKey},accountId:function(){return f.config.accountId},sessionRenewalMs:function(){return f.config.sessionRenewalMs},sessionExpirationMs:function(){return f.config.sessionExpirationMs},endpointUrl:function(){return f.config.endpointUrl},emitLineDelimitedJson:function(){return f.config.emitLineDelimitedJson},maxBatchSizeInBytes:function(){return f.config.maxBatchSizeInBytes},maxBatchInterval:function(){return f.config.maxBatchInterval},disableTelemetry:function(){return f.config.disableTelemetry},sampleRate:function(){return f.config.samplingPercentage},cookieDomain:function(){return f.config.cookieDomain}};this.context=new t.TelemetryContext(s);this._pageViewManager=new n.ApplicationInsights.Telemetry.PageViewManager(this,this.config.overridePageViewDuration);this._eventTracking=new i("trackEvent");this._eventTracking.action=function(n,i,r,u,e){e?isNaN(e.duration)&&(e.duration=r):e={duration:r};var o=new t.Telemetry.Event(n,u,e),s=new t.Telemetry.Common.Data(t.Telemetry.Event.dataType,o),h=new t.Telemetry.Common.Envelope(s,t.Telemetry.Event.envelopeType);f.context.track(h)};this._pageTracking=new i("trackPageView");this._pageTracking.action=function(n,t,i,r,u){f.sendPageViewInternal(n,t,i,r,u)};this._pageVisitTimeManager=new t.Telemetry.PageVisitTimeManager(function(n,t,i){return f.trackPageVisitTime(n,t,i)});this.config.disableAjaxTracking||new n.ApplicationInsights.AjaxMonitor(this)}return r.prototype.sendPageViewInternal=function(n,i,r,u,f){var e=new t.Telemetry.PageView(n,i,r,u,f),o=new t.Telemetry.Common.Data(t.Telemetry.PageView.dataType,e),s=new t.Telemetry.Common.Envelope(o,t.Telemetry.PageView.envelopeType);this.context.track(s);this._trackAjaxAttempts=0},r.prototype.sendPageViewPerformanceInternal=function(n){var i=new t.Telemetry.Common.Data(t.Telemetry.PageViewPerformance.dataType,n),r=new t.Telemetry.Common.Envelope(i,t.Telemetry.PageViewPerformance.envelopeType);this.context.track(r)},r.prototype.startTrackPage=function(n){try{typeof n!="string"&&(n=window.document&&window.document.title||"");this._pageTracking.start(n)}catch(i){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_StartTrackFailed,"startTrackPage failed, page view may not be collected: "+t.Util.getExceptionName(i),{exception:t.Util.dump(i)}))}},r.prototype.stopTrackPage=function(n,i,r,u){try{typeof n!="string"&&(n=window.document&&window.document.title||"");typeof i!="string"&&(i=window.location&&window.location.href||"");this._pageTracking.stop(n,i,r,u);this.config.autoTrackPageVisitTime&&this._pageVisitTimeManager.trackPreviousPageVisit(n,i)}catch(f){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_StopTrackFailed,"stopTrackPage failed, page view will not be collected: "+t.Util.getExceptionName(f),{exception:t.Util.dump(f)}))}},r.prototype.trackPageView=function(n,i,r,u,f){try{this._pageViewManager.trackPageView(n,i,r,u,f);this.config.autoTrackPageVisitTime&&this._pageVisitTimeManager.trackPreviousPageVisit(n,i)}catch(e){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_TrackPVFailed,"trackPageView failed, page view will not be collected: "+t.Util.getExceptionName(e),{exception:t.Util.dump(e)}))}},r.prototype.startTrackEvent=function(n){try{this._eventTracking.start(n)}catch(i){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_StartTrackEventFailed,"startTrackEvent failed, event will not be collected: "+t.Util.getExceptionName(i),{exception:t.Util.dump(i)}))}},r.prototype.stopTrackEvent=function(n,i,r){try{this._eventTracking.stop(n,undefined,i,r)}catch(u){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_StopTrackEventFailed,"stopTrackEvent failed, event will not be collected: "+t.Util.getExceptionName(u),{exception:t.Util.dump(u)}))}},r.prototype.trackEvent=function(n,i,r){try{var f=new t.Telemetry.Event(n,i,r),e=new t.Telemetry.Common.Data(t.Telemetry.Event.dataType,f),o=new t.Telemetry.Common.Envelope(e,t.Telemetry.Event.envelopeType);this.context.track(o)}catch(u){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_TrackEventFailed,"trackEvent failed, event will not be collected: "+t.Util.getExceptionName(u),{exception:t.Util.dump(u)}))}},r.prototype.trackAjax=function(n,i,r,u,f,e){if(this.config.maxAjaxCallsPerView===-1||this._trackAjaxAttempts<this.config.maxAjaxCallsPerView){var o=new t.Telemetry.RemoteDependencyData(n,i,r,u,f,e),s=new t.Telemetry.Common.Data(t.Telemetry.RemoteDependencyData.dataType,o),h=new t.Telemetry.Common.Envelope(s,t.Telemetry.RemoteDependencyData.envelopeType);this.context.track(h)}else this._trackAjaxAttempts===this.config.maxAjaxCallsPerView&&t._InternalLogging.throwInternalUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.USRACT_MaxAjaxPerPVExceeded,"Maximum ajax per page view limit reached, ajax monitoring is paused until the next trackPageView(). In order to increase the limit set the maxAjaxCallsPerView configuration parameter."));++this._trackAjaxAttempts},r.prototype.trackException=function(n,i,r,u){try{if(!t.Util.isError(n))try{throw new Error(n);}catch(e){n=e}var o=new t.Telemetry.Exception(n,i,r,u),s=new t.Telemetry.Common.Data(t.Telemetry.Exception.dataType,o),h=new t.Telemetry.Common.Envelope(s,t.Telemetry.Exception.envelopeType);this.context.track(h)}catch(f){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_TrackExceptionFailed,"trackException failed, exception will not be collected: "+t.Util.getExceptionName(f),{exception:t.Util.dump(f)}))}},r.prototype.trackMetric=function(n,i,r,u,f,e){try{var s=new t.Telemetry.Metric(n,i,r,u,f,e),h=new t.Telemetry.Common.Data(t.Telemetry.Metric.dataType,s),c=new t.Telemetry.Common.Envelope(h,t.Telemetry.Metric.envelopeType);this.context.track(c)}catch(o){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_TrackMetricFailed,"trackMetric failed, metric will not be collected: "+t.Util.getExceptionName(o),{exception:t.Util.dump(o)}))}},r.prototype.trackTrace=function(n,i){try{var u=new t.Telemetry.Trace(n,i),f=new t.Telemetry.Common.Data(t.Telemetry.Trace.dataType,u),e=new t.Telemetry.Common.Envelope(f,t.Telemetry.Trace.envelopeType);this.context.track(e)}catch(r){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.WARNING,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_TrackTraceFailed,"trackTrace failed, trace will not be collected: "+t.Util.getExceptionName(r),{exception:t.Util.dump(r)}))}},r.prototype.trackPageVisitTime=function(n,t,i){var r={PageName:n,PageUrl:t};this.trackMetric("PageVisitTime",i,1,i,i,r)},r.prototype.flush=function(){try{this.context._sender.triggerSend()}catch(n){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_FlushFailed,"flush failed, telemetry will not be collected: "+t.Util.getExceptionName(n),{exception:t.Util.dump(n)}))}},r.prototype.setAuthenticatedUserContext=function(n,i){try{this.context.user.setAuthenticatedUserContext(n,i)}catch(r){t._InternalLogging.throwInternalUserActionable(t.LoggingSeverity.WARNING,new t._InternalLogMessage(t._InternalMessageId.USRACT_SetAuthContextFailed,"Setting auth user context failed. "+t.Util.getExceptionName(r),{exception:t.Util.dump(r)}))}},r.prototype.clearAuthenticatedUserContext=function(){try{this.context.user.clearAuthenticatedUserContext()}catch(n){t._InternalLogging.throwInternalUserActionable(t.LoggingSeverity.WARNING,new t._InternalLogMessage(t._InternalMessageId.USRACT_SetAuthContextFailed,"Clearing auth user context failed. "+t.Util.getExceptionName(n),{exception:t.Util.dump(n)}))}},r.prototype.SendCORSException=function(i){var r=n.ApplicationInsights.Telemetry.Exception.CreateSimpleException("Script error.","Error","unknown","unknown","The browser’s same-origin policy prevents us from getting the details of this exception.The exception occurred in a script loaded from an origin different than the web page.For cross- domain error reporting you can use crossorigin attribute together with appropriate CORS HTTP headers.For more information please see http://www.w3.org/TR/cors/.",0,null),u,f;r.properties=i;u=new t.Telemetry.Common.Data(t.Telemetry.Exception.dataType,r);f=new t.Telemetry.Common.Envelope(u,t.Telemetry.Exception.envelopeType);this.context.track(f)},r.prototype._onerror=function(n,i,r,u,f){var e,o,h,c;try{e={url:i?i:document.URL};t.Util.isCrossOriginError(n,i,r,u,f)?this.SendCORSException(e):(t.Util.isError(f)||(o="window.onerror@"+e.url+":"+r+":"+(u||0),f=new Error(n),f.stack=o),this.trackException(f,null,e))}catch(s){h=f?f.name+", "+f.message:"null";c=t.Util.dump(s);t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_ExceptionWhileLoggingError,"_onerror threw exception while logging error, error will not be collected: "+t.Util.getExceptionName(s),{exception:c,errorString:h}))}},r}();t.AppInsights=r;i=function(){function n(n){this._name=n;this._events={}}return n.prototype.start=function(n){typeof this._events[n]!="undefined"&&t._InternalLogging.throwInternalUserActionable(t.LoggingSeverity.WARNING,new t._InternalLogMessage(t._InternalMessageId.USRACT_StartCalledMoreThanOnce,"start was called more than once for this event without calling stop.",{name:this._name,key:n}));this._events[n]=+new Date},n.prototype.stop=function(n,i,r,u){var f=this._events[n],e,o;isNaN(f)?t._InternalLogging.throwInternalUserActionable(t.LoggingSeverity.WARNING,new t._InternalLogMessage(t._InternalMessageId.USRACT_StopCalledWithoutStart,"stop was called without a corresponding start.",{name:this._name,key:n})):(e=+new Date,o=t.Telemetry.PageViewPerformance.getDuration(f,e),this.action(n,i,o,r,u));delete this._events[n];this._events[n]=undefined},n}()})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){"use strict";var t=function(n){function t(){this.ver=2;this.properties={};this.measurements={};n.call(this)}return __extends(t,n),t}(n.PageViewData);n.AjaxCallData=t}(AI||(AI={})),function(n){"use strict";var t=function(n){function t(){this.ver=2;this.properties={};this.measurements={};n.call(this)}return __extends(t,n),t}(Microsoft.Telemetry.Domain);n.RequestData=t}(AI||(AI={})),function(n){"use strict";var t=function(t){function i(){this.ver=2;this.state=n.SessionState.Start;t.call(this)}return __extends(i,t),i}(Microsoft.Telemetry.Domain);n.SessionStateData=t}(AI||(AI={})),function(n){var t;(function(t){"use strict";var i=function(){function i(t){t.queue=t.queue||[];var r=t.config||{};if(r&&!r.instrumentationKey)if(r=t,r.iKey)n.ApplicationInsights.Version="0.10.0.0",r.instrumentationKey=r.iKey;else if(r.applicationInsightsId)n.ApplicationInsights.Version="0.7.2.0",r.instrumentationKey=r.applicationInsightsId;else throw new Error("Cannot load Application Insights SDK, no instrumentationKey was provided.");r=i.getDefaultConfig(r);this.snippet=t;this.config=r}return i.prototype.loadAppInsights=function(){var t=new n.ApplicationInsights.AppInsights(this.config),u,i,r;return this.config.iKey&&(u=t.trackPageView,t.trackPageView=function(n,i,r){u.apply(t,[null,n,i,r])}),i="logPageView",typeof this.snippet[i]=="function"&&(t[i]=function(n,i,r){t.trackPageView(null,n,i,r)}),r="logEvent",typeof this.snippet[r]=="function"&&(t[r]=function(n,i,r){t.trackEvent(n,i,r)}),t},i.prototype.emptyQueue=function(){var f,i,e,u,o;try{if(n.ApplicationInsights.Util.isArray(this.snippet.queue)){for(f=this.snippet.queue.length,i=0;i<f;i++)e=this.snippet.queue[i],e();this.snippet.queue=undefined;delete this.snippet.queue}}catch(r){u={};r&&typeof r.toString=="function"&&(u.exception=r.toString());o=new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_FailedToSendQueuedTelemetry,"Failed to send queued telemetry",u);n.ApplicationInsights._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.WARNING,o)}},i.prototype.pollInteralLogs=function(t){return setInterval(function(){for(var i=n.ApplicationInsights._InternalLogging.queue,u=i.length,r=0;r<u;r++)t.trackTrace(i[r].message);i.length=0},this.config.diagnosticLogInterval)},i.prototype.addHousekeepingBeforeUnload=function(i){if(!i.config.disableFlushOnBeforeUnload&&"onbeforeunload"in window){var r=function(){i.context._sender.triggerSend();i.context._sessionManager.backup()};n.ApplicationInsights.Util.addEventHandler("beforeunload",r)||n.ApplicationInsights._InternalLogging.throwInternalNonUserActionable(n.ApplicationInsights.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_FailedToAddHandlerForOnBeforeUnload,"Could not add handler for beforeunload"))}},i.getDefaultConfig=function(n){return n||(n={}),n.endpointUrl=n.endpointUrl||"//dc.services.visualstudio.com/v2/track",n.sessionRenewalMs=18e5,n.sessionExpirationMs=864e5,n.maxBatchSizeInBytes=n.maxBatchSizeInBytes>0?n.maxBatchSizeInBytes:1e6,n.maxBatchInterval=isNaN(n.maxBatchInterval)?15e3:n.maxBatchInterval,n.enableDebug=t.Util.stringToBoolOrDefault(n.enableDebug),n.disableExceptionTracking=n.disableExceptionTracking!==undefined&&n.disableExceptionTracking!==null?t.Util.stringToBoolOrDefault(n.disableExceptionTracking):!1,n.disableTelemetry=t.Util.stringToBoolOrDefault(n.disableTelemetry),n.verboseLogging=t.Util.stringToBoolOrDefault(n.verboseLogging),n.emitLineDelimitedJson=t.Util.stringToBoolOrDefault(n.emitLineDelimitedJson),n.diagnosticLogInterval=n.diagnosticLogInterval||1e4,n.autoTrackPageVisitTime=t.Util.stringToBoolOrDefault(n.autoTrackPageVisitTime),(isNaN(n.samplingPercentage)||n.samplingPercentage<=0||n.samplingPercentage>=100)&&(n.samplingPercentage=100),n.disableAjaxTracking=n.disableAjaxTracking!==undefined&&n.disableAjaxTracking!==null?t.Util.stringToBoolOrDefault(n.disableAjaxTracking):!1,n.maxAjaxCallsPerView=isNaN(n.maxAjaxCallsPerView)?500:n.maxAjaxCallsPerView,n.disableCorrelationHeaders=n.disableCorrelationHeaders!==undefined&&n.disableCorrelationHeaders!==null?t.Util.stringToBoolOrDefault(n.disableCorrelationHeaders):!0,n.disableFlushOnBeforeUnload=n.disableFlushOnBeforeUnload!==undefined&&n.disableFlushOnBeforeUnload!==null?t.Util.stringToBoolOrDefault(n.disableFlushOnBeforeUnload):!1,n},i}();t.Initialization=i})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(){"use strict";var r,u;try{if(typeof window!="undefined"&&typeof JSON!="undefined")if(r="appInsights",window[r]===undefined)n.ApplicationInsights.AppInsights.defaultConfig=n.ApplicationInsights.Initialization.getDefaultConfig();else{var f=window[r]||{},t=new n.ApplicationInsights.Initialization(f),i=t.loadAppInsights();for(u in i)f[u]=i[u];t.emptyQueue();t.pollInteralLogs(i);t.addHousekeepingBeforeUnload(i)}}catch(e){n.ApplicationInsights._InternalLogging.warnToConsole("Failed to initialize AppInsights JS SDK: "+e.message)}})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={}))
WebApi/GTech.Solution.sln
New file
@@ -0,0 +1,43 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GTech.Solution.Api.Common", "GTech.Solution.Api.Common\GTech.Solution.Api.Common.csproj", "{8F7DFF8F-296B-457F-A667-941EE23ABF0B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GTech.Solution.Api.Contract", "GTech.Solution.Api.Contract\GTech.Solution.Api.Contract.csproj", "{13B3BD45-EBD9-477D-BF78-472DD065E7A2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GTech.Solution.Api.Domain", "GTech.Solution.Api.Domain\GTech.Solution.Api.Domain.csproj", "{4A2930DE-7BF4-4368-B6AD-B74B9043DA7D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GTech.Solution.Api.WebSite", "GTech.Solution.Api.WebSite\GTech.Solution.Api.WebSite.csproj", "{33766936-4425-4E2C-B196-A5C1772560E9}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
        Release|Any CPU = Release|Any CPU
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {8F7DFF8F-296B-457F-A667-941EE23ABF0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {8F7DFF8F-296B-457F-A667-941EE23ABF0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {8F7DFF8F-296B-457F-A667-941EE23ABF0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {8F7DFF8F-296B-457F-A667-941EE23ABF0B}.Release|Any CPU.Build.0 = Release|Any CPU
        {13B3BD45-EBD9-477D-BF78-472DD065E7A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {13B3BD45-EBD9-477D-BF78-472DD065E7A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {13B3BD45-EBD9-477D-BF78-472DD065E7A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {13B3BD45-EBD9-477D-BF78-472DD065E7A2}.Release|Any CPU.Build.0 = Release|Any CPU
        {4A2930DE-7BF4-4368-B6AD-B74B9043DA7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {4A2930DE-7BF4-4368-B6AD-B74B9043DA7D}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {4A2930DE-7BF4-4368-B6AD-B74B9043DA7D}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {4A2930DE-7BF4-4368-B6AD-B74B9043DA7D}.Release|Any CPU.Build.0 = Release|Any CPU
        {33766936-4425-4E2C-B196-A5C1772560E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {33766936-4425-4E2C-B196-A5C1772560E9}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {33766936-4425-4E2C-B196-A5C1772560E9}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {33766936-4425-4E2C-B196-A5C1772560E9}.Release|Any CPU.Build.0 = Release|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
    EndGlobalSection
    GlobalSection(ExtensibilityGlobals) = postSolution
        SolutionGuid = {1F5E4C41-5A5A-4424-B701-2B66FC02BBA1}
    EndGlobalSection
EndGlobal
WebApi/README.md
New file
@@ -0,0 +1,4 @@
## wastesorting
WebApi/packages/JWT.7.3.0/.signature.p7s
Binary files differ
WebApi/packages/JWT.7.3.0/JWT.7.3.0.nupkg
Binary files differ
WebApi/packages/JWT.7.3.0/lib/net35/JWT.pdb
Binary files differ
WebApi/packages/JWT.7.3.0/lib/net35/JWT.xml
New file
@@ -0,0 +1,1218 @@
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>JWT</name>
    </assembly>
    <members>
        <member name="T:JWT.Algorithms.DelegateAlgorithmFactory">
            <summary>
            Implements <see href="IAlgorithmFactory" /> by returning the supplied <see href="IJwtAlgorithm" /> while ignoring parameters.
            </summary>
        </member>
        <member name="M:JWT.Algorithms.DelegateAlgorithmFactory.#ctor(System.Func{JWT.Algorithms.IJwtAlgorithm})">
            <summary>
            Creates an instance of <see cref="T:JWT.Algorithms.DelegateAlgorithmFactory" /> with supplied delegate to an algorithm.
            </summary>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.Algorithms.DelegateAlgorithmFactory.#ctor(JWT.Algorithms.IJwtAlgorithm)">
            <summary>
            Creates an instance of <see cref="T:JWT.Algorithms.DelegateAlgorithmFactory" /> with supplied algorithm.
            </summary>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.Algorithms.DelegateAlgorithmFactory.Create(JWT.JwtDecoderContext)">
            <inheritdoc />
        </member>
        <member name="T:JWT.Algorithms.HMACSHA256Algorithm">
            <summary>
            HMAC using SHA-256
            </summary>
        </member>
        <member name="M:JWT.Algorithms.HMACSHA256Algorithm.Sign(System.Byte[],System.Byte[])">
            <inheritdoc />
        </member>
        <member name="P:JWT.Algorithms.HMACSHA256Algorithm.Name">
            <inheritdoc />
        </member>
        <member name="T:JWT.Algorithms.HMACSHA384Algorithm">
            <summary>
            HMAC using SHA-384
            </summary>
        </member>
        <member name="M:JWT.Algorithms.HMACSHA384Algorithm.Sign(System.Byte[],System.Byte[])">
            <inheritdoc />
        </member>
        <member name="P:JWT.Algorithms.HMACSHA384Algorithm.Name">
            <inheritdoc />
        </member>
        <member name="T:JWT.Algorithms.HMACSHA512Algorithm">
            <summary>
            HMAC using SHA-512
            </summary>
        </member>
        <member name="M:JWT.Algorithms.HMACSHA512Algorithm.Sign(System.Byte[],System.Byte[])">
            <inheritdoc />
        </member>
        <member name="P:JWT.Algorithms.HMACSHA512Algorithm.Name">
            <inheritdoc />
        </member>
        <member name="T:JWT.Algorithms.HMACSHAAlgorithmFactory">
            <inheritdoc />
        </member>
        <member name="M:JWT.Algorithms.HMACSHAAlgorithmFactory.Create(JWT.JwtDecoderContext)">
            <inheritdoc />
        </member>
        <member name="T:JWT.Algorithms.IAlgorithmFactory">
            <summary>
            Provides IJwtAlgorithms.
            </summary>
        </member>
        <member name="M:JWT.Algorithms.IAlgorithmFactory.Create(JWT.JwtDecoderContext)">
            <summary>
            Creates an AlgorithmFactory using the provided algorithm enum.
            </summary>
            <param name="context">The captured context during validation of JWT inside <see cref="T:JWT.JwtDecoder"/></param>
        </member>
        <member name="T:JWT.Algorithms.IAsymmetricAlgorithm">
            <summary>
            Represents an asymmetric algorithm to generate or validate JWT signature.
            </summary>
        </member>
        <member name="M:JWT.Algorithms.IAsymmetricAlgorithm.Verify(System.Byte[],System.Byte[])">
            <summary>
            Verifies provided byte array with provided signature.
            </summary>
            <param name="bytesToSign">The data to verify</param>
            <param name="signature">The signature to verify with</param>
        </member>
        <member name="T:JWT.Algorithms.IJwtAlgorithm">
            <summary>
            Represents an algorithm to generate JWT signature.
            </summary>
        </member>
        <member name="M:JWT.Algorithms.IJwtAlgorithm.Sign(System.Byte[],System.Byte[])">
            <summary>
            Signs provided byte array with provided key.
            </summary>
            <param name="key">The key used to sign the data</param>
            <param name="bytesToSign">The data to sign</param>
        </member>
        <member name="P:JWT.Algorithms.IJwtAlgorithm.Name">
            <summary>
            Gets algorithm name.
            </summary>
        </member>
        <member name="T:JWT.Algorithms.JwtAlgorithmExtensions">
             <summary>
             Extension methods for <seealso cref="T:JWT.Algorithms.IJwtAlgorithm" />
            </summary>
        </member>
        <member name="M:JWT.Algorithms.JwtAlgorithmExtensions.IsAsymmetric(JWT.Algorithms.IJwtAlgorithm)">
            <summary>
            Returns whether or not the algorithm is asymmetric.
            </summary>
            <param name="alg">The algorithm instance.</param>
        </member>
        <member name="T:JWT.Algorithms.JwtAlgorithmName">
            <summary>
            Enum representing the various Jwt Hash Algorithms.
            </summary>
        </member>
        <member name="F:JWT.Algorithms.JwtAlgorithmName.HS256">
            <summary>
            HMAC using SHA-256
            </summary>
        </member>
        <member name="F:JWT.Algorithms.JwtAlgorithmName.HS384">
            <summary>
            HMAC using SHA-384
            </summary>
        </member>
        <member name="F:JWT.Algorithms.JwtAlgorithmName.HS512">
            <summary>
            HMAC using SHA-512
            </summary>
        </member>
        <member name="F:JWT.Algorithms.JwtAlgorithmName.RS256">
            <summary>
            RSASSA-PKCS1-v1_5 using SHA-256
            </summary>
        </member>
        <member name="T:JWT.Algorithms.RS256Algorithm">
            <summary>
            RSASSA-PKCS1-v1_5 using SHA-256
            </summary>
        </member>
        <member name="M:JWT.Algorithms.RS256Algorithm.#ctor(System.Security.Cryptography.RSA,System.Security.Cryptography.RSA)">
            <summary>
            Creates an instance of <see cref="T:JWT.Algorithms.RS256Algorithm" /> using the provided pair of public and private keys.
            </summary>
            <param name="publicKey">The public key for verifying the data.</param>
            <param name="privateKey">The private key for signing the data.</param>
        </member>
        <member name="M:JWT.Algorithms.RS256Algorithm.#ctor(System.Security.Cryptography.RSA)">
            <summary>
            Creates an instance of <see cref="T:JWT.Algorithms.RS256Algorithm" /> using the provided public key only.
            </summary>
            <remarks>
            An instance created using this constructor can only be used for verifying the data, not for signing it.
            </remarks>
            <param name="publicKey">The public key for verifying the data.</param>
        </member>
        <member name="M:JWT.Algorithms.RS256Algorithm.#ctor(System.Security.Cryptography.X509Certificates.X509Certificate2)">
            <summary>
            Creates an instance using the provided certificate.
            </summary>
            <param name="cert">The certificate having a public key and an optional private key.</param>
        </member>
        <member name="P:JWT.Algorithms.RS256Algorithm.Name">
            <inheritdoc />
        </member>
        <member name="M:JWT.Algorithms.RS256Algorithm.Sign(System.Byte[],System.Byte[])">
            <inheritdoc />
        </member>
        <member name="M:JWT.Algorithms.RS256Algorithm.Sign(System.Byte[])">
            <summary>
            Signs the provided bytes.
            </summary>
            <param name="bytesToSign">The bytes to sign.</param>
            <returns>The signed bytes.</returns>
        </member>
        <member name="M:JWT.Algorithms.RS256Algorithm.Verify(System.Byte[],System.Byte[])">
            <inheritdoc />
        </member>
        <member name="T:JWT.Algorithms.RSAlgorithmFactory">
            <inheritdoc />
        </member>
        <member name="M:JWT.Algorithms.RSAlgorithmFactory.#ctor(System.Func{System.Security.Cryptography.X509Certificates.X509Certificate2})">
            <summary>
            Creates an instance of the <see cref="T:JWT.Algorithms.RSAlgorithmFactory" /> class using the provided <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2" />.
            </summary>
            <param name="certFactory">Func that returns <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2" /> which will be used to instantiate <see cref="T:JWT.Algorithms.RS256Algorithm" /></param>
        </member>
        <member name="M:JWT.Algorithms.RSAlgorithmFactory.#ctor(System.Security.Cryptography.RSA)">
            <summary>
            Creates an instance of <see cref="T:JWT.Algorithms.RSAlgorithmFactory"/> using the provided public key only.
            </summary>
            <param name="publicKey">The public key for verifying the data.</param>
        </member>
        <member name="M:JWT.Algorithms.RSAlgorithmFactory.#ctor(System.Security.Cryptography.RSA,System.Security.Cryptography.RSA)">
            <summary>
            Creates an instance of <see cref="T:JWT.Algorithms.RSAlgorithmFactory"/> using the provided pair of public and private keys.
            </summary>
            <param name="publicKey">The public key for verifying the data.</param>
            <param name="privateKey">The private key for signing the data.</param>
        </member>
        <member name="T:JWT.Builder.ClaimName">
            <summary>
            All public claims of a JWT specified by IANA, see https://www.iana.org/assignments/jwt/jwt.xhtml
            </summary>
        </member>
        <member name="M:JWT.Builder.EnumExtensions.GetHeaderName(JWT.Builder.HeaderName)">
            <summary>
            Gets the string representation of a well-known header name enum
            </summary>
        </member>
        <member name="M:JWT.Builder.EnumExtensions.GetPublicClaimName(JWT.Builder.ClaimName)">
            <summary>
            Gets the string representation of a well-known claim name enum
            </summary>
        </member>
        <member name="M:JWT.Builder.EnumExtensions.GetDescription``1(``0)">
            <summary>
            Gets the value of the <see cref="T:System.ComponentModel.DescriptionAttribute" /> from the object.
            </summary>
        </member>
        <member name="T:JWT.Builder.HeaderName">
            <summary>
            All predefined parameter names specified by RFC 7515, see https://tools.ietf.org/html/rfc7515
            </summary>
        </member>
        <member name="T:JWT.Builder.JwtBuilder">
            <summary>
            Encode and decode JWT with Fluent API.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.AddHeader(JWT.Builder.HeaderName,System.Object)">
            <summary>
            Add header to the JWT.
            </summary>
            <param name="name">Well-known header name</param>
            <param name="value">The value you want give to the header</param>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.AddClaim(System.String,System.Object)">
            <summary>
            Adds claim to the JWT.
            </summary>
            <param name="name">Claim name</param>
            <param name="value">Claim value</param>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithSerializer(JWT.IJsonSerializer)">
            <summary>
            Sets JWT serializer.
            </summary>
            <remarks>
            If not set then default <see cref="T:JWT.Serializers.JsonNetSerializer" /> will be used.
            </remarks>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithDateTimeProvider(JWT.IDateTimeProvider)">
            <summary>
            Sets custom datetime provider.
            </summary>
            <remarks>
            If not set then default <see cref="T:JWT.UtcDateTimeProvider" /> will be used.
            </remarks>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithEncoder(JWT.IJwtEncoder)">
            <summary>
            Sets JWT encoder.
            </summary>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithDecoder(JWT.IJwtDecoder)">
            <summary>
            Sets JWT decoder.
            </summary>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithValidator(JWT.IJwtValidator)">
            <summary>
            Sets JWT validator.
            </summary>
            <remarks>
            Required to decode with verification.
            </remarks>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithUrlEncoder(JWT.IBase64UrlEncoder)">
            <summary>
            Sets custom URL encoder.
            </summary>
            <remarks>
            If not set then default <see cref="T:JWT.JwtBase64UrlEncoder" /> will be used.
            </remarks>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithAlgorithmFactory(JWT.Algorithms.IAlgorithmFactory)">
            <summary>
            Sets JWT algorithm factory.
            </summary>
            <returns>Current builder instance.</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithAlgorithm(JWT.Algorithms.IJwtAlgorithm)">
            <summary>
            Sets JWT algorithm.
            </summary>
            <returns>Current builder instance.</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithSecret(System.String[])">
            <summary>
            Sets certificate secret.
            </summary>
            <remarks>
            Required to create new token that uses an symmetric algorithm such as <seealso cref="T:JWT.Algorithms.RS256Algorithm" />
            </remarks>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithSecret(System.Byte[][])">
            <summary>
            Sets certificate secret.
            </summary>
            <remarks>
            Required to create new token that uses an symmetric algorithm such as <seealso cref="T:JWT.Algorithms.RS256Algorithm" />
            </remarks>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.MustVerifySignature">
            <summary>
            Instructs to do verify the JWT signature.
            </summary>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.DoNotVerifySignature">
            <summary>
            Instructs to do not verify the JWT signature.
            </summary>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.WithVerifySignature(System.Boolean)">
            <summary>
            Instructs whether to verify the JWT signature.
            </summary>
            <returns>Current builder instance</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.Encode">
            <summary>
            Encodes a token using the supplied dependencies.
            </summary>
            <returns>The generated JWT</returns>
            <exception cref="T:System.InvalidOperationException">Thrown if either algorithm, serializer, encoder or secret is null</exception>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.Decode(System.String)">
            <summary>
            Decodes a token using the supplied dependencies.
            </summary>
            <param name="token">The JWT</param>
            <returns>The JSON payload</returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.DecodeHeader(System.String)">
            <summary>
            Given a JWT, decodes it and return the header.
            </summary>
            <param name="token">The JWT</param>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.DecodeHeader``1(System.String)">
            <summary>
            Given a JWT, decodes it and return the header.
            </summary>
            <param name="token">The JWT</param>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.Decode``1(System.String)">
            <summary>
            Decodes a token using the supplied dependencies.
            </summary>
            <param name="token">The JWT</param>
            <returns>The payload converted to <see cref="!:T" /></returns>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.CanEncode">
            <summary>
            Checks whether enough dependencies were supplied to encode a new token.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtBuilder.CanDecode">
            <summary>
            Checks whether enough dependencies were supplied to decode a token.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtBuilderExtensions.AddClaim(JWT.Builder.JwtBuilder,JWT.Builder.ClaimName,System.Object)">
            <summary>
            Adds well-known claim to the JWT.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtBuilderExtensions.AddClaim``1(JWT.Builder.JwtBuilder,JWT.Builder.ClaimName,``0)">
            <summary>
            Adds well-known claim to the JWT.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtBuilderExtensions.AddClaim``1(JWT.Builder.JwtBuilder,System.String,``0)">
            <summary>
            Adds well-known claim to the JWT.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtBuilderExtensions.AddClaims(JWT.Builder.JwtBuilder,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
            <summary>
            Adds several claims to the JWT
            </summary>
        </member>
        <member name="T:JWT.Builder.JwtData">
            <summary>
            Represents the Data that will store in a JWT.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtData.#ctor">
            <summary>
            Creates a new instance of <see cref="T:JWT.Builder.JwtData" /> with empty Header and Payload.
            </summary>
        </member>
        <member name="M:JWT.Builder.JwtData.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>
            Creates a new instance of <see cref="T:JWT.Builder.JwtData" />
            </summary>
            <param name="payload">Dictionary that contans the payload</param>
        </member>
        <member name="M:JWT.Builder.JwtData.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object},System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>
            Creates a new instance of <see cref="T:JWT.Builder.JwtData" />
            </summary>
            <param name="header">Dictionary that contains the headers</param>
            <param name="payload">Dictionary that contans the payload</param>
        </member>
        <member name="M:JWT.Builder.JwtData.#ctor(System.String)">
            <summary>
            Creates a new instance of <see cref="T:JWT.Builder.JwtData" />
            </summary>
            <param name="token">The JWT token</param>
        </member>
        <member name="P:JWT.Builder.JwtData.Header">
            <summary>
            The header information as a key-value store of the JWT
            </summary>
        </member>
        <member name="P:JWT.Builder.JwtData.Payload">
            <summary>
            The payload of the JWT as a key-value store
            </summary>
        </member>
        <member name="T:JWT.Builder.JwtHeader">
            <summary>
            JSON header model with predefined parameter names specified by RFC 7515, see https://tools.ietf.org/html/rfc7515
            </summary>
        </member>
        <member name="T:JWT.Exceptions.InvalidTokenPartsException">
            <summary>
            Represents an exception thrown when when a token doesn't consist of 3 delimited by dot parts.
            </summary>
        </member>
        <member name="M:JWT.Exceptions.InvalidTokenPartsException.#ctor(System.String)">
            <summary>
            Creates an instance of <see cref="T:JWT.Exceptions.InvalidTokenPartsException" />
            </summary>
            <param name="paramName">The name of the parameter that caused the exception</param>
        </member>
        <member name="T:JWT.Exceptions.SignatureVerificationException">
            <summary>
            Represents an exception thrown when a signature validation fails.
            </summary>
        </member>
        <member name="M:JWT.Exceptions.SignatureVerificationException.#ctor(System.String)">
            <summary>
            Creates an instance of <see cref="T:JWT.Exceptions.SignatureVerificationException" />
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="P:JWT.Exceptions.SignatureVerificationException.Expected">
            <summary>
            Expected key.
            </summary>
        </member>
        <member name="P:JWT.Exceptions.SignatureVerificationException.Received">
            <summary>
            Received key.
            </summary>
        </member>
        <member name="M:JWT.Exceptions.SignatureVerificationException.GetOrDefault``1(System.String)">
            <summary>
            Retrieves the value for the provided key, or default.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="key">The key</param>
            <returns></returns>
        </member>
        <member name="T:JWT.Exceptions.TokenExpiredException">
            <summary>
            Represents an exception thrown when when a token is expired.
            </summary>
        </member>
        <member name="M:JWT.Exceptions.TokenExpiredException.#ctor(System.String)">
            <summary>
            Creates an instance of <see cref="T:JWT.Exceptions.TokenExpiredException" />
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="P:JWT.Exceptions.TokenExpiredException.PayloadData">
            <summary>
            The payload.
            </summary>
        </member>
        <member name="P:JWT.Exceptions.TokenExpiredException.Expiration">
            <summary>
            The expiration DateTime of the token.
            </summary>
        </member>
        <member name="T:JWT.IBase64UrlEncoder">
            <summary>
            Represents a base64 encoder/decoder.
            </summary>
        </member>
        <member name="M:JWT.IBase64UrlEncoder.Encode(System.Byte[])">
            <summary>
            Encodes the byte array to a Base64 string.
            </summary>
        </member>
        <member name="M:JWT.IBase64UrlEncoder.Decode(System.String)">
            <summary>
            Decodes the Base64 string to a byte array.
            </summary>
        </member>
        <member name="T:JWT.IDateTimeProvider">
            <summary>
            Represents a DateTime provider.
            </summary>
        </member>
        <member name="M:JWT.IDateTimeProvider.GetNow">
            <summary>
            Gets the current DateTime.
            </summary>
        </member>
        <member name="T:JWT.IJsonSerializer">
            <summary>
            Provides JSON Serialize and Deserialize.  Allows custom serializers used.
            </summary>
        </member>
        <member name="M:JWT.IJsonSerializer.Serialize(System.Object)">
            <summary>
            Serialize an object to JSON string
            </summary>
            <param name="obj">object</param>
            <returns>JSON string</returns>
        </member>
        <member name="M:JWT.IJsonSerializer.Deserialize``1(System.String)">
            <summary>
            Deserialize a JSON string to typed object.
            </summary>
            <typeparam name="T">type of object</typeparam>
            <param name="json">JSON string</param>
            <returns>Strongly-typed object</returns>
        </member>
        <member name="T:JWT.IJwtDecoder">
            <summary>
            Represents a JWT decoder.
            </summary>
        </member>
        <member name="M:JWT.IJwtDecoder.DecodeHeader(System.String)">
            <summary>
            Given a JWT, decodes it and return the header.
            </summary>
            <param name="token">The JWT</param>
        </member>
        <member name="M:JWT.IJwtDecoder.DecodeHeader``1(JWT.JwtParts)">
            <summary>
            Given a JWT, decodes it and return the header as an object.
            </summary>
            <param name="jwt">The JWT</param>
        </member>
        <member name="M:JWT.IJwtDecoder.Decode(JWT.JwtParts)">
            <summary>
            Given a JWT, decodes it and return the payload.
            </summary>
            <param name="jwt">The JWT</param>
            <returns>A string containing the JSON payload</returns>
        </member>
        <member name="M:JWT.IJwtDecoder.Decode(JWT.JwtParts,System.Byte[],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload.
            </summary>
            <param name="jwt">The JWT</param>
            <param name="key">The key that were used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>A string containing the JSON payload</returns>
        </member>
        <member name="M:JWT.IJwtDecoder.Decode(JWT.JwtParts,System.Byte[][],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload.
            </summary>
            <param name="jwt">The JWT</param>
            <param name="keys">The keys provided which one of them was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>A string containing the JSON payload</returns>
        </member>
        <member name="M:JWT.IJwtDecoder.DecodeToObject``1(JWT.JwtParts)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="jwt">The JWT</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="M:JWT.IJwtDecoder.DecodeToObject``1(JWT.JwtParts,System.Byte[],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="jwt">The JWT</param>
            <param name="key">The key that was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="M:JWT.IJwtDecoder.DecodeToObject``1(JWT.JwtParts,System.Byte[][],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="jwt">The JWT</param>
            <param name="keys">The keys which one of them was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="T:JWT.JwtDecoderExtensions">
             <summary>
             Extension methods for <seealso cref="T:JWT.IJwtDecoder" />
            </summary>
        </member>
        <member name="M:JWT.JwtDecoderExtensions.Decode(JWT.IJwtDecoder,System.String)">
            <summary>
            Given a JWT, decodes it and return the payload.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <returns>A string containing the JSON payload</returns>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:JWT.Exceptions.InvalidTokenPartsException" />
        </member>
        <member name="M:JWT.JwtDecoderExtensions.Decode(JWT.IJwtDecoder,JWT.JwtParts)">
            <summary>
            Given a JWT, decodes it and return the payload.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="jwt">The JWT</param>
            <returns>A string containing the JSON payload</returns>
        </member>
        <member name="M:JWT.JwtDecoderExtensions.Decode(JWT.IJwtDecoder,System.String,System.Byte[],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="key">The key that was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>A string containing the JSON payload</returns>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:JWT.Exceptions.InvalidTokenPartsException" />
        </member>
        <member name="M:JWT.JwtDecoderExtensions.Decode(JWT.IJwtDecoder,System.String,System.Byte[][],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="keys">The keys that were used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>A string containing the JSON payload</returns>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:JWT.Exceptions.InvalidTokenPartsException" />
        </member>
        <member name="M:JWT.JwtDecoderExtensions.Decode(JWT.IJwtDecoder,System.String,System.String,System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an dictionary.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="key">The key that was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
        </member>
        <member name="M:JWT.JwtDecoderExtensions.Decode(JWT.IJwtDecoder,System.String,System.String[],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an dictionary.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="keys">The key which one of them was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject``1(JWT.IJwtDecoder,System.String)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject(JWT.IJwtDecoder,System.String)">
            <summary>
            Given a JWT, decodes it and return the payload as a dictionary.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject(JWT.IJwtDecoder,System.String,System.Byte[],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as a dictionary.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="key">The key that was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
            <exception cref = "T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:JWT.Exceptions.InvalidTokenPartsException" />
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject(JWT.IJwtDecoder,System.String,System.Byte[][],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as a dictionary.
            </summary>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="keys">The keys that were used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>A string containing the JSON payload</returns>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:JWT.Exceptions.InvalidTokenPartsException" />
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject``1(JWT.IJwtDecoder,System.String,System.String,System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="key">The key that was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject``1(JWT.IJwtDecoder,System.String,System.Byte[],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="key">The key that was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject``1(JWT.IJwtDecoder,System.String,System.Byte[][],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="keys">The keys provided which one of them was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="M:JWT.JwtDecoderExtensions.DecodeToObject``1(JWT.IJwtDecoder,System.String,System.String[],System.Boolean)">
            <summary>
            Given a JWT, decodes it and return the payload as an object.
            </summary>
            <typeparam name="T">The type to return</typeparam>
            <param name="decoder">The decoder instance</param>
            <param name="token">The JWT</param>
            <param name="keys">The keys provided which one of them was used to sign the JWT</param>
            <param name="verify">Whether to verify the signature (default is true)</param>
            <returns>An object representing the payload</returns>
        </member>
        <member name="T:JWT.IJwtEncoder">
            <summary>
            Represents a JWT encoder.
            </summary>
        </member>
        <member name="M:JWT.IJwtEncoder.Encode(System.Collections.Generic.IDictionary{System.String,System.Object},System.Object,System.Byte[])">
            <summary>
            Creates a JWT given a header, a payload, the signing key, and the algorithm to use.
            </summary>
            <param name="extraHeaders">An arbitrary set of extra headers. Will be augmented with the standard "typ" and "alg" headers</param>
            <param name="payload">An arbitrary payload (must be serializable to JSON)</param>
            <param name="key">The key bytes used to sign the token</param>
            <returns>The generated JWT</returns>
        </member>
        <member name="T:JWT.JwtEncoderExtensions">
             <summary>
             Extension methods for <seealso cref="T:JWT.IJwtEncoder" />
            </summary>
        </member>
        <member name="M:JWT.JwtEncoderExtensions.Encode(JWT.IJwtEncoder,System.Object,System.String)">
            <summary>
            Creates a JWT given a payload, the signing key, and the algorithm to use.
            </summary>
            <param name="encoder">The encoder instance</param>
            <param name="payload">An arbitrary payload (must be serializable to JSON)</param>
            <param name="key">The key used to sign the token</param>
            <returns>The generated JWT</returns>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.JwtEncoderExtensions.Encode(JWT.IJwtEncoder,System.Object,System.Byte[])">
            <summary>
            Creates a JWT given a payload, the signing key, and the algorithm to use.
            </summary>
            <param name="encoder">The encoder instance</param>
            <param name="payload">An arbitrary payload (must be serializable to JSON)</param>
            <param name="key">The key used to sign the token</param>
            <returns>The generated JWT</returns>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.JwtEncoderExtensions.Encode(JWT.IJwtEncoder,System.Collections.Generic.IDictionary{System.String,System.Object},System.Object,System.String)">
            <summary>
            Creates a JWT given a set of arbitrary extra headers, a payload, the signing key, and the algorithm to use.
            </summary>
            <param name="encoder">The encoder instance</param>
            <param name="extraHeaders">An arbitrary set of extra headers. Will be augmented with the standard "typ" and "alg" headers</param>
            <param name="payload">An arbitrary payload (must be serializable to JSON)</param>
            <param name="key">The key bytes used to sign the token</param>
            <returns>The generated JWT</returns>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="T:JWT.IJwtValidator">
            <summary>
            Represents a JWT validator.
            </summary>
        </member>
        <member name="M:JWT.IJwtValidator.Validate(System.String,System.String,System.String[])">
            <summary>
            Given the JWT, verifies its signature correctness.
            </summary>
            <param name="decodedPayload">>An arbitrary payload (already serialized to JSON)</param>
            <param name="signature">Decoded body</param>
            <param name="decodedSignatures">The signatures to validate with</param>
        </member>
        <member name="M:JWT.IJwtValidator.Validate(System.String,JWT.Algorithms.IAsymmetricAlgorithm,System.Byte[],System.Byte[])">
            <summary>
            Given the JWT, verifies its signature correctness.
            </summary>
            <remarks>
            Used by the asymmetric algorithms only.
            </remarks>
            <param name="decodedPayload">>An arbitrary payload (already serialized to JSON)</param>
            <param name="alg">The asymmetric algorithm to validate with</param>
            <param name="bytesToSign">The header and payload bytes to validate</param>
            <param name="decodedSignature">The signature to validate with</param>
        </member>
        <member name="M:JWT.IJwtValidator.TryValidate(System.String,System.String,System.String,System.Exception@)">
            <summary>
            Given the JWT, verifies its signature correctness without throwing an exception but returning it instead.
            </summary>
            <param name="payloadJson">>An arbitrary payload (already serialized to JSON)</param>
            <param name="signature">Decoded body</param>
            <param name="decodedSignature">The signature to validate with</param>
            <param name="ex">The resulting validation exception, if any</param>
            <returns>Returns <c>true</c> if exception is JWT is valid and exception is null, otherwise false</returns>
        </member>
        <member name="M:JWT.IJwtValidator.TryValidate(System.String,System.String,System.String[],System.Exception@)">
            <summary>
            Given the JWT, verifies its signature correctness without throwing an exception but returning it instead.
            </summary>
            <param name="payloadJson">>An arbitrary payload (already serialized to JSON)</param>
            <param name="signature">Decoded body</param>
            <param name="decodedSignature">The signatures to validate with</param>
            <param name="ex">The resulting validation exception, if any</param>
            <returns>Returns <c>true</c> if exception is JWT is valid and exception is null, otherwise false</returns>
        </member>
        <member name="M:JWT.IJwtValidator.TryValidate(System.String,JWT.Algorithms.IAsymmetricAlgorithm,System.Byte[],System.Byte[],System.Exception@)">
            <summary>
            Given the JWT, verifies its signatures correctness without throwing an exception but returning it instead.
            </summary>
            <param name="payloadJson">>An arbitrary payload (already serialized to JSON)</param>
            <param name="alg">The asymmetric algorithm to validate with</param>
            <param name="bytesToSign">The header and payload bytes to validate</param>
            <param name="decodedSignature">The decodedSignatures to validate with</param>
            <param name="ex">Validation exception, if any</param>
            <returns>True if exception is JWT is valid and exception is null, otherwise false</returns>
        </member>
        <member name="T:JWT.JwtBase64UrlEncoder">
            <summary>
            Base64 encoding/decoding implementation according to the JWT spec
            </summary>
        </member>
        <member name="M:JWT.JwtBase64UrlEncoder.Encode(System.Byte[])">
            <inheritdoc />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
        </member>
        <member name="M:JWT.JwtBase64UrlEncoder.Decode(System.String)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.FormatException" />
        </member>
        <member name="T:JWT.JwtDecoder">
            <summary>
            Decodes JWT.
            </summary>
        </member>
        <member name="M:JWT.JwtDecoder.#ctor(JWT.IJsonSerializer,JWT.IBase64UrlEncoder)">
            <summary>
            Creates an instance of <see cref="T:JWT.JwtDecoder" />
            </summary>
            <remarks>
            This overload supplies no <see cref="T:JWT.IJwtValidator" /> and no <see cref="T:JWT.Algorithms.IAlgorithmFactory" /> so the resulting decoder cannot be used for signature validation.
            </remarks>
            <param name="jsonSerializer">The Json Serializer</param>
            <param name="urlEncoder">The Base64 URL Encoder</param>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.JwtDecoder.#ctor(JWT.IJsonSerializer,JWT.IJwtValidator,JWT.IBase64UrlEncoder,JWT.Algorithms.IAlgorithmFactory)">
            <summary>
            Creates an instance of <see cref="T:JWT.JwtDecoder" />
            </summary>
            <param name="jsonSerializer">The Json Serializer</param>
            <param name="jwtValidator">The Jwt validator</param>
            <param name="urlEncoder">The Base64 URL Encoder</param>
            <param name="algFactory">The Algorithm Factory</param>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.JwtDecoder.#ctor(JWT.IJsonSerializer,JWT.IJwtValidator,JWT.IBase64UrlEncoder,JWT.Algorithms.IJwtAlgorithm)">
            <summary>
            Creates an instance of <see cref="T:JWT.JwtDecoder" />
            </summary>
            <param name="jsonSerializer">The Json Serializer</param>
            <param name="jwtValidator">The Jwt validator</param>
            <param name="urlEncoder">The Base64 URL Encoder</param>
            <param name="algorithm">The Algorithm</param>
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.JwtDecoder.DecodeHeader(System.String)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:JWT.Exceptions.InvalidTokenPartsException" />
            <exception cref="T:System.FormatException" />
        </member>
        <member name="M:JWT.JwtDecoder.DecodeHeader``1(JWT.JwtParts)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.FormatException" />
        </member>
        <member name="M:JWT.JwtDecoder.Decode(JWT.JwtParts)">
            <inheritdoc />
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="M:JWT.JwtDecoder.Decode(JWT.JwtParts,System.Byte[],System.Boolean)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:JWT.Exceptions.InvalidTokenPartsException" />
            <exception cref="T:System.FormatException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="M:JWT.JwtDecoder.Decode(JWT.JwtParts,System.Byte[][],System.Boolean)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:System.FormatException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="M:JWT.JwtDecoder.DecodeToObject``1(JWT.JwtParts)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:System.FormatException" />
        </member>
        <member name="M:JWT.JwtDecoder.DecodeToObject``1(JWT.JwtParts,System.Byte[],System.Boolean)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:System.FormatException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="M:JWT.JwtDecoder.DecodeToObject``1(JWT.JwtParts,System.Byte[][],System.Boolean)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:System.FormatException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="M:JWT.JwtDecoder.Validate(System.String[],System.Byte[])">
            <summary>
            Prepares data before calling <see cref="T:JWT.IJwtValidator" />
            </summary>
            <param name="parts">The array representation of a JWT</param>
            <param name="key">The key that was used to sign the JWT</param>
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:System.FormatException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="M:JWT.JwtDecoder.Validate(System.String[],System.Byte[][])">
            <summary>
            Prepares data before calling <see cref="T:JWT.IJwtValidator" />
            </summary>
            <param name="parts">The array representation of a JWT</param>
            <param name="keys">The keys provided which one of them was used to sign the JWT</param>
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:System.FormatException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="M:JWT.JwtDecoder.Validate(JWT.JwtParts,System.Byte[][])">
            <summary>
            Prepares data before calling <see cref="T:JWT.IJwtValidator" />
            </summary>
            <param name="jwt">The JWT parts</param>
            <param name="keys">The keys provided which one of them was used to sign the JWT</param>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
            <exception cref="T:System.FormatException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="P:JWT.JwtDecoderContext.Token">
            <summary>
            Unmodified JWT.
            </summary>
        </member>
        <member name="P:JWT.JwtDecoderContext.Header">
            <summary>
            Deserialized JWT header.
            </summary>
        </member>
        <member name="P:JWT.JwtDecoderContext.Payload">
            <summary>
            Decoded JWT payload.
            </summary>
        </member>
        <member name="T:JWT.JwtEncoder">
            <summary>
            Encodes Jwt.
            </summary>
        </member>
        <member name="M:JWT.JwtEncoder.#ctor(JWT.Algorithms.IJwtAlgorithm,JWT.IJsonSerializer,JWT.IBase64UrlEncoder)">
            <summary>
            Creates an instance of <see cref="T:JWT.JwtEncoder" />
            </summary>
            <param name="jsonSerializer">The Json Serializer</param>
            <param name="algorithm">The Jwt Algorithm</param>
            <param name="urlEncoder">The Base64 URL Encoder</param>
        </member>
        <member name="M:JWT.JwtEncoder.Encode(System.Collections.Generic.IDictionary{System.String,System.Object},System.Object,System.Byte[])">
            <inheritdoc />
            <exception cref="T:System.ArgumentNullException" />
        </member>
        <member name="T:JWT.JwtParts">
            <summary>
            Represent the parts of a JWT
            </summary>
        </member>
        <member name="M:JWT.JwtParts.#ctor(System.String)">
            <summary>
            Creates a new instance of <see cref="T:JWT.JwtParts" /> from the string representation of a JWT
            </summary>
            <param name="token">The string representation of a JWT</param>
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
        </member>
        <member name="M:JWT.JwtParts.#ctor(System.String[])">
            <summary>
            Creates a new instance of <see cref="T:JWT.JwtParts" /> from the array representation of a JWT
            </summary>
            <param name="parts">The array representation of a JWT</param>
            <exception cref="T:System.ArgumentNullException" />
            <exception cref="T:System.ArgumentOutOfRangeException" />
        </member>
        <member name="P:JWT.JwtParts.Header">
            <summary>
            Gets the Header part of a JWT
            </summary>
        </member>
        <member name="P:JWT.JwtParts.Payload">
            <summary>
            Gets the Payload part of a JWT
            </summary>
        </member>
        <member name="P:JWT.JwtParts.Signature">
            <summary>
            Gets the Signature part of a JWT
            </summary>
        </member>
        <member name="P:JWT.JwtParts.Parts">
            <summary>
            Gets the parts of a JWT
            </summary>
        </member>
        <member name="T:JWT.JwtParts.JwtPartsIndex">
            <summary>
            Helper enum to get the correct part from the array representation of a JWT parts
            </summary>
        </member>
        <member name="T:JWT.JwtValidator">
            <summary>
            Jwt validator.
            </summary>
        </member>
        <member name="M:JWT.JwtValidator.#ctor(JWT.IJsonSerializer,JWT.IDateTimeProvider)">
            <summary>
            Creates an instance of <see cref="T:JWT.JwtValidator" />
            </summary>
            <param name="jsonSerializer">The Json Serializer</param>
            <param name="dateTimeProvider">The DateTime Provider</param>
        </member>
        <member name="M:JWT.JwtValidator.Validate(System.String,System.String,System.String[])">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
        </member>
        <member name="M:JWT.JwtValidator.Validate(System.String,JWT.Algorithms.IAsymmetricAlgorithm,System.Byte[],System.Byte[])">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
        </member>
        <member name="M:JWT.JwtValidator.TryValidate(System.String,System.String,System.String,System.Exception@)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
        </member>
        <member name="M:JWT.JwtValidator.TryValidate(System.String,System.String,System.String[],System.Exception@)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
        </member>
        <member name="M:JWT.JwtValidator.TryValidate(System.String,JWT.Algorithms.IAsymmetricAlgorithm,System.Byte[],System.Byte[],System.Exception@)">
            <inheritdoc />
            <exception cref="T:System.ArgumentException" />
        </member>
        <member name="M:JWT.JwtValidator.CompareCryptoWithSignature(System.String,System.String)">
            <remarks>In the future this method can be opened for extension hence made protected virtual</remarks>
        </member>
        <member name="M:JWT.JwtValidator.ValidateExpClaim(System.Collections.Generic.IDictionary{System.String,System.Object},System.Double)">
            <summary>
            Verifies the 'exp' claim.
            </summary>
            <remarks>See https://tools.ietf.org/html/rfc7515#section-4.1.4</remarks>
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
            <exception cref="T:JWT.Exceptions.TokenExpiredException" />
        </member>
        <member name="M:JWT.JwtValidator.ValidateNbfClaim(System.Collections.Generic.IDictionary{System.String,System.Object},System.Double)">
            <summary>
            Verifies the 'nbf' claim.
            </summary>
            <remarks>See https://tools.ietf.org/html/rfc7515#section-4.1.5</remarks>
            <exception cref="T:JWT.Exceptions.SignatureVerificationException" />
        </member>
        <member name="T:JWT.Serializers.JsonNetSerializer">
            <summary>
            JSON serializer using Newtonsoft.Json implementation.
            </summary>
        </member>
        <member name="M:JWT.Serializers.JsonNetSerializer.#ctor">
            <summary>
            Creates a new instance of <see cref="T:JWT.Serializers.JsonNetSerializer" />
            </summary>
            <remarks>Uses <see cref="M:Newtonsoft.Json.JsonSerializer.CreateDefault" /> as internal serializer</remarks>
        </member>
        <member name="M:JWT.Serializers.JsonNetSerializer.#ctor(Newtonsoft.Json.JsonSerializer)">
            <summary>
            Creates a new instance of <see cref="T:JWT.Serializers.JsonNetSerializer" />
            </summary>
            <param name="serializer">Internal <see cref="T:Newtonsoft.Json.JsonSerializer" /> to use for serialization</param>
        </member>
        <member name="M:JWT.Serializers.JsonNetSerializer.Serialize(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:JWT.Serializers.JsonNetSerializer.Deserialize``1(System.String)">
            <inheritdoc />
        </member>
        <member name="P:JWT.UnixEpoch.Value">
            <summary>
            Describes a point in time, defined as the number of seconds that have elapsed since 00:00:00 UTC, Thursday, 1 January 1970, not counting leap seconds.
            See https://en.wikipedia.org/wiki/Unix_time />
            </summary>
        </member>
        <member name="T:JWT.UtcDateTimeProvider">
            <summary>
            Provider for UTC DateTime.
            </summary>
        </member>
        <member name="M:JWT.UtcDateTimeProvider.GetNow">
            <summary>
            Retuns the current time (UTC).
            </summary>
            <returns></returns>
        </member>
    </members>
</doc>
Diff truncated after the above file
WebApi/packages/JWT.7.3.0/lib/net40/JWT.pdb WebApi/packages/JWT.7.3.0/lib/net40/JWT.xml WebApi/packages/JWT.7.3.0/lib/net46/JWT.pdb WebApi/packages/JWT.7.3.0/lib/net46/JWT.xml WebApi/packages/JWT.7.3.0/lib/netstandard1.3/JWT.pdb WebApi/packages/JWT.7.3.0/lib/netstandard1.3/JWT.xml WebApi/packages/JWT.7.3.0/lib/netstandard2.0/JWT.pdb WebApi/packages/JWT.7.3.0/lib/netstandard2.0/JWT.xml WebApi/packages/Microsoft.ApplicationInsights.2.0.0/Microsoft.ApplicationInsights.2.0.0.nupkg WebApi/packages/Microsoft.ApplicationInsights.2.0.0/lib/dotnet5.4/Microsoft.ApplicationInsights.XML WebApi/packages/Microsoft.ApplicationInsights.2.0.0/lib/net40/Microsoft.ApplicationInsights.XML WebApi/packages/Microsoft.ApplicationInsights.2.0.0/lib/net45/Microsoft.ApplicationInsights.XML WebApi/packages/Microsoft.ApplicationInsights.2.0.0/lib/net46/Microsoft.ApplicationInsights.XML WebApi/packages/Microsoft.ApplicationInsights.Agent.Intercept.1.2.1/Microsoft.ApplicationInsights.Agent.Intercept.1.2.1.nupkg WebApi/packages/Microsoft.ApplicationInsights.DependencyCollector.2.0.0/Microsoft.ApplicationInsights.DependencyCollector.2.0.0.nupkg WebApi/packages/Microsoft.ApplicationInsights.DependencyCollector.2.0.0/content/ApplicationInsights.config.install.xdt WebApi/packages/Microsoft.ApplicationInsights.DependencyCollector.2.0.0/content/ApplicationInsights.config.transform WebApi/packages/Microsoft.ApplicationInsights.DependencyCollector.2.0.0/content/ApplicationInsights.config.uninstall.xdt WebApi/packages/Microsoft.ApplicationInsights.DependencyCollector.2.0.0/lib/net40/Microsoft.AI.DependencyCollector.XML WebApi/packages/Microsoft.ApplicationInsights.DependencyCollector.2.0.0/lib/net45/Microsoft.AI.DependencyCollector.XML WebApi/packages/Microsoft.ApplicationInsights.JavaScript.0.22.9-build00167/Microsoft.ApplicationInsights.JavaScript.0.22.9-build00167.nupkg WebApi/packages/Microsoft.ApplicationInsights.JavaScript.0.22.9-build00167/content/scripts/ai.0.22.9-build00167.js WebApi/packages/Microsoft.ApplicationInsights.JavaScript.0.22.9-build00167/content/scripts/ai.0.22.9-build00167.min.js WebApi/packages/Microsoft.ApplicationInsights.JavaScript.0.22.9-build00167/tools/prefix.html WebApi/packages/Microsoft.ApplicationInsights.PerfCounterCollector.2.0.0/Microsoft.ApplicationInsights.PerfCounterCollector.2.0.0.nupkg WebApi/packages/Microsoft.ApplicationInsights.PerfCounterCollector.2.0.0/content/ApplicationInsights.config.install.xdt WebApi/packages/Microsoft.ApplicationInsights.PerfCounterCollector.2.0.0/content/ApplicationInsights.config.transform WebApi/packages/Microsoft.ApplicationInsights.PerfCounterCollector.2.0.0/content/ApplicationInsights.config.uninstall.xdt WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/Microsoft.ApplicationInsights.Web.2.0.0.nupkg WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/content/net40/ApplicationInsights.config.install.xdt WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/content/net40/ApplicationInsights.config.transform WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/content/net40/ApplicationInsights.config.uninstall.xdt WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/content/net40/web.config.install.xdt WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/content/net40/web.config.uninstall.xdt WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/content/net45/ApplicationInsights.config.install.xdt WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/content/net45/ApplicationInsights.config.transform WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/content/net45/ApplicationInsights.config.uninstall.xdt WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/content/net45/web.config.install.xdt WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/content/net45/web.config.uninstall.xdt WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/lib/net40/Microsoft.AI.Web.XML WebApi/packages/Microsoft.ApplicationInsights.Web.2.0.0/lib/net45/Microsoft.AI.Web.XML WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.2.0.0/Microsoft.ApplicationInsights.WindowsServer.2.0.0.nupkg WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.2.0.0/Tools/install.ps1 WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.2.0.0/content/ApplicationInsights.config.install.xdt WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.2.0.0/content/ApplicationInsights.config.transform WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.2.0.0/content/ApplicationInsights.config.uninstall.xdt WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.2.0.0/lib/net40/Microsoft.AI.WindowsServer.XML WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.2.0.0/lib/net45/Microsoft.AI.WindowsServer.XML WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.0.0/Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.0.0.nupkg WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.0.0/content/ApplicationInsights.config.install.xdt WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.0.0/content/ApplicationInsights.config.transform WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.0.0/content/ApplicationInsights.config.uninstall.xdt WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.0.0/lib/net40/Microsoft.AI.ServerTelemetryChannel.XML WebApi/packages/Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.0.0/lib/net45/Microsoft.AI.ServerTelemetryChannel.XML WebApi/packages/Newtonsoft.Json.9.0.1/.signature.p7s WebApi/packages/Newtonsoft.Json.9.0.1/Newtonsoft.Json.9.0.1.nupkg WebApi/packages/Newtonsoft.Json.9.0.1/lib/net20/Newtonsoft.Json.xml WebApi/packages/Newtonsoft.Json.9.0.1/lib/net35/Newtonsoft.Json.xml WebApi/packages/Newtonsoft.Json.9.0.1/lib/net40/Newtonsoft.Json.xml WebApi/packages/Newtonsoft.Json.9.0.1/lib/net45/Newtonsoft.Json.xml WebApi/packages/Newtonsoft.Json.9.0.1/lib/netstandard1.0/Newtonsoft.Json.xml WebApi/packages/Newtonsoft.Json.9.0.1/lib/portable-net40+sl5+wp80+win8+wpa81/Newtonsoft.Json.xml WebApi/packages/Newtonsoft.Json.9.0.1/lib/portable-net45+wp80+win8+wpa81/Newtonsoft.Json.xml WebApi/packages/Newtonsoft.Json.9.0.1/tools/install.ps1 WebForm/README.md