<?xml version="1.0"?>
<configuration>
  <startup>
    <supportedRuntime version="v2.0.50727"/>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
  </startup>
  <system.diagnostics>
    <sources>
      <source name="Support.Citrix.Instrumentation" switchName="SourceSwitch" switchType="System.Diagnostics.SourceSwitch">
        <listeners>
          <add name="delimitedListener" />
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add name="delimitedListener" delimiter="," type="System.Diagnostics.DelimitedListTraceListener" traceOutputOptions="DateTime, ProcessId" initializeData="XDDBDiagLog.txt">
      </add>
    </sharedListeners>
    <trace autoflush="true" />
    <assert assertuienabled="false" />
    <switches>
      <!-- Uncomment line below for full detailed tracing and comment the line below that one-->
      <!-- <add name="SourceSwitch" value="Verbose, ActivityTracing"/>-->
      <add name="SourceSwitch" value="Error, ActivityTracing" />
    </switches>
  </system.diagnostics>
  <connectionStrings>
    <!--Example connection string below -->
    <add name="DBConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=CitrixXenDesktopDB;Integrated Security=True" providerName="System.Data.SqlClient" />
  </connectionStrings>
  <appSettings>
    <add key="EnableISODateFormat" value="true" />
    <add key="DisableUpdateNotification" value="false" />
    <add key="DisableDataCompression" value="true" />
    <add key="DisableDataExport" value="false" />
    <!--SQL -->
    <add key="sqlSchemaInfo" value="select * from chb_Config.SchemaInfo with (readpast)" />
    <add key="sqlWorkers" value="select * from chb_State.Workers with (readpast)" />
    <add key="sqlWorkerRegistrations" value="select * from chb_State.WorkerRegistrations with (readpast)" />
    <add key="sqlConnectionLog" value="select * from chb_State.ConnectionLog with (readpast)" />
    <!--TAAS -->
    <add key="sqlContollerInfoTaaS" value="select [SAMName],[DNSName],[NameUpdateDueTime],[State],[LastStartTime],[LastActivityTime],[OSType],[OSVersion],[ControllerVersion],[RegisteredWorkers],DateAdd(hour,DATEDIFF(HH,GETUTCDATE(),GETDATE()),LastStartTime  ) as ServiceStart,DateAdd(hour,DATEDIFF(HH,GETUTCDATE(),GETDATE()),LastActivityTime  ) as ActivityTime from chb_State.Controllers with(READPAST)" />
    <add key="sqlSiteInfoTaaS" value="select * from chb_Config.Site with(READPAST)where Uid = 1" />
    <add key="sqlConnectionLogInfoTaaS" value="SELECT DATEADD(hour, DATEDIFF(HH, GETUTCDATE(), GETDATE()), c.BrokeringTime) AS BrokeringTime, DATEADD(hour, DATEDIFF(HH, GETUTCDATE(), GETDATE()), c.EstablishmentTime) AS EventTime,DATEDIFF(s, c.BrokeringTime, c.EstablishmentTime) AS [Delta Seconds], c.ConnectionFailureReason, COALESCE (a.SAMName,'unknown') AS CN,wn.DNSName AS [DNS Name], wn.SAMName AS [SAM Name],CASE ConnectionFailureReason WHEN 0 THEN 'Successful Connection' WHEN 1 THEN 'Failure to prepare session' WHEN 2 THEN 'Registration Timeout' WHEN 3 THEN 'Connection Timeout' WHEN 4 THEN 'Licensing'WHEN 5 THEN 'Ticketing' ELSE 'Other Possible VDA Connection Termination' END AS ConnectionStatusResult,ISNULL(wd.LastErrorReason, 'N/A') AS [Last Error Reason],ISNULL(wd.LastErrorMessage, 'N/A') AS [Last Error Message],wr.OSType, wr.IPAddress,wr.AgentVersion FROM  chb_State.ConnectionLog AS c WITH (READPAST) LEFT OUTER JOIN chb_State.AccountNames AS a WITH (READPAST) ON c.BrokeringUserUid = a.Uid LEFT OUTER JOIN chb_State.Workers AS w WITH (READPAST) ON c.WorkerUid = w.Uid LEFT OUTER JOIN chb_State.WorkerNames AS wn WITH (READPAST) ON c.WorkerUid = wn.Uid LEFT OUTER JOIN chb_State.WorkerDiags AS wd WITH (READPAST) ON c.WorkerUid = wd.Uid LEFT OUTER JOIN chb_State.WorkerRegistrations AS wr WITH (READPAST) ON c.WorkerUid = wr.Uid" />
    <add key="sqlVDAStatesInfoTaaS" value="SELECT WR.ResolvedName, WR.IPAddress, WR.AgentVersion, WR.ConfigVersion, WR.OSType, WR.OSVersion, DATEADD(hour, DATEDIFF(HH, GETUTCDATE(), GETDATE()),WR.LastContactTime) AS LastContactTime, DATEADD(hour, DATEDIFF(HH, GETUTCDATE(), GETDATE()), WR.RegistrationExpiryTime) AS RegistrationExpiryTime, SW.PowerState, CASE SW.PowerState WHEN 0 THEN 'Unmanaged' WHEN 1 THEN 'Unknown' WHEN 2 THEN 'Unavailable' WHEN 3 THEN 'Off' WHEN 4 THEN 'On' WHEN 5 THEN 'Suspended'  WHEN 6 THEN 'TurningOn' WHEN 7 THEN 'TurningOff' WHEN 8 THEN 'Suspending' WHEN 9 THEN 'Resuming' END AS PowerStateStatus, SW.WorkerState,CASE SW.WorkerState WHEN - 3 THEN 'Unregistered' WHEN - 2 THEN 'SoftRegistered' WHEN - 1 THEN 'Unknown' WHEN 0 THEN 'Available' WHEN 1 THEN 'Unavailable' WHEN 2 THEN 'FullCapacity' WHEN 3 THEN 'Pending' END AS WrokerStateStatus, SW.RegistrationState, CASE RegistrationState WHEN 0 THEN 'Unregistered' WHEN 1 THEN 'Registered' WHEN 2 THEN 'AgentError' END AS RegistrationStateStatus,CASE InMaintenanceMode WHEN 0 THEN 'False' WHEN 1 THEN 'True' END AS MaintenanceModeStatus, WD.LastDeregistrationReason, WD.LastErrorTime,WD.LastErrorReason,CASE WD.LastDeregistrationReason WHEN 0 THEN 'Worker was shutdown' WHEN 1 THEN 'Worker was suspended' WHEN 2 THEN 'VDA initiated deregistration' WHEN 100 THEN 'VDA version incompatible with broker' WHEN 101 THEN 'Broker reach limit of max worker registrations' WHEN 102 THEN 'Broker cannot find SPN and/or resolve workers DNS address' WHEN 103 THEN 'Broker cannot contact agent' WHEN 104 THEN 'VDA configuration error' WHEN 105 THEN 'VDA rejected FullArmor data' WHEN 106 THEN 'Communication failure' WHEN 107 THEN 'VDA ping timeout' WHEN 108 THEN 'Internal broker error during registration' WHEN 109 THEN 'Worker restarted by user via WI' WHEN 110 THEN 'Correspodning desktop removed from site' END AS LastDeregistrationReasonStatus, WN.SAMName AS DomainAccount FROM   chb_State.WorkerRegistrations AS WR WITH (READPAST) LEFT OUTER JOIN chb_State.SoftRegistrations AS SR WITH (READPAST) ON WR.Uid = SR.Uid LEFT OUTER JOIN chb_State.Workers AS SW WITH (READPAST) ON SW.Uid = WR.Uid LEFT OUTER JOIN  chb_State.WorkerDiags AS WD WITH (READPAST) ON WD.Uid = WR.Uid LEFT OUTER JOIN chb_State.WorkerNames AS WN WITH (READPAST) ON WN.Uid = WR.Uid" />
    <add key="sqlCurrentConnectionsInfoTaaS" value="SELECT CASE SessionState WHEN - 1 THEN 'Other' WHEN 0 THEN 'Prepare' WHEN 1 THEN 'Connected' WHEN 2 THEN 'Active' WHEN 3 THEN 'Disconnected' WHEN 4 THEN 'Reconnecting' WHEN 5 THEN 'NonBrokered' WHEN 6 THEN 'Unknown' ELSE 'invalid' END AS State, a.SAMName, DATEADD(hour, DATEDIFF(HH, GETUTCDATE(), GETDATE()), S.LogOnTime) AS Logon, DATEADD(hour, DATEDIFF(HH, GETUTCDATE(), GETDATE()), S.SessionStartTime) AS SessionStart, DATEADD(hour, DATEDIFF(HH, GETUTCDATE(), GETDATE()), S.LastReconnectSentTime) AS LastReconnect, DATEADD(hour, DATEDIFF(HH, GETUTCDATE(), GETDATE()), S.LastStateChange) AS LastStateChange, S.EndpointName, S.EndpointAddress, S.EndpointHardwareId, S.ClientVersion, S.HorizontalResolution, S.VerticalResolution, S.ConnectedViaIP, S.ConnectedViaHostName, COALESCE (dc.Condition, 'None') AS [Session Condition]   FROM   chb_State.Sessions AS S WITH (READPAST) FULL OUTER JOIN chb_State.BrokeredSessions AS BS WITH (READPAST) ON S.BrokeredSessionUid = BS.Uid LEFT OUTER JOIN  chb_State.AccountNames AS a WITH (READPAST) ON S.TrustedUserUid = a.Uid LEFT OUTER JOIN  chb_State.DesktopConditions AS dc WITH (READPAST) ON S.Uid = dc.SessionUid" />
    <add key="sqlSchemaVersionInfoTaaS" value="select top(1) Version from chb_Config.SchemaInfo WITH (READPAST)" />
    <add key="sqlCatalogsInfoTaaS" value="select Uid, DisplayName, CatalogKind, AllocationType,case CatalogKind when 0 then 'ThinCloned'  when 1 then 'SingleImage' when 2 then 'PowerManaged' when 3 then 'Unmanaged' when 4 then 'Pvs' else '*UNKNOWN*' end as Kind, case AllocationType  when 0 then 'Permanent (Private)'  when 1 then 'Random (Shared)' else '*UNKNOWN*' end as Type from chb_Config.Catalogs with (readpast)" />
    <add key="sqlDesktopGroupsInfoTaaS" value=" select Uid, Name, DesktopKind, case DesktopKind when 0 then 'Private' when 1 then 'Shared' when 2 then 'PrivateApp'when 3 then 'SharedApp'else '*UNKNOWN*' end as Kind, case Enabled when 0 then 'DISABLED' when 1 then 'Enabled' end as Enabled from chb_Config.DesktopGroups with (readpast)" />
    <add key="sqlAccessPolicyRulesInfoTaaS" value="select Uid, DisplayName, case Enabled	when 0 then 'DISABLED'	when 1 then 'Enabled'	end as Enabled	from chb_Config.AccessPolicyRules with (readpast)" />
    <add key="sqlEntitlementPolicyRulesInfoTaaS" value="select Uid, DisplayName, DesktopGroupUid, case Enabled when 0 then 'DISABLED'	when 1 then 'Enabled'	end as Enabled from chb_Config.EntitlementPolicyRules with (readpast)" />
    <add key="sqlAssignmentPolicyRulesInfoTaaS" value="select Uid, DisplayName, DesktopGroupUid, case Enabled	when 0 then 'DISABLED'	when 1 then 'Enabled'	end as Enabled from chb_Config.AssignmentPolicyRules with (readpast)" />
    <add key="sqlHypervisorConnectionsInfoTaaS" value="select * from chb_Config.HypervisorConnections with (readpast)" />
    <add key="sqlDesktopGroupsConnectionsInfoTaaS" value="select Name,PublishedName,InMaintenanceMode,InUse, DATEADD(hour, DATEDIFF(HH, GETUTCDATE(), GETDATE()), SampleTime)  as SampleTime   from chb_Config.DesktopGroups dg WITH (READPAST) join chb_State.DesktopUsage du on du.DesktopGroupUid=dg.uid order by SampleTime " />
    <add key="excaliburCurrentConnectionsInfoTaaS" value="SELECT CASE SessionState WHEN - 1 THEN 'Other' WHEN 0 THEN 'Prepare' WHEN 1 THEN 'Connected' WHEN 2 THEN 'Active' WHEN 3 THEN 'Disconnected' WHEN 4 THEN 'Reconnecting' WHEN 5 THEN 'NonBrokered' WHEN 6 THEN 'Unknown' ELSE 'invalid' END AS State, a.SAMName, DATEADD(hour, DATEDIFF(HH, GETUTCDATE(), GETDATE()), S.LogOnTime) AS Logon, DATEADD(hour, DATEDIFF(HH, GETUTCDATE(), GETDATE()), S.SessionStartTime) AS SessionStart, DATEADD(hour, DATEDIFF(HH, GETUTCDATE(), GETDATE()), S.LastReconnectSentTime) AS LastReconnect, DATEADD(hour, DATEDIFF(HH, GETUTCDATE(), GETDATE()), S.LastStateChange) AS LastStateChange, S.EndpointName, S.EndpointAddress, S.EndpointHardwareId, S.ClientVersion, S.HorizontalResolution, S.VerticalResolution, S.ConnectedViaIP, S.ConnectedViaHostName FROM   chb_State.Sessions AS S WITH (READPAST) FULL OUTER JOIN chb_State.BrokeredSessions AS BS WITH (READPAST) ON S.BrokeredSessionUid = BS.Uid LEFT OUTER JOIN  chb_State.AccountNames AS a WITH (READPAST) ON S.TrustedUserUid = a.Uid" />
    <add key="excaliburCatalogsInfoTaaS" value="select Uid, DisplayName, ProvisioningType, AllocationType,case ProvisioningType when 0 then 'ThinCloned'  when 1 then 'SingleImage' when 2 then 'PowerManaged' when 3 then 'Unmanaged' when 4 then 'Pvs' else '*UNKNOWN*' end as Kind, case AllocationType  when 0 then 'Permanent (Private)'  when 1 then 'Random (Shared)' else '*UNKNOWN*' end as Type from chb_Config.Catalogs with (readpast)" />
    <add key="ClientSettingsProvider.ServiceUri" value="" />
  </appSettings>
  <system.web>
    <membership defaultProvider="ClientAuthenticationMembershipProvider">
      <providers>
        <add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
      </providers>
    </membership>
    <roleManager defaultProvider="ClientRoleProvider" enabled="true">
      <providers>
        <add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
      </providers>
    </roleManager>
  </system.web>
</configuration>