예제 #1
0
        public static void CreateSUT(TestContext context)
        {
            var broker1Definition = new BrokerDefinition("Broker 1", 1.49m, new CommissionTreshold(0, 100, 5m));
            var broker2Definition = new BrokerDefinition("Broker 2", 1.52m,
                    new CommissionTreshold(0, 40, 3m),
                    new CommissionTreshold(50, 80, 2.5m),
                    new CommissionTreshold(90, 100, 2m));

            string baseUrl = "http://localhost:8733/Design_Time_Addresses/";

            var broker1 = new BrokerService(broker1Definition);
            string broker1Url = baseUrl + "broker1";

            broker1Host = new ServiceHost(broker1, new Uri(broker1Url));
            PrepareServiceHost(broker1Host);
            broker1Host.Open();

            var broker2 = new BrokerService(broker1Definition);
            string broker2Url = baseUrl + "broker2";

            broker2Host = new ServiceHost(broker2, new Uri(broker2Url));
            PrepareServiceHost(broker2Host);
            broker2Host.Open();

            server = new InvestobankServer(new TheBestQuotationAlgorithm(), new InvestobankTradingModelInMemory(), (string a) => new BrokerWcfClient(a));
            server.RegisterBroker(broker1Definition, broker1Url);
            server.RegisterBroker(broker2Definition, broker2Url);
        }
예제 #2
0
 public BrokerService(BrokerDefinition definition)
 {
     this.definition = definition;
 }
 public TresholdWithBroker(CommissionTreshold treshold, BrokerDefinition broker)
 {
     this.Treshold = treshold;
     this.Broker = broker;
 }
예제 #4
0
 public void RegisterBroker(BrokerDefinition brokerDefinition, string endpointUrl)
 {
     if(brokerDefinition == null)
     {
         throw new ArgumentNullException("Broker definition cannot be null");
     }
     this.brokerDefinitionsById[brokerDefinition.BrokerId] = brokerDefinition;
     this.brokerClientsById[brokerDefinition.BrokerId] = this.brokerClientFactory(endpointUrl);
 }