<?xml version="1.0"?>
<!--  EDITING THIS FILE

      You should edit the copy of this Web.config file in the [application name] directory.

-->
<configuration>
  <configSections>
    <section name="DataAccessLayerWhereClause" type="BaseClasses" allowLocation="true" allowDefinition="Everywhere"/>
  </configSections>
  <connectionStrings>
    <!--<add name="DatabasePersons1" connectionString="Data Source=.\sqlExpress;Database=Persons;Trusted_Connection=no;User Id=pete;Password=1234" providerName="System.Data.SqlClient" />-->
    <add name="DatabasePersons1" connectionString="Data Source=.\sqlExpress;Database=Persons;Trusted_Connection=yes;User Id=;Password=" providerName="System.Data.SqlClient"/>
  </connectionStrings>
  <system.net>
    <mailSettings>
      <smtp from="user@user.com">
        <network host="localhost" port="25"/>
      </smtp>
    </mailSettings>
  </system.net>
  <appSettings>
    <!--  EVENT LOGGING
          Set LogEvents value="false" to disable all logging to the system event log.
          
          DATABASE COMMAND LOGGING
          Set LogDatabaseCommands value="true" to log all database SQL commands to the
          system the event log. Only works if LogEvents = "true".
         
          DATABASE ERROR LOGGING
          Set LogDatabaseExceptions value="all" to log all database exceptions to the
          system the event log.  Set to "default" to only log exceptions that are unlikely
          to be caused by normal user interaction.  Only works if LogEvents = "true"

          Set LogCommitExceptions value="all" to log all database transaction commit exceptions
          to the system the event log.  Set to "default" to only log exceptions that are unlikely
          to be caused by normal user interaction.  Only works if LogEvents = "true".
    
          TRACE LOGGING OUTPUT
          To get detailed page-level tracing, set the following to "true":
              TraceDatabaseCommands, TraceDataAccessMethods, TraceTransactionCache
          Also set trace enabled="true" and pageOutput="true" in the 
          APPLICATION-LEVEL TRACE LOGGING section below.
    -->
    <!-- VIEWSTATE LOCATION
       The ViewStateLocation specifies where the view state for a page
       should be stored.  
       1. Page (default): Stored it in the page.  Increases page size.
          Always works, but slower to encrypt, decrypt and send.
       2. Session: Store it in the session on the server.
          Results in better performance, but may not always work because
          session data may be timed out, or flushed to make room for more.
       3. Cache: Stored in the cache.  Similar to Session, but has more
          timeout options.
       4. File: Stored in a temporary file.  Will always work, but slower.
       5. Database: Stored in the database.  Will always work, but slower.
       See online help for more information.
    -->
    <add key="LogEvents" value="false"/>
    <add key="LogDatabaseCommands" value="false"/>
    <add key="LogDatabaseExceptions" value="default"/>
    <add key="LogCommitExceptions" value="default"/>
    <add key="TraceDatabaseCommands" value="false"/>
    <add key="TraceDataAccessMethods" value="false"/>
    <add key="TraceTransactionCache" value="false"/>
    <add key="WebServer" value="http://localhost"/>
    <add key="ApplicationName" value="Persons"/>
    <add key="FCKeditor:BasePath" value="~/FCKeditor/"/>
    <add key="CookieEncryptionKey" value="7D0862C6-C5D9-4E19-9CAE-F50D663C444F"/>
    <add key="URLEncryptionKey" value="7D0862C6-C5D9-4E19-9CAE-F50D663C444F"/>
    <add key="ShowAutoSignInCheckBox" value="True"/>
    <add key="ShowRememberPasswordCheckBox" value="True"/>
    <add key="ShowRememberUserCheckBox" value="True"/>
    <add key="DefaultPageUrl" value="PersonalId/ShowViewPersons.aspx"/>
    <add key="AuthenticationType" value="ProprietorySecurity"/>
    <add key="RoleManagement" value="ProprietoryRoles"/>
    <add key="SecurityDisabled" value="False"/>
    <add key="SearchNestedGroups" value="False"/>
    <add key="ChartImageHandler" value="Storage=file;Timeout=20;Url=../Temp/;"/>
    <add key="SignInPageUrl" value="Security/SignIn.aspx"/>
    <add key="ForgotUserPageUrl" value="Security/ForgotUser.aspx"/>
    <add key="SignedOutPageUrl" value="Security/SignOut.aspx"/>
    <add key="UserIdentityTable" value="Persons.Business.PersonalIdTable, App_Code"/>
  </appSettings>
  <!--
    For a description of web.config changes see http://go.microsoft.com/fwlink/?LinkId=235367.

    The following attributes can be set on the <httpRuntime> tag.
      <system.Web>
        <httpRuntime targetFramework="4.8.1" />
      </system.Web>
  -->
  <system.web>
    <!--
          Set compilation debug="true" to insert debugging
          symbols into the compiled page. Because this
          affects performance, set this value to true only
          during development.
    -->
    <roleManager enabled="false" cacheRolesInCookie="false" defaultProvider="AspNetSqlRoleProvider"/>
    <siteMap defaultProvider="AspNetXmlSiteMapProvider"/>
    <httpHandlers>
      <add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
    </httpHandlers>
    <compilation debug="true" targetFramework="4.8.1">
      <assemblies>
        <add assembly="System.Data.OracleClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Runtime.Caching, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
      </assemblies>
      <buildProviders>
        <remove extension=".lic"/>
        <add extension=".lic" type="System.Web.Compilation.ForceCopyBuildProvider"/>
      </buildProviders>
    </compilation>
    <!-- ASMX is mapped to a new handler so that proxy JavaScripts can also be served. -->
    <pages validateRequest="false" controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" theme="Denali">
      <namespaces>
        <clear/>
        <add namespace="Persons"/>
        <add namespace="Persons.UI"/>
        <add namespace="Persons.UI.Controls"/>
        <add namespace="Persons.Data"/>
        <add namespace="Persons.Business"/>
        <add namespace="System"/>
        <add namespace="System.Collections"/>
        <add namespace="System.Collections.Specialized"/>
        <add namespace="System.Configuration"/>
        <add namespace="System.Text"/>
        <add namespace="System.Text.RegularExpressions"/>
        <add namespace="System.Web"/>
        <add namespace="System.Web.Caching"/>
        <add namespace="System.Web.SessionState"/>
        <add namespace="System.Web.Security"/>
        <add namespace="System.Web.Profile"/>
        <add namespace="System.Web.UI"/>
        <add namespace="System.Web.UI.WebControls"/>
        <add namespace="System.Web.UI.WebControls.WebParts"/>
        <add namespace="System.Web.UI.HtmlControls"/>
        <add namespace="BaseClasses"/>
        <add namespace="BaseClasses.Web.UI.WebControls"/>
      </namespaces>
      <controls>
        <add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      </controls>
    </pages>
    <!--  CUSTOM ERROR MESSAGES
          Set customErrors mode="On" or "RemoteOnly" to enable custom error messages, "Off" to disable. 
          Add <error> tags for each of the errors you want to handle.
    -->
    <customErrors mode="RemoteOnly" defaultRedirect="Shared/Internal_Server_Error.html">
      <error statusCode="404" redirect="Shared/Internal_Server_Error.html"/>
      <error statusCode="500" redirect="Shared/Internal_Server_Error.html"/>
    </customErrors>
    <!--  AUTHENTICATION 
          This section sets the authentication policies of the application. Possible modes are "Windows", 
          "Forms", "Passport" and "None"
    -->
    <authentication mode="Windows"/>
    <!--  IDENTITY 
          Set Impersonate="true" to enable IIS to run this application under the credentials of the current user.
        Set Impersonate="false" to enable Active Directory single sign-in. Note: "false" disables Active Directory authentication for localhost.
    -->
    <identity impersonate="true"/>
    <!--  AUTHORIZATION 
          This section sets the authorization policies of the application. You can allow or deny access
          to application resources by user or role. Wildcards: "*" mean everyone, "?" means anonymous 
          (unauthenticated) users.
    -->
    <authorization>
      <allow users="*"/>
      <!-- Allow all users -->
      <!--  <allow     users="[comma separated list of users]"
                             roles="[comma separated list of roles]"/>
                  <deny      users="[comma separated list of users]"
                             roles="[comma separated list of roles]"/>
            -->
    </authorization>
    <!--  APPLICATION-LEVEL TRACE LOGGING
          Application-level tracing enables trace log output for every page within an application. 
          Set trace enabled="true" to enable application trace logging.  If pageOutput="true", the
          trace information will be displayed at the bottom of each page.  Otherwise, you can view the 
          application trace log by browsing the "trace.axd" page from your web application
          root. 
    -->
    <trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true"/>
    <!--  SESSION STATE SETTINGS
          By default ASP.NET uses cookies to identify which requests belong to a particular session. 
          If cookies are not available, a session can be tracked by adding a session identifier to the URL. 
          To disable cookies, set sessionState cookieless="true".
    -->
    <sessionState mode="InProc" stateConnectionString="tcpip=127.1.0.1:42424" sqlConnectionString="data source=127.1.0.1;user id=sa;password=" cookieless="false" timeout="60"/>
    <!--  GLOBALIZATION
                    This section sets the globalization settings of the application. 
                  Set responseEncoding to an appropriate value to ensure emails sent from your application are correctly encoded 
                  and display your language’s complete character set.  For example, if your default language is French and you want 
                  French characters from the extended French character set to be correctly included and displayed in your emails, 
                  may set responseEncoding to “windows-1252”.  Remove the responseEncoding parameter to use the setting in your 
                  machine.config file or to use the encoding defaults in your computer's Regional Options locale setting.
    -->
    <globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="th-TH" uiCulture="th-TH"/>
    <!--  HTTP RUN TIME
          This section sets the run time settings of the application.
    -->
    <httpRuntime maxRequestLength="10240" requestValidationMode="2.0"/>
  </system.web>
  <location path="DefaultWsdlHelpGenerator.aspx">
    <system.web>
      <pages styleSheetTheme=""/>
    </system.web>
  </location>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <handlers>
      <remove name="ChartImageHandler"/>
      <add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </handlers>
  </system.webServer>
  <!-- Following Section is used for data access layer where clauses and formulas
       Please modify this section using Batch Meister Wizard instead of directly
       making changes here.
  -->
  <DataAccessLayerWhereClause>
    <WhereClauses>
      <WhereClause Apply="false">
        <LHS>CompanyIDForMultiTenantApps1</LHS>
        <RHS>GetColumnValue("User",UserID(),"CompanyID")</RHS>
        <Operand>=</Operand>
      </WhereClause>
      <WhereClause Apply="false">
        <LHS>CompanyIDForMultiTenantApps2</LHS>
        <RHS>Session("CompanyID")</RHS>
        <Operand>=</Operand>
      </WhereClause>
    </WhereClauses>
    <Formulas>
      <Formula Apply="false">
        <ColumnName>CreatedBy</ColumnName>
        <Value>UserID()</Value>
        <Event>Initialize when inserting</Event>
      </Formula>
      <Formula Apply="false">
        <ColumnName>BirthDate</ColumnName>
        <Value>If(BirthDate &gt; Today() , "Birthdate cannot be in the future" , "")</Value>
        <Event>Validate when inserting</Event>
      </Formula>
      <Formula Apply="false">
        <ColumnName>UpdatedOn</ColumnName>
        <Value>Today()</Value>
        <Event>Initialize when updating</Event>
      </Formula>
      <Formula Apply="false">
        <ColumnName>CreatedOn</ColumnName>
        <Value>Today()</Value>
        <Event>Initialize when inserting</Event>
      </Formula>
      <Formula Apply="false">
        <ColumnName>UpdatedBy</ColumnName>
        <Value>UserID()</Value>
        <Event>Initialize when updating</Event>
      </Formula>
    </Formulas>
  </DataAccessLayerWhereClause>
</configuration>