You are viewing a plain text version of this content. The canonical link for it is here.
Posted to stonehenge-commits@incubator.apache.org by dr...@apache.org on 2009/04/28 22:20:52 UTC

svn commit: r769572 [1/4] - in /incubator/stonehenge/trunk/stocktrader/dotnet: business_service/BusinessServiceConfigurationSettings/ business_service/BusinessServiceConsole/ business_service/OrderProcessorASyncClient/ common/ServiceConfigurationSettin...

Author: drewbai
Date: Tue Apr 28 22:20:50 2009
New Revision: 769572

URL: http://svn.apache.org/viewvc?rev=769572&view=rev
Log:
Major Update! New look and feel
STONEHENGE-34 NET BS doesn't have any configuration for PHP and WSAS OPS
STONEHENGE-29 Remove Microsoft Logo from the .NET Trader site and Implement a consistent design with PHP

Tested and commit Patches for Ben. Excellent Work Ben!

Added:
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/DataFormatHelper.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Images/red-arrow.gif   (with props)
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Site.master
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Site.master.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/style.css
Modified:
    incubator/stonehenge/trunk/stocktrader/dotnet/business_service/BusinessServiceConfigurationSettings/Settings.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/business_service/BusinessServiceConsole/App.config
    incubator/stonehenge/trunk/stocktrader/dotnet/business_service/BusinessServiceConsole/Program.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/business_service/OrderProcessorASyncClient/OrderProcessorAsyncClient.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/common/ServiceConfigurationSettings/Settings.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/common/StockTraderUtility/Utility.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/order_processor/OrderProcessorConsoleServiceHost/App.config
    incubator/stonehenge/trunk/stocktrader/dotnet/order_processor/OrderProcessorConsoleServiceHost/Program.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/order_processor/OrderProcessorServiceConfigurationSettings/Settings.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/HoldingDataUI.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/QuoteDataUI.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/StockTraderWebApplicationModelClasses.csproj
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/TotalHoldingsUI.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/TotalOrdersUI.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Account.aspx
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Account.aspx.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Controls/AccountOrders.ascx
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Controls/AccountOrders.ascx.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Controls/ClosedOrders.ascx
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Controls/ClosedOrders.ascx.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Controls/MarketSummary.ascx
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Controls/MarketSummary.ascx.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Default.aspx
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Default.aspx.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Glossary.aspx
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Glossary.aspx.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Login.aspx
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Login.aspx.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Order.aspx
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Order.aspx.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Portfolio.aspx
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Portfolio.aspx.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/PortfolioBySymbol.aspx
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/PortfolioBySymbol.aspx.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Quotes.aspx
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Quotes.aspx.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Register.aspx
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Register.aspx.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/StockTrade.aspx
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/StockTrade.aspx.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/TradeHome.aspx
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/TradeHome.aspx.cs
    incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/Trade/Web.config

Modified: incubator/stonehenge/trunk/stocktrader/dotnet/business_service/BusinessServiceConfigurationSettings/Settings.cs
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/dotnet/business_service/BusinessServiceConfigurationSettings/Settings.cs?rev=769572&r1=769571&r2=769572&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/dotnet/business_service/BusinessServiceConfigurationSettings/Settings.cs (original)
+++ incubator/stonehenge/trunk/stocktrader/dotnet/business_service/BusinessServiceConfigurationSettings/Settings.cs Tue Apr 28 22:20:50 2009
@@ -77,7 +77,10 @@
         public static string EVENT_LOG;
         public static string OPS_DOTNET_ENDPOINT_CONFIG_HTTP;
         public static string OPS_DOTNET_ENDPOINT_CONFIG_WSHTTP;
-        public static string OPS_WSO2_ENDPOINT_CONFIG_WSHTTP;
+        public static string OPS_PHP_ENDPOINT_CONFIG_HTTP;
+        public static string OPS_PHP_ENDPOINT_CONFIG_WSHTTP;
+        public static string OPS_WSAS_ENDPOINT_CONFIG_HTTP;
+        public static string OPS_WSAS_ENDPOINT_CONFIG_WSHTTP;
         public static string ORDER_PROCESSING_MODE; 
         public static string DBServer; 
         public static string Database; 
@@ -135,7 +138,10 @@
             Settings.LOGIN_ITERATIONSTO_DISPLAY = Convert.ToInt32(ConfigurationManager.AppSettings.Get("LOGIN_ITERATIONSTO_DISPLAY"));
             Settings.OPS_DOTNET_ENDPOINT_CONFIG_HTTP = ConfigurationManager.AppSettings.Get("OPS_DOTNET_ENDPOINT_CONFIG_HTTP");
             Settings.OPS_DOTNET_ENDPOINT_CONFIG_WSHTTP = ConfigurationManager.AppSettings.Get("OPS_DOTNET_ENDPOINT_CONFIG_WSHTTP");
-            Settings.OPS_WSO2_ENDPOINT_CONFIG_WSHTTP = ConfigurationManager.AppSettings.Get("OPS_WSO2_ENDPOINT_CONFIG_WSHTTP");
+            Settings.OPS_PHP_ENDPOINT_CONFIG_HTTP = ConfigurationManager.AppSettings.Get("OPS_PHP_ENDPOINT_CONFIG_HTTP");
+            Settings.OPS_PHP_ENDPOINT_CONFIG_WSHTTP = ConfigurationManager.AppSettings.Get("OPS_PHP_ENDPOINT_CONFIG_WSHTTP");
+            Settings.OPS_WSAS_ENDPOINT_CONFIG_HTTP = ConfigurationManager.AppSettings.Get("OPS_WSAS_ENDPOINT_CONFIG_HTTP");
+            Settings.OPS_WSAS_ENDPOINT_CONFIG_WSHTTP = ConfigurationManager.AppSettings.Get("OPS_WSAS_ENDPOINT_CONFIG_WSHTTP");
             Settings.BSL_VALID_USERID = ConfigurationManager.AppSettings.Get("BSL_VALID_USERID");
             Settings.BSL_VALID_PASSWORD = ConfigurationManager.AppSettings.Get("BSL_VALID_PASSWORD");
             buildConnString();
@@ -157,23 +163,40 @@
                         break;
                     }
 
-                case StockTraderUtility.ORDER_STRING_ASyncHttp:
+                case StockTraderUtility.ORDER_STRING_ASync_DotNet_Http:
                     {
-                        orderMode = StockTraderUtility.ORDER_ASync_Http;
+                        orderMode = StockTraderUtility.ORDER_ASync_DotNet_Http;
                         break;
                     }
-                case StockTraderUtility.ORDER_STRING_ASyncHttpMSec:
+                case StockTraderUtility.ORDER_STRING_ASync_DotNet_WsHttp_MSec:
                     {
-                        orderMode = StockTraderUtility.ORDER_ASync_WSHttp;
+                        orderMode = StockTraderUtility.ORDER_ASync_DotNet_WsHttp_MSec;
                         break;
                     }
                 
-                case StockTraderUtility.ORDER_STRING_WSO2_HTTP_MSEC:
+                case StockTraderUtility.ORDER_STRING_ASync_PHP_Http:
                     {
-                        orderMode = StockTraderUtility.ORDER_ASync_WSHttp_WSO2;
+                        orderMode = StockTraderUtility.ORDER_ASync_PHP_Http;
                         break;
                     }
 
