KodiakService.svc

public interface IKodiakService
{
    ClientSettings GetClientSettings();
    
    CommissionCategory GetCommissionCategory(string referenceId);
            
    SystemSettings GetSystemSettings();
    
    UserInfo GetUser(int Id);
    
    LoginResponseMessage Login(string username, string password);
 
    UserInfo LogOn();
    
    List<CommissionCategory> SearchCommissionCategories(string search);
    
    List<UserInfo> SearchUsers(string search);
}
[DataContract]
public class LoginResponseMessage
{
    [DataMember]
    public List<Allocation> Allocations { getset; }
    [DataMember]
    public List<Broker> Brokers { getset; }
    [DataMember]
    public List<DestinationGroup> DestinationGroups { getset; }
    [DataMember]
    public int GroupId { getset; }
    [DataMember]
    public string GroupName { getset; }
    [DataMember]
    public List<Group> Groups { getset; }
    [DataMember]
    public bool IsConnectedToTestMarket { getset; }
    [DataMember]
    public List<OrderInstruction> OrderInstructions { getset; }
    [DataMember]
    public List<Order> Orders { getset; }
    [DataMember]
    public string SubscriptionDestinationName { getset; }
    [DataMember]
    public List<TickSizeTable> TickSizeTables { getset; }
    [DataMember]
    public List<TradeReports.TradeReport> TradeReports { getset; }
    [DataMember]
    public List<Trade> Trades { getset; }
    [DataMember]
    public int UserId { getset; }
    [DataMember]
    public string Username { getset; }
    [DataMember]
    public List<FriendGroup> VisibleGroups { getset; }
}
[DataContract]
public class UserInfo
{
    [DataMember]
    public string Email { getset; }
    [DataMember]
    public string FullName { getset; }
    [DataMember]
    public bool HasDirectMarketAccess { getset; }
    [DataMember]
    public bool IsMarketMaker { getset; }
    [DataMember]
    public string MarketMakerSSN { getset; }
    [DataMember]
    public string MobilePhoneNumber { getset; }
    [DataMember]
    public string PhoneNumber { getset; }
    [DataMember]
    public int UserGroupId { getset; }
    [DataMember]
    public string UserGroupName { getset; }
    [DataMember]
    public int UserId { getset; }
    [DataMember]
    public string Username { getset; }
}
[DataContract]
public class ClientSettings
{ 
    [DataMember]
    public AllocationPolicy AllocationPolicy { getset; }
    [DataMember]
    public bool EnableForwardContracts { getset; }
    [DataMember]
    public bool EnableInternalFunds { getset; }
    [DataMember]
    public bool EnableMifid { getset; }
    [DataMember]
    public string InvoiceUrl { getset; }
    [DataMember]
    public string MifidBaseUrl { getset; }
}
[DataContract]
public class SystemSettings
{ 
    [DataMember]
    public bool IsTest { getset; }
    [DataMember]
    public string MarketDataQueueLocation { getset; }
    [DataMember]
    public string QueueLocation { getset; }
    [DataMember]
    public string RestartTime { getset; }
}
[DataContract]
public class CommissionCategory
{ 
    [DataMember]
    public string Description { getset; }
    [DataMember]
    public decimal DiscountPercent { getset; }
    public string DisplayName { get; }
    [DataMember]
    public string ReferenceId { getset; }
}
    [DataContract]
public class AllocationPolicy
{
    public AllocationPolicy();
 
    [DataMember]
    public CommissionSettings CommissionSettingsClientOrders { getset; }
    [DataMember]
    public CommissionSettings CommissionSettingsFunds { getset; }
    [DataMember]
    public bool? EnableBrokerFee { getset; }
    [DataMember]
    public bool EnableBypassBackoffice { getset; }
    [DataMember]
    public bool EnableCancelAllocations { getset; }
    [DataMember]
    public bool EnableExternalAccount { getset; }
    [DataMember]
    public bool EnableGetAccountBalance { getset; }
    [DataMember]
    public bool EnableGetPortfolioPosition { getset; }
    [DataMember]
    public bool EnableManualSettlement { getset; }
    [DataMember]
    public bool EnablePaidInCash { getset; }
    [DataMember]
    public bool EnableShowAllAccounts { getset; }
    [DataMember]
    public bool FilterAccountCurrency { getset; }
    [DataMember]
    public bool FilterPortfolioCurrency { getset; }
    [DataMember]
    public bool RequireCommunicationInformation { getset; }
    [DataMember]
    public bool RequireMifidAggreementOnAllOrders { getset; }
    [DataMember]
    public bool RequireMifidTestOnAllOrders { getset; }
}
[DataContract]
    public class CommissionSettings
    {
        public CommissionSettings();
 
        [DataMember]
        public bool CalculateCostServerSide { getset; }
        [DataMember]
        public bool EnableCommission { getset; }
        [DataMember]
        public bool EnableDiscountPercent { getset; }
        [DataMember]
        public bool EnableManualCommission { getset; }
        [DataMember]
        public bool EnableProcessingFee { getset; }
        [DataMember]
        public bool ShowCommission { getset; }
        [DataMember]
        public bool ShowCommissionCategories { getset; }
        [DataMember]
        public bool ShowDiscountPercent { getset; }
        [DataMember]
        public bool ShowProcessingFee { getset; }
        [DataMember]
        public bool? UseDiscountedPrice { getset; }
    }