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 { get; set; } [DataMember] public List<Broker> Brokers { get; set; } [DataMember] public List<DestinationGroup> DestinationGroups { get; set; } [DataMember] public int GroupId { get; set; } [DataMember] public string GroupName { get; set; } [DataMember] public List<Group> Groups { get; set; } [DataMember] public bool IsConnectedToTestMarket { get; set; } [DataMember] public List<OrderInstruction> OrderInstructions { get; set; } [DataMember] public List<Order> Orders { get; set; } [DataMember] public string SubscriptionDestinationName { get; set; } [DataMember] public List<TickSizeTable> TickSizeTables { get; set; } [DataMember] public List<TradeReports.TradeReport> TradeReports { get; set; } [DataMember] public List<Trade> Trades { get; set; } [DataMember] public int UserId { get; set; } [DataMember] public string Username { get; set; } [DataMember] public List<FriendGroup> VisibleGroups { get; set; } }
[DataContract] public class UserInfo { [DataMember] public string Email { get; set; } [DataMember] public string FullName { get; set; } [DataMember] public bool HasDirectMarketAccess { get; set; } [DataMember] public bool IsMarketMaker { get; set; } [DataMember] public string MarketMakerSSN { get; set; } [DataMember] public string MobilePhoneNumber { get; set; } [DataMember] public string PhoneNumber { get; set; } [DataMember] public int UserGroupId { get; set; } [DataMember] public string UserGroupName { get; set; } [DataMember] public int UserId { get; set; } [DataMember] public string Username { get; set; } }
[DataContract] public class ClientSettings { [DataMember] public AllocationPolicy AllocationPolicy { get; set; } [DataMember] public bool EnableForwardContracts { get; set; } [DataMember] public bool EnableInternalFunds { get; set; } [DataMember] public bool EnableMifid { get; set; } [DataMember] public string InvoiceUrl { get; set; } [DataMember] public string MifidBaseUrl { get; set; } }
[DataContract] public class SystemSettings { [DataMember] public bool IsTest { get; set; } [DataMember] public string MarketDataQueueLocation { get; set; } [DataMember] public string QueueLocation { get; set; } [DataMember] public string RestartTime { get; set; } }
[DataContract] public class CommissionCategory { [DataMember] public string Description { get; set; } [DataMember] public decimal DiscountPercent { get; set; } public string DisplayName { get; } [DataMember] public string ReferenceId { get; set; } }
[DataContract] public class AllocationPolicy { public AllocationPolicy(); [DataMember] public CommissionSettings CommissionSettingsClientOrders { get; set; } [DataMember] public CommissionSettings CommissionSettingsFunds { get; set; } [DataMember] public bool? EnableBrokerFee { get; set; } [DataMember] public bool EnableBypassBackoffice { get; set; } [DataMember] public bool EnableCancelAllocations { get; set; } [DataMember] public bool EnableExternalAccount { get; set; } [DataMember] public bool EnableGetAccountBalance { get; set; } [DataMember] public bool EnableGetPortfolioPosition { get; set; } [DataMember] public bool EnableManualSettlement { get; set; } [DataMember] public bool EnablePaidInCash { get; set; } [DataMember] public bool EnableShowAllAccounts { get; set; } [DataMember] public bool FilterAccountCurrency { get; set; } [DataMember] public bool FilterPortfolioCurrency { get; set; } [DataMember] public bool RequireCommunicationInformation { get; set; } [DataMember] public bool RequireMifidAggreementOnAllOrders { get; set; } [DataMember] public bool RequireMifidTestOnAllOrders { get; set; } }
[DataContract] public class CommissionSettings { public CommissionSettings(); [DataMember] public bool CalculateCostServerSide { get; set; } [DataMember] public bool EnableCommission { get; set; } [DataMember] public bool EnableDiscountPercent { get; set; } [DataMember] public bool EnableManualCommission { get; set; } [DataMember] public bool EnableProcessingFee { get; set; } [DataMember] public bool ShowCommission { get; set; } [DataMember] public bool ShowCommissionCategories { get; set; } [DataMember] public bool ShowDiscountPercent { get; set; } [DataMember] public bool ShowProcessingFee { get; set; } [DataMember] public bool? UseDiscountedPrice { get; set; } }