+                case StockTraderUtility.ORDER_STRING_ASync_PHP_WsHttp_MSec:
+                    {
+                        orderMode = StockTraderUtility.ORDER_ASync_PHP_WsHttp_MSec;
+                        break;
+                    }
+
+                case StockTraderUtility.ORDER_STRING_ASync_WSAS_Http:
+                    {
+                        orderMode = StockTraderUtility.ORDER_ASync_WSAS_Http;
+                        break;
+                    }
+
+                case StockTraderUtility.ORDER_STRING_ASync_WSAS_WsHttp_MSec:
+                    {
+                        orderMode = StockTraderUtility.ORDER_ASync_WSAS_WsHttp_MSec;
+                        break;
+                    }
                 default:
                     {
                         throw new Exception(ORDER_PROCESSING_MODE + ": " + StockTraderUtility.EXCEPTION_MESSAGE_INVALID_ORDERMODE_CONFIG);

Modified: incubator/stonehenge/trunk/stocktrader/dotnet/business_service/BusinessServiceConsole/App.config
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/dotnet/business_service/BusinessServiceConsole/App.config?rev=769572&r1=769571&r2=769572&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/dotnet/business_service/BusinessServiceConsole/App.config (original)
+++ incubator/stonehenge/trunk/stocktrader/dotnet/business_service/BusinessServiceConsole/App.config Tue Apr 28 22:20:50 2009
@@ -28,13 +28,16 @@
   <!---THIS IS A CONFIG SERVICE CUSTOM CONFIG SECTION USED TO SPECIFIY individual ServiceEndpoint Identities, when desired-->
   <appSettings>
     <add key="EVENT_LOG" value="Trade Business Services" />
-    <add key="ORDER_PROCESSING_MODE" value="ASync_Http_MSecurity" />
+    <add key="ORDER_PROCESSING_MODE" value="ASync_DotNet_Http" />
     <!--
        //Valid Config Values for user-set "OrderMode" config setting.
         public const string ORDER_STRING_Sync = "Sync_InProcess";
-        public const string ORDER_STRING_ASyncHttp = "ASync_Http";
-        public const string ORDER_STRING_ASyncHttpMSec = "ASync_Http_MSecurity";
-        public const string ORDER_STRING_WSO2_HTTP_MSEC = "ASync_WSO2_Java_Http_MSecurity";
+        public const string ORDER_STRING_ASync_DotNet_Http = "ASync_DotNet_Http";
+        public const string ORDER_STRING_ASync_DotNet_WsHttp_MSec = "ASync_DotNet_WsHttp_MSecurity";
+        public const string ORDER_STRING_ASync_PHP_Http = "ASync_PHP_Http";
+        public const string ORDER_STRING_ASync_PHP_WsHttp_MSec = "ASync_PHP_WsHttp_MSecurity";
+        public const string ORDER_STRING_ASync_WSAS_Http = "ASync_WSAS_Http";
+        public const string ORDER_STRING_ASync_WSAS_WsHttp_MSec = "ASync_WSAS_WsHttp_MSecurity";
 
     -->
     <add key="BSL_VALID_USERID" value="bsloperationuser"/>
@@ -48,16 +51,19 @@
     <add key="DAL" value="Trade.DALSQLServer" />
     <add key="ENABLE_GLOBAL_SYSTEM_DOT_TRANSACTIONS_CONFIGSTRING" value="true" />
     <add key="SYSTEMDOTTRANSACTION_TIMEOUT" value="0" />
-    <add key="MAX_QUERY_ORDERS" value="10" />
-    <add key="MAX_QUERY_TOP_ORDERS" value="10" />
+    <add key="MAX_QUERY_ORDERS" value="20" />
+    <add key="MAX_QUERY_TOP_ORDERS" value="5" />
     <add key="DISPLAY_WEBSERVICE_LOGINS" value="true" />
     <add key="LOGIN_ITERATIONSTO_DISPLAY" value="5" />
     <!--Can't be ZERO-->
     <add key="DISPLAYNUMBERORDERITERATIONS" value="3" />
     <!--Can't be ZERO-->
-    <add key="OPS_DOTNET_ENDPOINT_CONFIG_HTTP" value="Client_BasicHttpBinding" />
-    <add key="OPS_DOTNET_ENDPOINT_CONFIG_WSHTTP" value="Client_WsHttpBinding_M_Security_OPS" />
-    <add key="OPS_WSO2_ENDPOINT_CONFIG_WSHTTP" value="Client_customBinding_M_Security_OPS_WS02" />
+    <add key="OPS_DOTNET_ENDPOINT_CONFIG_HTTP" value="OpsClient_DotNet_BasicHttpBinding" />
+    <add key="OPS_DOTNET_ENDPOINT_CONFIG_WSHTTP" value="OpsClient_DotNet_WsHttpBinding_MSec" />
+    <add key="OPS_PHP_ENDPOINT_CONFIG_HTTP" value="OpsClient_PHP_BasicHttpBinding" />
+    <add key="OPS_PHP_ENDPOINT_CONFIG_WSHTTP" value="OpsClient_PHP_WsHttpBinding_MSec" />
+    <add key="OPS_WSAS_ENDPOINT_CONFIG_HTTP" value="OpsClient_WSAS_BasicHttpBinding" />
+    <add key="OPS_WSAS_ENDPOINT_CONFIG_WSHTTP" value="OpsClient_WSAS_WsHttpBinding_MSec" />
     <add key="ClientSettingsProvider.ServiceUri" value="" />
   </appSettings>
   <runtime>
@@ -88,48 +94,105 @@
     <!--The <services> section configures the WCF services that the .NET Stock Order Processor will host.
     Note that StockTrader uses the configuration files only to specify base service names and their bindings.
     Base addresses and Service/Client endpoints are created programmatically at runtime.-->
+    <!--********************************************************
+        
+    Config Service BS Service
+    
+    *********************************************************-->
     <services>
-      <service name="Trade.BusinessServiceImplementation.TradeServiceWcf" behaviorConfiguration="BSL_MSEC_BEHAVIOR">
-      </service>
+      <service name="Trade.BusinessServiceImplementation.TradeServiceWcf" 
+               behaviorConfiguration="BsHost_MSec_ServiceBehavior"></service>
     </services>
+    
+    
+    <!--********************************************************
+        
+    Config Service OPS CLIENTS
+    
+    *********************************************************-->
     <client>
-      <endpoint address="http://localhost:8000/tradeorderprocessor" binding="basicHttpBinding" bindingConfiguration="Client_BasicHttpBinding" contract="Trade.OrderProcessorContract.IOrderProcessor" name="Client_BasicHttpBinding" />
-      <endpoint address="http://localhost:8000/tradeorderprocessor/msec" binding="wsHttpBinding" bindingConfiguration="Client_WsHttpBinding_M_Security_OPS" contract="Trade.OrderProcessorContract.IOrderProcessor" behaviorConfiguration="OPS_ClientCertificateBehavior" name="Client_WsHttpBinding_M_Security_OPS">
+      <!-- DotNet Endpoints -->
+      <endpoint address="http://localhost:8000/tradeorderprocessor" 
+                contract="Trade.OrderProcessorContract.IOrderProcessor"
+                binding="basicHttpBinding" bindingConfiguration="OpsClient_BasicHttpBinding" 
+                name="OpsClient_DotNet_BasicHttpBinding" />
+      
+      <endpoint address="http://localhost:8000/tradeorderprocessor/msec"
+                contract="Trade.OrderProcessorContract.IOrderProcessor"
+                binding="wsHttpBinding" bindingConfiguration="OpsClient_WsHttpBinding_MSec" 
+                behaviorConfiguration="OpsClient_DotNet_CertificateBehavior" 
+                name="OpsClient_DotNet_WsHttpBinding_MSec">
         <identity>
           <certificate encodedValue="AwAAAAEAAAAUAAAA+g9Yu2BfpDNp4nno+QiIcv3gmUMgAAAAAQAAAPQBAAAwggHwMIIBWaADAgECAhDUQtaRqC0hpkD6saVDQMH8MA0GCSqGSIb3DQEBBAUAMBIxEDAOBgNVBAMTB09QUy5Db20wHhcNMDgwNTIxMDQ0NTAxWhcNMzkxMjMxMjM1OTU5WjASMRAwDgYDVQQDEwdPUFMuQ29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHCT2agc1venAAV2iWxWs1ELKlr0wAf005uUYlFbpq/3ewLmi5t+NvN8iBRHJxWA5igj/obcBmKMQ0L/+1HwKI27B9zffyPiAYkJhAwoXzR/S/7Cw4KFtYD+NIyZbRd5naa2fbyRTNnAE35q4r6JS6tiZR9mU0IjMuszj0oqotEwIDAQABo0cwRTBDBgNVHQEEPDA6gBAYaG6w3pziP/tZKe+J5ExsoRQwEjEQMA4GA1UEAxMHT1BTLkNvbYIQ1ELWkagtIaZA+rGlQ0DB/DANBgkqhkiG9w0BAQQFAAOBgQBnzFXGKgK8by3yILHlfLsmBTIZWdODFWE/f64wZJxrS7XCqd+g962FeTKQ+QI/lkRhJLlKgEt0IqGfUeogJ1MGRHabR5ujnQKhdPWUDL7kwQt3OVHxIf0pXqeiTAI8BbdFRGTWG5oOLcU7WgUNWbrXjqsAHJmsb8+MN7fD4xRoeA==" />
         </identity>
       </endpoint>
-      <endpoint address="http://insert_address_here" binding="customBinding" bindingConfiguration="Client_customBinding_M_Security_OPS_WS02" contract="Trade.OrderProcessorContract.IOrderProcessor" behaviorConfiguration="OPS_ClientCertificateBehavior" name="Client_customBinding_M_Security_OPS_WS02">
+      <!-- PHP Endpoints -->
+      <endpoint address="http://localhost:8080/php_stocktrader/order_processor/order_processor_svc.php" 
+                contract="Trade.OrderProcessorContract.IOrderProcessor"
+                binding="basicHttpBinding" bindingConfiguration="OpsClient_BasicHttpBinding"
+                name="OpsClient_PHP_BasicHttpBinding" />
+      
+      <endpoint address="http://localhost:8080/php_stocktrader/order_processor/order_processor_svc_msec.php"
+                contract="Trade.OrderProcessorContract.IOrderProcessor"
+                binding="customBinding" bindingConfiguration="OpsClient_PHP_WSAS_CustomBinding_MSec" 
+                behaviorConfiguration="OpsClient_PHP_WSAS_CertificateBehavior" 
+                name="OpsClient_PHP_WsHttpBinding_MSec">
+        <identity>
+          <certificate encodedValue="MIIDCjCCAfKgAwIBAgIQYDju2/6sm77InYfTq65x+DANBgkqhkiG9w0BAQUFADAwMQ4wDAYDVQQKDAVPQVNJUzEeMBwGA1UEAwwVT0FTSVMgSW50ZXJvcCBUZXN0IENBMB4XDTA1MDMxOTAwMDAwMFoXDTE4MDMxOTIzNTk1OVowQDEOMAwGA1UECgwFT0FTSVMxIDAeBgNVBAsMF09BU0lTIEludGVyb3AgVGVzdCBDZXJ0MQwwCgYDVQQDDANCb2IwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMCquMva4lFDrv3fXQnKK8CkSU7HvVZ0USyJtlL/yhmHH/FQXHyYY+fTcSyWYItWJYiTZ99PAbD+6EKBGbdfuJNUJCGaTWc5ZDUISqM/SGtacYe/PD/4+g3swNPzTUQAIBLRY1pkr2cm3s5Ch/f+mYVNBR41HnBeIxybw25kkoM7AgMBAAGjgZMwgZAwCQYDVR0TBAIwADAzBgNVHR8ELDAqMCiiJoYkaHR0cDovL2ludGVyb3AuYmJ0ZXN0Lm5ldC9jcmwvY2EuY3JsMA4GA1UdDwEB/wQEAwIEsDAdBgNVHQ4EFgQUXeg55vRyK3ZhAEhEf+YT0z986L0wHwYDVR0jBBgwFoAUwJ0o/MHrNaEd1qqqoBwaTcJJDw8wDQYJKoZIhvcNAQEFBQADggEBAIiVGv2lGLhRvmMAHSlY7rKLVkv+zEUtSyg08FBT8z/RepUbtUQShcIqwWsemDU8JVtsucQLc+g6GCQXgkCkMiC8qhcLAt3BXzFmLxuCEAQeeFe8IATr4wACmEQE37TEqAuWEIanPYIplbxYgwP0OBWBSjcRpKRAxjEzuwObYjbll6vKdFHYIweWhhWPrefquFp7TefTkF4D3rcctTfWJ76I5NrEVld+7PBnnJNpdDEuGsoaiJrwTW3Ixm40
 RXvG3fYS4hIAPeTCUk3RkYfUkqlaaLQnUrF2hZSgiBNLPe8gGkYORccRIlZCGQDEpcWl1Uf9OHw6fC+3hkqolFd5CVI=" />
+        </identity>
+      </endpoint>
+
+      <!-- WSAS Endpoints -->
+      <endpoint address="http://localhost:9763/services/OrderProcessor"
+                contract="Trade.OrderProcessorContract.IOrderProcessor"
+                binding="basicHttpBinding" bindingConfiguration="OpsClient_BasicHttpBinding"
+                name="OpsClient_WSAS_BasicHttpBinding" />
+
+      <endpoint address="http://localhost:9763/services/OrderProcessorMsec"
+                contract="Trade.OrderProcessorContract.IOrderProcessor"
+                binding="customBinding" bindingConfiguration="OpsClient_PHP_WSAS_CustomBinding_MSec"
+                behaviorConfiguration="OpsClient_PHP_WSAS_CertificateBehavior"
+                name="OpsClient_WSAS_WsHttpBinding_MSec">
         <identity>
           <certificate encodedValue="MIIDCjCCAfKgAwIBAgIQYDju2/6sm77InYfTq65x+DANBgkqhkiG9w0BAQUFADAwMQ4wDAYDVQQKDAVPQVNJUzEeMBwGA1UEAwwVT0FTSVMgSW50ZXJvcCBUZXN0IENBMB4XDTA1MDMxOTAwMDAwMFoXDTE4MDMxOTIzNTk1OVowQDEOMAwGA1UECgwFT0FTSVMxIDAeBgNVBAsMF09BU0lTIEludGVyb3AgVGVzdCBDZXJ0MQwwCgYDVQQDDANCb2IwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMCquMva4lFDrv3fXQnKK8CkSU7HvVZ0USyJtlL/yhmHH/FQXHyYY+fTcSyWYItWJYiTZ99PAbD+6EKBGbdfuJNUJCGaTWc5ZDUISqM/SGtacYe/PD/4+g3swNPzTUQAIBLRY1pkr2cm3s5Ch/f+mYVNBR41HnBeIxybw25kkoM7AgMBAAGjgZMwgZAwCQYDVR0TBAIwADAzBgNVHR8ELDAqMCiiJoYkaHR0cDovL2ludGVyb3AuYmJ0ZXN0Lm5ldC9jcmwvY2EuY3JsMA4GA1UdDwEB/wQEAwIEsDAdBgNVHQ4EFgQUXeg55vRyK3ZhAEhEf+YT0z986L0wHwYDVR0jBBgwFoAUwJ0o/MHrNaEd1qqqoBwaTcJJDw8wDQYJKoZIhvcNAQEFBQADggEBAIiVGv2lGLhRvmMAHSlY7rKLVkv+zEUtSyg08FBT8z/RepUbtUQShcIqwWsemDU8JVtsucQLc+g6GCQXgkCkMiC8qhcLAt3BXzFmLxuCEAQeeFe8IATr4wACmEQE37TEqAuWEIanPYIplbxYgwP0OBWBSjcRpKRAxjEzuwObYjbll6vKdFHYIweWhhWPrefquFp7TefTkF4D3rcctTfWJ76I5NrEVld+7PBnnJNpdDEuGsoaiJrwTW3Ixm40
 RXvG3fYS4hIAPeTCUk3RkYfUkqlaaLQnUrF2hZSgiBNLPe8gGkYORccRIlZCGQDEpcWl1Uf9OHw6fC+3hkqolFd5CVI=" />
         </identity>
       </endpoint>
     </client>
-    <!--********************************************************BEGIN CONFIG SERVICE TEMPLATE BINDINGS*****************************************************-->
+    
+    
+    <!--********************************************************
+        
+    Config Service BINDINGS
+    
+    *********************************************************-->
     <bindings>
+      
       <!--BEGIN basicHttpBindings-->
       <basicHttpBinding>
-        <!--THESE ARE TEMPLATE PRIMARY SERVICE HOST BINDINGS.  TO AUGMENT, ADD WITH PREFIX 'Host_'-->
-        <binding name="Host_BasicHttpBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:30:00" sendTimeout="00:1:00" allowCookies="true" bypassProxyOnLocal="true" hostNameComparisonMode="StrongWildcard" maxBufferSize="1048576" maxBufferPoolSize="10485768" maxReceivedMessageSize="1048576" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
+        
+        <binding name="BsHost_BasicHttpBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:30:00" sendTimeout="00:1:00" allowCookies="true" bypassProxyOnLocal="true" hostNameComparisonMode="StrongWildcard" maxBufferSize="1048576" maxBufferPoolSize="10485768" maxReceivedMessageSize="1048576" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
           <readerQuotas maxDepth="512" maxStringContentLength="262144" maxArrayLength="262144" maxBytesPerRead="65536" maxNameTableCharCount="262144" />
           <security mode="None">
             <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
             <message clientCredentialType="Certificate" algorithmSuite="Default" />
           </security>
         </binding>
-        <!--THESE ARE TEMPLATE PRIMARY SERVICE CLIENT BINDINGS.  TO AUGMENT, ADD WITH PREFIX 'Client_'-->
-        <binding name="Client_BasicHttpBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:30:00" sendTimeout="00:1:00" allowCookies="true" bypassProxyOnLocal="true" hostNameComparisonMode="StrongWildcard" maxBufferSize="524288" maxBufferPoolSize="524288" maxReceivedMessageSize="524288" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
+        
+        <binding name="OpsClient_BasicHttpBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:30:00" sendTimeout="00:1:00" allowCookies="true" bypassProxyOnLocal="true" hostNameComparisonMode="StrongWildcard" maxBufferSize="524288" maxBufferPoolSize="524288" maxReceivedMessageSize="524288" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
           <readerQuotas maxDepth="512" maxStringContentLength="262144" maxArrayLength="262144" maxBytesPerRead="65536" maxNameTableCharCount="262144" />
           <security mode="None">
             <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
             <message clientCredentialType="Certificate" algorithmSuite="Default" />
           </security>
         </binding>
+        
       </basicHttpBinding>
+      
       <!--BEGIN wsHttpBindings-->
       <wsHttpBinding>
-        <!--PRIMARY SERVICE HOST BINDINGS.  TO ADD OTHERS, MAKE SURE TO PREFACE NAME WITH 'Host_'-->
-        <binding name="Host_WsHttpBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:30:00" sendTimeout="00:1:00" allowCookies="true" maxReceivedMessageSize="65536" hostNameComparisonMode="StrongWildcard" messageEncoding="Text" textEncoding="utf-8" bypassProxyOnLocal="true" transactionFlow="false">
+      
+        <!--PRIMARY SERVICE HOST BINDINGS.  TO ADD OTHERS, MAKE SURE TO PREFACE NAME WITH 'Host_'
+        <binding name="BsHost_WsHttpBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:30:00" sendTimeout="00:1:00" allowCookies="true" maxReceivedMessageSize="65536" hostNameComparisonMode="StrongWildcard" messageEncoding="Text" textEncoding="utf-8" bypassProxyOnLocal="true" transactionFlow="false">
           <readerQuotas maxDepth="512" maxStringContentLength="262144" maxArrayLength="262144" maxBytesPerRead="65536" maxNameTableCharCount="262144" />
           <reliableSession enabled="false" ordered="true" inactivityTimeout="00:10:00" />
           <security mode="None">
@@ -137,7 +200,8 @@
             <message clientCredentialType="Certificate" negotiateServiceCredential="true" algorithmSuite="Default" />
           </security>
         </binding>
-        <binding name="Host_WsHttpBinding_M_Security" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:30:00" sendTimeout="00:1:00" allowCookies="true" maxReceivedMessageSize="65536" hostNameComparisonMode="StrongWildcard" messageEncoding="Text" textEncoding="utf-8" bypassProxyOnLocal="true" transactionFlow="false">
+        -->
+        <binding name="BsHost_WsHttpBinding_MSec" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:30:00" sendTimeout="00:1:00" allowCookies="true" maxReceivedMessageSize="65536" hostNameComparisonMode="StrongWildcard" messageEncoding="Text" textEncoding="utf-8" bypassProxyOnLocal="true" transactionFlow="false">
           <readerQuotas maxDepth="512" maxStringContentLength="262144" maxArrayLength="262144" maxBytesPerRead="65536" maxNameTableCharCount="262144" />
           <reliableSession enabled="false" ordered="true" inactivityTimeout="00:10:00" />
           <security mode="Message">
@@ -145,8 +209,9 @@
             <message clientCredentialType="UserName" negotiateServiceCredential="true" algorithmSuite="Default" />
           </security>
         </binding>
-        <!--PRIMARY SERVICE CLIENT BINDINGS.  TO ADD OTHERS, MAKE SURE TO PREFACE NAME WITH 'Client_'-->
-        <binding name="Client_WsHttpBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:30:00" sendTimeout="00:1:00" allowCookies="true" maxReceivedMessageSize="65536" hostNameComparisonMode="StrongWildcard" messageEncoding="Text" textEncoding="utf-8" bypassProxyOnLocal="true" transactionFlow="false">
+        
+        <!--PRIMARY SERVICE CLIENT BINDINGS.  TO ADD OTHERS, MAKE SURE TO PREFACE NAME WITH 'Client_'
+        <binding name="OpsClient_WsHttpBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:30:00" sendTimeout="00:1:00" allowCookies="true" maxReceivedMessageSize="65536" hostNameComparisonMode="StrongWildcard" messageEncoding="Text" textEncoding="utf-8" bypassProxyOnLocal="true" transactionFlow="false">
           <readerQuotas maxDepth="512" maxStringContentLength="262144" maxArrayLength="262144" maxBytesPerRead="65536" maxNameTableCharCount="262144" />
           <reliableSession enabled="false" ordered="true" inactivityTimeout="00:10:00" />
           <security mode="None">
@@ -154,7 +219,8 @@
             <message clientCredentialType="Certificate" negotiateServiceCredential="true" algorithmSuite="Default" />
           </security>
         </binding>
-        <binding name="Client_WsHttpBinding_M_Security_OPS" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
+        -->
+        <binding name="OpsClient_WsHttpBinding_MSec" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
           <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
           <reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false" />
           <security mode="Message">
@@ -163,8 +229,11 @@
           </security>
         </binding>
       </wsHttpBinding>
+      
+      <!--BEGIN CustomBindings-->
       <customBinding>
-        <binding name="Client_customBinding_M_Security_OPS_WS02">
+        
+        <binding name="OpsClient_PHP_WSAS_CustomBinding_MSec">
           <security defaultAlgorithmSuite="Basic256" authenticationMode="AnonymousForCertificate" requireDerivedKeys="false" securityHeaderLayout="Lax" includeTimestamp="true" keyEntropyMode="CombinedEntropy" messageProtectionOrder="SignBeforeEncrypt" messageSecurityVersion="Default" requireSignatureConfirmation="true">
             <localClientSettings cacheCookies="true" detectReplays="true" replayCacheSize="900000" maxClockSkew="00:05:00" maxCookieCachingTime="05:05:00" replayWindow="00:05:00" sessionKeyRenewalInterval="10:00:00" sessionKeyRolloverInterval="00:05:00" reconnectTransportOnFailure="true" timestampValidityDuration="00:05:00" cookieRenewalThresholdPercentage="60" />
             <localServiceSettings detectReplays="true" issuedCookieLifetime="10:00:00" maxStatefulNegotiations="128" replayCacheSize="900000" maxClockSkew="00:05:00" negotiationTimeout="00:01:00" replayWindow="00:05:00" inactivityTimeout="00:02:00" sessionKeyRenewalInterval="15:00:00" sessionKeyRolloverInterval="00:05:00" reconnectTransportOnFailure="true" maxPendingSessions="128" maxCachedCookies="1000" timestampValidityDuration="00:05:00" />
@@ -175,22 +244,34 @@
           </textMessageEncoding>
           <httpTransport />
         </binding>
+        
       </customBinding>
     </bindings>
-    <!-- END CONFIG SERVICE TEMPLATE BINDINGS-->
-    <!--*******************************************BEGIN CONFIG SERVICE TEMPLATE SERVICE BEHAVIORS****************************************-->
-    <!--Service Behaviors are applied (at the service level) to services that specify them, hence apply to ALL ENDPOINTS FOR A SERVICE HOST/VHOST -->
+
+
+    <!--********************************************************
+    
+    Config Service BEHAVIORS
+    
+    *********************************************************-->
     <behaviors>
       <serviceBehaviors>
-        <behavior name="DefaultBehavior">
+        
+        <!-- Begin the BS Service Behaviors -->
+        <!--
+        <behavior name="BsHost_DefaultBehavior">
           <serviceThrottling maxConcurrentInstances="400" maxConcurrentCalls="400" maxConcurrentSessions="100" />
         </behavior>
-        <behavior name="TradeServiceBehaviors">
+        
+        <behavior name="BsHost_DebugServiceBehaviors">
           <serviceMetadata httpGetEnabled="true" />
           <serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" />
           <serviceThrottling maxConcurrentInstances="400" maxConcurrentCalls="400" maxConcurrentSessions="100" />
         </behavior>
-        <behavior name="BSL_MSEC_BEHAVIOR">
+        -->
+        
+        <!-- Default BS Host Behavior -->
+        <behavior name="BsHost_MSec_ServiceBehavior">
           <serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" />
           <serviceThrottling maxConcurrentInstances="400" maxConcurrentCalls="400" maxConcurrentSessions="100" />
           <serviceCredentials>
@@ -199,9 +280,10 @@
           </serviceCredentials>
         </behavior>
       </serviceBehaviors>
-      <!--BEGIN CONFIG SERVICE TEMPLATE ENDPOINT BEHAVIORS-->
-      <!--Endpint Behaviors are applied at the individual endpoint level.-->
+
+      <!-- Begin the OPS Client Service Behaviors -->
       <endpointBehaviors>
+        <!--
         <behavior name="ClientCertificateBehavior">
           <clientCredentials>
             <serviceCertificate>
@@ -209,6 +291,7 @@
             </serviceCertificate>
           </clientCredentials>
         </behavior>
+        
         <behavior name="BSL_ClientCertificateBehavior">
           <clientCredentials>
             <serviceCertificate>
@@ -216,15 +299,28 @@
             </serviceCertificate>
           </clientCredentials>
         </behavior>
-        <behavior name="OPS_ClientCertificateBehavior">
+        -->
+        
+        <behavior name="OpsClient_DotNet_CertificateBehavior">
           <clientCredentials>
             <clientCertificate findValue="BSL.Com" x509FindType="FindBySubjectName" storeLocation="LocalMachine" storeName="TrustedPeople" />
           </clientCredentials>
         </behavior>
+
+        <!-- This needs to be changed to work with PHP/WSAS Bob/Alice Certs -->
+        <behavior name="OpsClient_PHP_WSAS_CertificateBehavior">
+          <clientCredentials>
+            <serviceCertificate>
+              <authentication certificateValidationMode="PeerOrChainTrust" />
+            </serviceCertificate>
+          </clientCredentials>
+        </behavior>
+      
       </endpointBehaviors>
+    
     </behaviors>
-    <!--END CONFIG SERVICE TEMPLATE BEHAVIORS-->
   </system.serviceModel>
+
   <system.web>
     <membership defaultProvider="ClientAuthenticationMembershipProvider">
       <providers>

Modified: incubator/stonehenge/trunk/stocktrader/dotnet/business_service/BusinessServiceConsole/Program.cs
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/dotnet/business_service/BusinessServiceConsole/Program.cs?rev=769572&r1=769571&r2=769572&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/dotnet/business_service/BusinessServiceConsole/Program.cs (original)
+++ incubator/stonehenge/trunk/stocktrader/dotnet/business_service/BusinessServiceConsole/Program.cs Tue Apr 28 22:20:50 2009
@@ -103,8 +103,8 @@
                 host.Description.Behaviors.Add(mexbehavior);
                 Binding mexHttpBinding = MetadataExchangeBindings.CreateMexHttpBinding();
                 ServiceEndpoint sepMex = host.AddServiceEndpoint(typeof(IMetadataExchange), mexHttpBinding, uri.AbsoluteUri + "/mex");
-                BasicHttpBinding httpBinding = new BasicHttpBinding("Host_BasicHttpBinding");
-                WSHttpBinding wsHttpBinding = new WSHttpBinding("Host_WsHttpBinding_M_Security");
+                BasicHttpBinding httpBinding = new BasicHttpBinding("BsHost_BasicHttpBinding");
+                WSHttpBinding wsHttpBinding = new WSHttpBinding("BsHost_WsHttpBinding_MSec");
                 host.AddServiceEndpoint(typeof(ITradeServices), httpBinding, "");
                 host.AddServiceEndpoint(typeof(ITradeServices), wsHttpBinding, "msec");
 

Modified: incubator/stonehenge/trunk/stocktrader/dotnet/business_service/OrderProcessorASyncClient/OrderProcessorAsyncClient.cs
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/dotnet/business_service/OrderProcessorASyncClient/OrderProcessorAsyncClient.cs?rev=769572&r1=769571&r2=769572&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/dotnet/business_service/OrderProcessorASyncClient/OrderProcessorAsyncClient.cs (original)
+++ incubator/stonehenge/trunk/stocktrader/dotnet/business_service/OrderProcessorASyncClient/OrderProcessorAsyncClient.cs Tue Apr 28 22:20:50 2009
@@ -79,20 +79,35 @@
                     {
                         throw new Exception("OrderMode not recognized");
                     }
-                case StockTraderUtility.ORDER_ASync_Http:
+                case StockTraderUtility.ORDER_ASync_DotNet_Http:
                     {
                         _clientConfig = Settings.OPS_DOTNET_ENDPOINT_CONFIG_HTTP;
                         break;
                     }
                
-                case StockTraderUtility.ORDER_ASync_WSHttp:
+                case StockTraderUtility.ORDER_ASync_DotNet_WsHttp_MSec:
                     {
                         _clientConfig = Settings.OPS_DOTNET_ENDPOINT_CONFIG_WSHTTP;
                         break;
                     }
-                case StockTraderUtility.ORDER_ASync_WSHttp_WSO2:
+                case StockTraderUtility.ORDER_ASync_PHP_Http:
                     {
-                        _clientConfig = Settings.OPS_WSO2_ENDPOINT_CONFIG_WSHTTP;
+                        _clientConfig = Settings.OPS_PHP_ENDPOINT_CONFIG_HTTP;
+                        break;
+                    }
+                case StockTraderUtility.ORDER_ASync_PHP_WsHttp_MSec:
+                    {
+                        _clientConfig = Settings.OPS_PHP_ENDPOINT_CONFIG_WSHTTP;
+                        break;
+                    }
+                case StockTraderUtility.ORDER_ASync_WSAS_Http:
+                    {
+                        _clientConfig = Settings.OPS_WSAS_ENDPOINT_CONFIG_HTTP;
+                        break;
+                    }
+                case StockTraderUtility.ORDER_ASync_WSAS_WsHttp_MSec:
+                    {
+                        _clientConfig = Settings.OPS_WSAS_ENDPOINT_CONFIG_WSHTTP;
                         break;
                     }
             }

