Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Overview

RetailOrderInstructionService is a rest service used to create and manager orders for clients.

It contains the following operations:

    "/login/{ssn}"
    Stream Login(string ssn);

    "/customerinfo/{ssn}"
    Stream CustomerInfo(string ssn);

    "/create/{ssn}"
    Stream Create(string ssn, CreateOrderInstructionRetailDmaRequest json);

    "/update/{ssn}"
    Stream Update(string ssn, UpdateOrderInstructionsRetailDmaRequest json);

    "/cancel/{ssn}"
    Stream Cancel(string ssn, CancelOrderInstructionRetailDmaRequest json);

    "/calculateorder/{ssn}"
    Stream CalculateOrder(string ssn, CalculateOrderRetailDmaRequest request);

    "/portfoliooverview/{ssn}"
    Stream GetPortfolioOverview(string ssn, Kodi.Kodiak.OrderEntry.Retail.Contracts.PortfolioOverviewRequest request);

    "/portfolioposition/{ssn}"
    Stream GetPortfolioPosition(string ssn, Kodi.Kodiak.OrderEntry.Retail.Contracts.PortfolioPositionRequest request);

    "/portfoliotransactions/{ssn}"
    Stream GetPortfolioTransactions(string ssn, Kodi.Kodiak.OrderEntry.Retail.Contracts.PortfolioTransactionsRequest request);

    "/accountbalance/{ssn}"
    Stream GetAccountBalance(string ssn, Kodi.Kodiak.OrderEntry.Retail.Contracts.AccountBalanceRequest request);

    "/searchorders/{ssn}"
    Stream SearchOrders(string ssn, Kodi.Kodiak.OrderEntry.Retail.Contracts.OrderSearchRequest request);

    "/searchtrades/{ssn}"
    Stream SearchTrades(string ssn, Kodi.Kodiak.OrderEntry.Retail.Contracts.TradeSearchRequest request);

Prerequisites

What do we need from 5D?

  • 5D Endpoints - Paths to PerformanceService and ExternalQueryService

  • Authorization/user configuration - The identity of windows user needed to call those services. This user is specified in appSettings.config as RetailsCustomerUserId

Setup

The Kodi.Kodiak.OrderEntry.Retail.dll file needs to be present in C:/KodiakOrderEntryServer

A correct version of Kodi.Kodiak.Adapters.Libra.dll (above 3.1.1.52) needs to be present in C:/KodiakOrderEntryServer

Configuration

The following configuration files need to be set

1: config/environment/appSettings.config

An important setting here is RetailCustomerUserId which maps to the user which will be used when creating orders and calling libra services.

  <!-- Retail Customers -->
	<add key="RetailCustomersUserId" value="68" />
	<add key="RetailCustomersAllocateWhenFilled" value="true" />
	<add key="RetailCustomersDirectToMarket" value="true" />
	<add key="RetailCustomersBypassBackoffice" value="true" />

2: Kodi.Kodiak.WindowsServices.OrderEntryServer.exe.config

This line needs to be present under the context node of spring.

<resource uri="~/Config/Spring/Kodi.Kodiak.OrderEntry.Retail.config" /> 

3: Config/Spring/Kodi.Kodiak.OrderEntry.Retail.config

This file contains configuartion for RetailKodiakService, RetailOrderInstructionService and RetailSearchService

4: config/serviceconfig/system.servicemodel.services.config

This setting needs to be added here for the Wcf system to load the service.

<!-- For use with Retail DMA -->
<service behaviorConfiguration="ServiceBehaviorBasic" name="RetailOrderInstructionService">
	<endpoint address="" binding="webHttpBinding" contract="Kodi.Kodiak.Services.IRetailOrderInstructionService" behaviorConfiguration="rest" />
</service>    

5: config/serviceconfig/system.servicemodel.client.config

This file contains the web service client configuration used to call Libra services.

  <endpoint address="http://urltolibraserver/Libra.Services/Assetmanager/PerformanceService.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IPerformanceService" 
  contract="LibraServices.IPerformanceService" name="WSHttpBinding_IPerformanceService">
    <!-- <identity> -->
      <!-- <userPrincipalName value="srv.iisapppool_test@fjaf.internal" /> -->
    <!-- </identity> -->
  </endpoint>
  <endpoint address="http://urltolibraserver/Libra.Services/Portfolio/ExternalQueryService.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IExternalQueryService" 
  contract="LibraServicesExternal.IExternalQueryService" name="WSHttpBinding_IExternalQueryService">
    <!-- <identity> -->
      <!-- <userPrincipalName value="srv.iisapppool_test@fjaf.internal" /> -->
    <!-- </identity> -->
  </endpoint>

6: config/serviceconfig/CustomServices.config

This file contains the depency injection cofiguration for the service.

  <object id="RetailOrderInstructionService" type="Kodi.Kodiak.Services.RetailOrderInstructionService, Kodi.Kodiak.OrderEntry.Retail" singleton="false" scope="request">
    <property name="LibraExtSystemId" value="Libra"/>
    <property name="DefaultUserIdForRetailCustomers" value="${RetailCustomersUserId}"/>
    <property name="UserRepository" ref="UserRepository"/>
    <property name="CustomerRepository" ref="CustomerRepository"/>
    <property name="RetailKodiakService" ref="RetailKodiakService"/>    
    <property name="RetailOrderInstructionEntryService" ref="RetailOrderInstructionEntryService"/>
    <property name="RetailSearchService" ref="RetailSearchService"/>
    <property name="PortfolioService" ref="PortfolioServiceImplementation"/>
    <property name="AccountService" ref="AccountServiceImplementation"/>
  </object>  

  • No labels