Modified: incubator/stonehenge/trunk/stocktrader/dotnet/common/ServiceConfigurationSettings/Settings.cs
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/dotnet/common/ServiceConfigurationSettings/Settings.cs?rev=769572&r1=769571&r2=769572&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/dotnet/common/ServiceConfigurationSettings/Settings.cs (original)
+++ incubator/stonehenge/trunk/stocktrader/dotnet/common/ServiceConfigurationSettings/Settings.cs Tue Apr 28 22:20:50 2009
@@ -60,8 +60,6 @@
     /// </summary>
     public class Settings //db : ConfigurationSettingsBase   //Inherit from base implementation!!
     {
-
-
         public static string BSL_DOTNET_ENDPOINT_CONFIG_HTTP;
         public static string BSL_DOTNET_ENDPOINT_CONFIG_WSHTTP;
         public static string BSL_PHP_ENDPOINT_CONFIG_HTTP;
@@ -85,7 +83,7 @@
         //Page Names for StockTrader application
         public static readonly string PAGE_HOME = "TradeHome.aspx";
         public static readonly string PAGE_LOGIN = "Login.aspx";
-        public static readonly string PAGE_LOGOUT = "Logout.aspx";
+        //public static readonly string PAGE_LOGOUT = "Logout.aspx";
         public static readonly string PAGE_QUOTES = "Quotes.aspx";
         public static readonly string PAGE_ORDER = "Order.aspx";
         public static readonly string PAGE_TRADE = "StockTrade.aspx";
@@ -93,10 +91,10 @@
         //public static readonly string PAGE_PATH_CONFIG = "ConfigWeb/default.aspx";
         
         //Trade HTML Fomatting Constants
-        public static readonly string GAINSTYLECSS =  "GainTextStyle";
-        public static readonly string LOSSSTYLECSS =  "LossTextStyle";
-        public static readonly string UPARROWLINK =  "<img style=\"width:12px;height:12px\" alt=\"\" src=\"images/arrowup.gif\"/>";
-        public static readonly string DOWNARROWLINK = "<img style=\"width:12px;height:12px\" alt=\"\" src=\"images/arrowdown.gif\"/>";
+        public static readonly string GAINSTYLECSS = "price-gain";
+        public static readonly string LOSSSTYLECSS = "price-loss";
+        //public static readonly string UPARROWLINK =  "<img style=\"width:12px;height:12px\" alt=\"\" src=\"images/green-arrow.gif\"/>";
+        //public static readonly string DOWNARROWLINK = "<img style=\"width:12px;height:12px\" alt=\"\" src=\"images/red-arrow.gif\"/>";
 
         /// <summary>
         /// Settings (Constructor) - handles the config.

Modified: incubator/stonehenge/trunk/stocktrader/dotnet/common/StockTraderUtility/Utility.cs
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/dotnet/common/StockTraderUtility/Utility.cs?rev=769572&r1=769571&r2=769572&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/dotnet/common/StockTraderUtility/Utility.cs (original)
+++ incubator/stonehenge/trunk/stocktrader/dotnet/common/StockTraderUtility/Utility.cs Tue Apr 28 22:20:50 2009
@@ -62,6 +62,7 @@
         public static readonly string EXCEPTION_MESSAGE_INVALID_HOLDING_ZERO_BASIS = "Holding with zero basis!: holdingID=";
         public static readonly string EXCEPTION_MESSAGE_NULL_DATE = "Data is Null. This method or property cannot be called on Null values.";
         public static readonly string EXCEPTION_MESSAGE_BAD_ORDER_PARMS = "Your order was not placed becuase the requested quantity was not valid.";
+        public static readonly string EXCEPTION_MESSAGE_BAD_ACTION = "Your order was not placed becuase the requested action is invalid.";
         public static readonly string EXCEPTION_MESSAGE_BAD_ORDER_RETURN = "We are sorry but your order could not be placed. Please try again later.";
         public static readonly string EXCEPTION_MESSAGE_ACID_REGISTRATION = "ACID TEST ON INSERT USERID 'ACID': PLANNED EXCEPTION THROWN!";
         public static readonly string EXCEPTION_MESSAGE_ACID_BUY = "PLANNED ACID TEST: SYMBOL 'ACIDBUY' PLANNED EXCEPTION THROWN!";
@@ -117,15 +118,21 @@
 
         //Valid Config Values for user-set "OrderMode" config setting.
         public const string ORDER_STRING_Sync = "Sync_InProcess";
-        public const string ORDER_STRING_ASyncHttp = "ASync_Http";
-        public const string ORDER_STRING_ASyncHttpMSec = "ASync_Http_MSecurity";
-        public const string ORDER_STRING_WSO2_HTTP_MSEC = "ASync_WSO2_Java_Http_MSecurity";
+        public const string ORDER_STRING_ASync_DotNet_Http = "ASync_DotNet_Http";
+        public const string ORDER_STRING_ASync_DotNet_WsHttp_MSec = "ASync_DotNet_WsHttp_MSecurity";
+        public const string ORDER_STRING_ASync_PHP_Http = "ASync_PHP_Http";
+        public const string ORDER_STRING_ASync_PHP_WsHttp_MSec = "ASync_PHP_WsHttp_MSecurity";
+        public const string ORDER_STRING_ASync_WSAS_Http = "ASync_WSAS_Http";
+        public const string ORDER_STRING_ASync_WSAS_WsHttp_MSec = "ASync_WSAS_WsHttp_MSecurity";
 
         //OrderMode constants
         public const int ORDER_Sync = 0;
-        public const int ORDER_ASync_Http = 1;
-        public const int ORDER_ASync_WSHttp = 2;
-        public const int ORDER_ASync_WSHttp_WSO2 = 3;
+        public const int ORDER_ASync_DotNet_Http = 1;
+        public const int ORDER_ASync_DotNet_WsHttp_MSec = 2;
+        public const int ORDER_ASync_PHP_Http = 3;
+        public const int ORDER_ASync_PHP_WsHttp_MSec = 4;
+        public const int ORDER_ASync_WSAS_Http = 5;
+        public const int ORDER_ASync_WSAS_WsHttp_MSec = 6;
 
         //map user strings to ints for faster lookups. We want to catch invalid settings
         //so the user knows what tx model they are running within a service.
@@ -279,21 +286,21 @@
         public static void DescribeService(ServiceHost host)
         {
             //iterate and display all endpoints via host.Description.Endpoints
-            Console.WriteLine("\n");
+            Console.WriteLine();
+            Console.WriteLine();
             Console.WriteLine("Configuration for {0} \n", Console.Title);
 
             ServiceDescription svcDesc = host.Description;
-            string configName = svcDesc.ConfigurationName;
-            Console.WriteLine("Configuration name: {0}", configName);
+            Console.WriteLine("Configuration name: {0}", svcDesc.ConfigurationName);
 
             // Iterate through the endpoints contained in the ServiceDescription
-            ServiceEndpointCollection sec = svcDesc.Endpoints;
-            foreach (ServiceEndpoint se in sec)
+            foreach (ServiceEndpoint se in svcDesc.Endpoints)
             {
                 Console.WriteLine("Endpoint:");
+                Console.WriteLine("\tName: {0}", se.Name);
                 Console.WriteLine("\tAddress: {0}", se.Address.ToString());
                 Console.WriteLine("\tBinding: {0}", se.Binding.ToString());
-                Console.WriteLine("\tContract: {0}", se.Contract.ToString());
+                Console.WriteLine("\tContract: {0}", se.Contract.ConfigurationName);
                 KeyedByTypeCollection<IEndpointBehavior> behaviors = se.Behaviors;
                 foreach (IEndpointBehavior behavior in behaviors)
                 {
@@ -301,17 +308,13 @@
                 }
             }
 
-            string name = svcDesc.Name;
-            Console.WriteLine("Service Description name: {0}", name);
+            Console.WriteLine();
+            Console.WriteLine("Service Description name: {0}", svcDesc.Name);
+            Console.WriteLine("Service Description namespace: {0}", svcDesc.Namespace);
+            Console.WriteLine("Service Type: {0}", svcDesc.ServiceType);
 
-            string namespc = svcDesc.Namespace;
-            Console.WriteLine("Service Description namespace: {0}", namespc);
-
-            Type serviceType = svcDesc.ServiceType;
-            Console.WriteLine("Service Type: {0}", serviceType.ToString());
-
-
-            Console.WriteLine("\n");
+            Console.WriteLine();
+            Console.WriteLine();
         }
     }
 

Modified: incubator/stonehenge/trunk/stocktrader/dotnet/order_processor/OrderProcessorConsoleServiceHost/App.config
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/dotnet/order_processor/OrderProcessorConsoleServiceHost/App.config?rev=769572&r1=769571&r2=769572&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/dotnet/order_processor/OrderProcessorConsoleServiceHost/App.config (original)
+++ incubator/stonehenge/trunk/stocktrader/dotnet/order_processor/OrderProcessorConsoleServiceHost/App.config Tue Apr 28 22:20:50 2009
@@ -26,18 +26,6 @@
 -->
 <configuration>
   <appSettings>
-    <!--This is the connection string to the Order Processor's Config Repository. All app-specific config information
-        is centralized in the repository, and not specified in separate config files.
-        For a production application you should encrypt connection string information in config files. See MSDN for details. -->
-    <add key="ORDER_PROCESSING_MODE" value="ASync_Http_MSecurity" />
-    <!--
-       //Valid Config Values for user-set "OrderMode" config setting.
-        public const string ORDER_STRING_Sync = "Sync_InProcess";
-        public const string ORDER_STRING_ASyncHttp = "ASync_Http";
-        public const string ORDER_STRING_ASyncHttpMSec = "ASync_Http_MSecurity";
-        public const string ORDER_STRING_WSO2_HTTP_MSEC = "ASync_WSO2_Java_Http_MSecurity";
-
-    -->
     <add key="DBServer" value="localhost" />
     <add key="Database" value="StockTraderDB" />
     <add key="UserID" value="trade" />
@@ -72,29 +60,38 @@
     <!--The <services> section configures the WCF services that the .NET Stock Order Processor will host.
     Note that StockTrader uses the configuration files only to specify base service names and their bindings.
     Base addresses and Service/Client endpoints are created programmatically at runtime.-->
+    <!--********************************************************
+        
+    Config Service OPS Service
+    
+    *********************************************************-->
     <services>
-      <service name="Trade.OrderProcessorImplementation.OrderProcessor" behaviorConfiguration="OPS_M_Security_Behavior">
+      <service name="Trade.OrderProcessorImplementation.OrderProcessor" 
+               behaviorConfiguration="OpsHost_MSec_Behavior">
       </service>
-      <!--<service name="Trade.OrderProcessorImplementation.OrderProcessor" behaviorConfiguration="TradeServiceBehaviors">
-      </service>
-      <service name="Trade.OrderProcessorHostConfigurationImplementation.ConfigurationService" />
-      <service name="ConfigService.ServiceNodeCommunicationImplementation.NodeCommunication" /> -->
     </services>
-    <!--********************************************************BEGIN CONFIG SERVICE TEMPLATE BINDINGS*****************************************************-->
+    <!--********************************************************
+        
+    Config Service BINDINGS
+    
+    *********************************************************-->
     <bindings>
       <!--BEGIN basicHttpBindings-->
       <basicHttpBinding>
+        
         <!--THESE ARE TEMPLATE PRIMARY SERVICE HOST BINDINGS.  TO AUGMENT, ADD WITH PREFIX 'Host_'-->
-        <binding name="Host_BasicHttpBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:30:00" sendTimeout="00:1:00" allowCookies="true" bypassProxyOnLocal="true" hostNameComparisonMode="StrongWildcard" maxBufferSize="1048576" maxBufferPoolSize="10485768" maxReceivedMessageSize="1048576" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
+        <binding name="OpsHost_BasicHttpBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:30:00" sendTimeout="00:1:00" allowCookies="true" bypassProxyOnLocal="true" hostNameComparisonMode="StrongWildcard" maxBufferSize="1048576" maxBufferPoolSize="10485768" maxReceivedMessageSize="1048576" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
           <readerQuotas maxDepth="512" maxStringContentLength="262144" maxArrayLength="262144" maxBytesPerRead="65536" maxNameTableCharCount="262144" />
           <security mode="None">
             <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
             <message clientCredentialType="Certificate" algorithmSuite="Default" />
           </security>
         </binding>
+      
       </basicHttpBinding>
       <!--BEGIN wsHttpBindings-->
       <wsHttpBinding>
+        <!--
         <binding name="Host_WsHttpBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:30:00" sendTimeout="00:1:00" allowCookies="true" maxReceivedMessageSize="65536" hostNameComparisonMode="StrongWildcard" messageEncoding="Text" textEncoding="utf-8" bypassProxyOnLocal="true" transactionFlow="false">
           <readerQuotas maxDepth="512" maxStringContentLength="262144" maxArrayLength="262144" maxBytesPerRead="65536" maxNameTableCharCount="262144" />
           <reliableSession enabled="false" ordered="true" inactivityTimeout="00:10:00" />
@@ -103,7 +100,8 @@
             <message clientCredentialType="Certificate" negotiateServiceCredential="true" algorithmSuite="Default" />
           </security>
         </binding>
-        <binding name="Host_WsHttpBinding_M_Security_OPS" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:30:00" sendTimeout="00:1:00" allowCookies="true" maxReceivedMessageSize="65536" hostNameComparisonMode="StrongWildcard" messageEncoding="Text" textEncoding="utf-8" bypassProxyOnLocal="true" transactionFlow="false">
+        -->
+        <binding name="OpsHost_WsHttpBinding_MSec" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:30:00" sendTimeout="00:1:00" allowCookies="true" maxReceivedMessageSize="65536" hostNameComparisonMode="StrongWildcard" messageEncoding="Text" textEncoding="utf-8" bypassProxyOnLocal="true" transactionFlow="false">
           <readerQuotas maxDepth="512" maxStringContentLength="262144" maxArrayLength="262144" maxBytesPerRead="65536" maxNameTableCharCount="262144" />
           <reliableSession enabled="false" ordered="true" inactivityTimeout="00:10:00" />
           <security mode="Message">
@@ -113,18 +111,26 @@
         </binding>
       </wsHttpBinding>
     </bindings>
-    <!--*******************************************BEGIN CONFIG SERVICE TEMPLATE SERVICE BEHAVIORS****************************************-->
-    <!--Service Behaviors are applied (at the service level) to services that specify them, hence apply to ALL ENDPOINTS FOR A SERVICE HOST/VHOST -->
+    <!--********************************************************
+    
+    Config Service BEHAVIORS
+    
+    *********************************************************-->
     <behaviors>
+      <!--Service Behaviors are applied (at the service level) to services that specify them, hence apply to ALL ENDPOINTS FOR A SERVICE HOST/VHOST -->
       <serviceBehaviors>
-        <behavior name="DefaultBehavior">
+
+        <!--
+        <behavior name="OpsHost_DefaultBehavior">
           <serviceMetadata httpGetEnabled="true" />
         </behavior>
-        <behavior name="TradeServiceBehaviors">
+        
+        <behavior name="OpsHost_DebugServiceBehaviors">
           <serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" />
           <serviceThrottling maxConcurrentInstances="400" maxConcurrentCalls="400" maxConcurrentSessions="100" />
         </behavior>
-        <behavior name="OPS_M_Security_Behavior">
+        -->
+        <behavior name="OpsHost_MSec_Behavior">
           <serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" />
           <serviceThrottling maxConcurrentInstances="400" maxConcurrentCalls="400" maxConcurrentSessions="100" />
           <serviceCredentials>
@@ -134,10 +140,13 @@
             </clientCertificate>
           </serviceCredentials>
         </behavior>
+        
       </serviceBehaviors>
-      <!--BEGIN CONFIG SERVICE TEMPLATE ENDPOINT BEHAVIORS-->
+      
+      
       <!--Endpint Behaviors are applied at the individual endpoint level.-->
       <endpointBehaviors>
+        <!--
         <behavior name="ClientCertificateBehavior">
           <clientCredentials>
             <serviceCertificate>
@@ -145,16 +154,20 @@
             </serviceCertificate>
           </clientCredentials>
         </behavior>
+        
         <behavior name="OPS_ClientCertificateBehavior">
           <clientCredentials>
             <clientCertificate findValue="OPS.Com" x509FindType="FindBySubjectName" storeLocation="LocalMachine" storeName="TrustedPeople">
             </clientCertificate>
           </clientCredentials>
         </behavior>
+        -->
       </endpointBehaviors>
     </behaviors>
     <!--END CONFIG SERVICE TEMPLATE BEHAVIORS-->
   </system.serviceModel>
+  
+  
   <system.web>
     <membership defaultProvider="ClientAuthenticationMembershipProvider">
       <providers>

Modified: incubator/stonehenge/trunk/stocktrader/dotnet/order_processor/OrderProcessorConsoleServiceHost/Program.cs
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/dotnet/order_processor/OrderProcessorConsoleServiceHost/Program.cs?rev=769572&r1=769571&r2=769572&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/dotnet/order_processor/OrderProcessorConsoleServiceHost/Program.cs (original)
+++ incubator/stonehenge/trunk/stocktrader/dotnet/order_processor/OrderProcessorConsoleServiceHost/Program.cs Tue Apr 28 22:20:50 2009
@@ -95,8 +95,8 @@
                 host.Description.Behaviors.Add(mexbehavior);
                 Binding mexHttpBinding = MetadataExchangeBindings.CreateMexHttpBinding();
                 ServiceEndpoint sepMex = host.AddServiceEndpoint(typeof(IMetadataExchange), mexHttpBinding, uri.AbsoluteUri + "/mex");
-                BasicHttpBinding httpBinding = new BasicHttpBinding("Host_BasicHttpBinding");
-                WSHttpBinding wsHttpBinding = new WSHttpBinding("Host_WsHttpBinding_M_Security_OPS");
+                BasicHttpBinding httpBinding = new BasicHttpBinding("OpsHost_BasicHttpBinding");
+                WSHttpBinding wsHttpBinding = new WSHttpBinding("OpsHost_WsHttpBinding_MSec");
                 host.AddServiceEndpoint(typeof(IOrderProcessor), httpBinding, "");
                 host.AddServiceEndpoint(typeof(IOrderProcessor), wsHttpBinding, "msec");
 
@@ -114,10 +114,10 @@
             Console.Title = ".NET StockTrader Order Processor Service Host";
             MyHost myHost = new MyHost();
             myHost.startUp();
-
-            Console.WriteLine(" ORDER_PROCESSING_MODE is currently = {0}\n", Settings.ORDER_PROCESSING_MODE);
             
-            Console.WriteLine(" {0} is started.\n Press any key to quit. ", Console.Title);
+            Console.WriteLine(" {0} is started.", Console.Title);
+            Console.WriteLine();
+            Console.WriteLine("Press Enter to quit.");
             Console.ReadLine();
         }
     }

Modified: incubator/stonehenge/trunk/stocktrader/dotnet/order_processor/OrderProcessorServiceConfigurationSettings/Settings.cs
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/dotnet/order_processor/OrderProcessorServiceConfigurationSettings/Settings.cs?rev=769572&r1=769571&r2=769572&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/dotnet/order_processor/OrderProcessorServiceConfigurationSettings/Settings.cs (original)
+++ incubator/stonehenge/trunk/stocktrader/dotnet/order_processor/OrderProcessorServiceConfigurationSettings/Settings.cs Tue Apr 28 22:20:50 2009
@@ -67,7 +67,6 @@
       
         public static string EVENT_LOG = "Order Processor Event Log";
 
-        public static string ORDER_PROCESSING_MODE;
         public static string DBServer;
         public static string Database;
         public static string UserID;
@@ -84,7 +83,7 @@
         public Settings()
         {
 
-            Settings.ORDER_PROCESSING_MODE = ConfigurationManager.AppSettings.Get("ORDER_PROCESSING_MODE");
+            //Settings.ORDER_PROCESSING_MODE = ConfigurationManager.AppSettings.Get("ORDER_PROCESSING_MODE");
             Settings.DBServer = ConfigurationManager.AppSettings.Get("DBServer");
             Settings.Database = ConfigurationManager.AppSettings.Get("Database");
             Settings.UserID = ConfigurationManager.AppSettings.Get("UserID");

Added: incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/DataFormatHelper.cs
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/DataFormatHelper.cs?rev=769572&view=auto
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/DataFormatHelper.cs (added)
+++ incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/DataFormatHelper.cs Tue Apr 28 22:20:50 2009
@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Trade.StockTraderWebApplicationSettings;
+
+namespace Trade.StockTraderWebApplicationModelClasses
+{
+    public static class DataFormatHelper
+    {
+        public static string NumberWithStyledArrow(double value)
+        {
+            if (value > 0)
+                return string.Format("<span class='" + Settings.GAINSTYLECSS + "'>{0:C}</span>", value);
+            else if (value < 0)
+                return string.Format("<span class='" + Settings.LOSSSTYLECSS + "'>{0:C}</span>", value);
+
+            return string.Format("{0:C}", value);
+        }
+
+        public static string NumberWithStyledArrow(decimal value)
+        {
+            if (value > 0)
+                return string.Format("<span class='" + Settings.GAINSTYLECSS + "'>{0:C}</span>", value);
+            else if (value < 0)
+                return string.Format("<span class='" + Settings.LOSSSTYLECSS + "'>{0:C}</span>", value);
+
+            return string.Format("{0:C}", value);
+        }
+
+        public static string GetQuoteLink(params string[] symbols)
+        {
+            var symbolsCsv = string.Join(",", symbols);
+            return "<a href=\"" + Settings.PAGE_QUOTES + "?symbols=" + symbolsCsv + "\">" + symbolsCsv + "</a>";
+        }
+
+    }
+}

Modified: incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/HoldingDataUI.cs
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/HoldingDataUI.cs?rev=769572&r1=769571&r2=769572&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/HoldingDataUI.cs (original)
+++ incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/HoldingDataUI.cs Tue Apr 28 22:20:50 2009
@@ -57,7 +57,7 @@
             this._quantity = string.Format("{0:0,0}", quantity);
             this._purchasePrice = string.Format("{0:C}", purchasePrice);
             this._purchaseDate = purchaseDate.ToString();
-            this._quoteID = "<a href=\"" + Settings.PAGE_QUOTES + "?symbols=" + quoteID + "\">" + quoteID + "</a>"; 
+            this._quoteID = DataFormatHelper.GetQuoteLink(quoteID); 
             this._quotePrice = string.Format("{0:C}", quotePrice);
         }
 
@@ -86,14 +86,8 @@
             this._sellLink = tdOpenCenter + tdClose;
             this._purchasePrice = tdOpenCenter + tdClose;
             this._quantity = tdOpenRight + string.Format("{0:0,0}", quantity) + tdClose;
-            this._quoteID = tdOpenCenter + "<a href=\"" + Settings.PAGE_QUOTES + "?symbols=" + quoteSymbol + "\">" + quoteSymbol + "</a>" + tdClose;
-            if (gain > 0)
-                _gainWithArrow = string.Format(tdOpenRight + "<span id=\"Gain\" style=\"color:green;" + "\">{0:C}" + Settings.UPARROWLINK + "</span>" + tdClose, gain);
-            else
-                if (gain < 0)
-                    _gainWithArrow = string.Format(tdOpenRight + "<span id=\"Loss\" style=\"color:#990000;" + "\">{0:C}" + Settings.DOWNARROWLINK + "</span>" + tdClose, gain);
-                else
-                    _gainWithArrow = string.Format(tdOpenRight + "{0:C}" + tdClose, gain);
+            this._quoteID = tdOpenCenter + DataFormatHelper.GetQuoteLink(quoteSymbol) + tdClose;
+            this._gainWithArrow = tdOpenRight + DataFormatHelper.NumberWithStyledArrow(gain) + tdClose;
             this._quotePrice = tdOpenRight + string.Format("{0:C}", quotePrice) + tdClose;
             this._marketValue = tdOpenRight + string.Format("{0:C}", marketvalue) + tdClose;
             this._basis = tdOpenRight + string.Format("{0:C}", basis) + tdClose;
@@ -120,14 +114,8 @@
             this._quantity = tdOpenRight + string.Format("{0:0,0}", this._quantityDouble) + tdClose;
             this._purchasePrice = tdOpenRight + string.Format("{0:C}", this._purchasePriceDecimal) + tdClose;
             this._purchaseDate = tdOpenCenter + this._purchaseDate + tdClose;
-            this._quoteID = tdOpenCenter + "<a href=\"" + Settings.PAGE_QUOTES + "?symbols=" + this._quoteID + "\">" + this._quoteID + "</a>" + tdClose;
-            if (_gainDecimal > 0)
-                _gainWithArrow = string.Format(tdOpenRight + "<span id=\"Gain\" style=\"color:green" + "\">{0:C}" + Settings.UPARROWLINK + "</span>" + tdClose, this._gainDecimal);
-            else
-                if (_gainDecimal < 0)
-                    _gainWithArrow = string.Format(tdOpenRight + "<span id=\"Loss\" style=\"color:#990000" + "\">{0:C}" + Settings.DOWNARROWLINK + "</span>" + tdClose, this._gainDecimal);
-                else
-                    _gainWithArrow = string.Format(tdOpenRight + "{0:C}" + tdClose, this._gainDecimal);
+            this._quoteID = tdOpenCenter + DataFormatHelper.GetQuoteLink(this._quoteID) + tdClose;
+            this._gainWithArrow = tdOpenRight + DataFormatHelper.NumberWithStyledArrow(_gainDecimal) + tdClose;
             this._marketValue = tdOpenRight + string.Format("{0:C}", this._marketValueDecimal) + tdClose;
             this._basis = tdOpenRight + string.Format("{0:C}", this._basisDecimal) + tdClose;
         }
@@ -276,6 +264,14 @@
 			}
 		}
 
+        public decimal purchasePriceDecimal
+        {
+            get
+            {
+                return _purchasePriceDecimal;
+            }
+        }
+
 		public string purchaseDate
 		{
 			get

Modified: incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/QuoteDataUI.cs
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/QuoteDataUI.cs?rev=769572&r1=769571&r2=769572&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/QuoteDataUI.cs (original)
+++ incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/QuoteDataUI.cs Tue Apr 28 22:20:50 2009
@@ -19,7 +19,6 @@
 
 using System;
 using System.Collections;
-using Trade.StockTraderWebApplicationSettings;
 
 namespace Trade.StockTraderWebApplicationModelClasses
 {
@@ -161,7 +160,7 @@
         {
             get
             {
-                return "<a href=\""+ Settings.PAGE_QUOTES + "?symbols=" + _symbol + "\">" + _symbol + "</a>";
+                return DataFormatHelper.GetQuoteLink(_symbol);
             }
         }
 
@@ -169,13 +168,7 @@
         {
             get
             {
-                if (this._change > 0)
-                    return string.Format("<div id=\"Gain\" style=\"color:green" + "\">{0:C}"+Settings.UPARROWLINK+"</div>", this._change);
-                else if (this._change < 0)
-                    return string.Format("<div id=\"Gain\" style=\"color:#990000" + "\">{0:C}" + Settings.DOWNARROWLINK + "</div>", this._change);
-                else
-                    return
-                        string.Format("{0:C}", this._change);
+                return DataFormatHelper.NumberWithStyledArrow(this._change);
             }
         }
 
@@ -183,13 +176,7 @@
         {
             get
             {
-                if (this._change > 0)
-                    return string.Format("<span id=\"Gain\" style=\"color:green" + "\">{0:C}" + Settings.UPARROWLINK + "</span>", this._price);
-                else
-                    if (this._change < 0)
-                        return string.Format("<span id=\"Gain\" style=\"color:#990000" + "\">{0:C}" + Settings.DOWNARROWLINK + "</span>", this._price);
-                    else
-                        return string.Format("{0:C}", this._price);                         
+                return DataFormatHelper.NumberWithStyledArrow(this._price);
             }
         }
     }

Modified: incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/StockTraderWebApplicationModelClasses.csproj
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/StockTraderWebApplicationModelClasses.csproj?rev=769572&r1=769571&r2=769572&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/StockTraderWebApplicationModelClasses.csproj (original)
+++ incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/StockTraderWebApplicationModelClasses.csproj Tue Apr 28 22:20:50 2009
@@ -73,6 +73,7 @@
   <ItemGroup>
     <Compile Include="CustomerDataUI.cs" />
     <Compile Include="CustomerProfileDataUI.cs" />
+    <Compile Include="DataFormatHelper.cs" />
     <Compile Include="HoldingDataUI.cs" />
     <Compile Include="MarketSummaryDataUI.cs" />
     <Compile Include="OrderDataUI.cs" />

Modified: incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/TotalHoldingsUI.cs
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/TotalHoldingsUI.cs?rev=769572&r1=769571&r2=769572&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/TotalHoldingsUI.cs (original)
+++ incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/TotalHoldingsUI.cs Tue Apr 28 22:20:50 2009
@@ -125,13 +125,7 @@
         {
             get
             {
-                if (this._gain > 0)
-                    return string.Format("<div style=\"color:green\">{0:C}" + Settings.UPARROWLINK + "</div>", this._gain);
-                else 
-                    if (this._gain <0) 
-                        return string.Format("<div style=\"color:#990000\">{0:C}" + Settings.DOWNARROWLINK + "</div>", this._gain);
-                    else
-                        return string.Format("{0:C}", this._gain);
+                return DataFormatHelper.NumberWithStyledArrow(this._gain);
             }
         }
     }

Modified: incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/TotalOrdersUI.cs
URL: http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/TotalOrdersUI.cs?rev=769572&r1=769571&r2=769572&view=diff
==============================================================================
--- incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/TotalOrdersUI.cs (original)
+++ incubator/stonehenge/trunk/stocktrader/dotnet/trader_client/StockTraderWebApplicationUIModelClasses/TotalOrdersUI.cs Tue Apr 28 22:20:50 2009
@@ -83,13 +83,8 @@
         {
             get
             {
-                if ((this._subtotalSell - this._subtotalBuy - this._txnFeesSubtotal) > 0)
-                    return String.Format("<div style=\"color:green;\">{0:C}" + Settings.UPARROWLINK, (this._subtotalSell - this._subtotalBuy - this._txnFeesSubtotal));
-                else
-                    if ((this._subtotalSell - this._subtotalBuy - this._txnFeesSubtotal) < 0)
-                        return String.Format("<div style=\"color:#990000;\">{0:C}" + Settings.DOWNARROWLINK, (this._subtotalSell - this._subtotalBuy - this._txnFeesSubtotal));
-                    else
-                        return String.Format("{0:C}", (this._subtotalSell - this._subtotalBuy - this._txnFeesSubtotal));
+                decimal netImpact = (this._subtotalSell - this._subtotalBuy - this._txnFeesSubtotal);
+                return DataFormatHelper.NumberWithStyledArrow(netImpact);
             }
         }
     }