/// <summary> /// Template selector for market data provider and order execution provider credentials /// </summary> public override DataTemplate SelectTemplate(object item, DependencyObject container) { FrameworkElement element = container as FrameworkElement; if (item != null) { ProviderCredential credential = (ProviderCredential)item; if (credential.CredentialName.Equals("Username")) { return((DataTemplate)element.FindResource("UsernameDataTemplate")); } else if (credential.CredentialName.Equals("Password")) { return((DataTemplate)element.FindResource("PasswordDataTemplate")); } else if (credential.CredentialName.Equals("IP address")) { return((DataTemplate)element.FindResource("IpAddressDataTemplate")); } else if (credential.CredentialName.Equals("Port")) { return((DataTemplate)element.FindResource("PortDataTemplate")); } else { return((DataTemplate)element.FindResource("GenericDataTemplate")); } } return(base.SelectTemplate(item, container)); }
public void EditMarketDataProviderCredentials() { // Request Controller for infomation Task <IList <MarketDataProvider> > availableProviders = _providersController.GetAvailableMarketDataProviders(); Assert.IsTrue(availableProviders.Result.Count.Equals(4)); Provider interactiveBroker = availableProviders.Result.FirstOrDefault( provider => provider.ProviderName.Equals("InteractiveBrokers")); // Will hold orignal values List <ProviderCredential> orignalCredentials = new List <ProviderCredential>(); // Set dummy values foreach (ProviderCredential credential in interactiveBroker.ProviderCredentials) { // Save Orignal Values ProviderCredential providerCredential = new ProviderCredential(); providerCredential.CredentialName = credential.CredentialName; providerCredential.CredentialValue = credential.CredentialValue; orignalCredentials.Add(providerCredential); credential.CredentialValue = "TestValue"; } // Update values _providersController.EditProviderCredentials(interactiveBroker); Provider tempInteractiveBroker = availableProviders.Result.FirstOrDefault( provider => provider.ProviderName.Equals("InteractiveBrokers")); Assert.IsTrue(tempInteractiveBroker.ProviderCredentials[0].CredentialValue.Equals("TestValue")); // Set Orignal Values tempInteractiveBroker.ProviderCredentials = orignalCredentials; // Update values _providersController.EditProviderCredentials(tempInteractiveBroker); }
public void EditOrderExecutionProviderCredentials() { // Request Controller for infomation Task <List <OrderExecutionProvider> > availableProviders = _providersController.GetAvailableOrderExecutionProviders(); Assert.IsTrue(availableProviders.Result.Count.Equals(3)); Provider blackwood = availableProviders.Result.FirstOrDefault( provider => provider.ProviderName.Equals("Blackwood")); // Will hold orignal values List <ProviderCredential> orignalCredentials = new List <ProviderCredential>(); // Set dummy values foreach (ProviderCredential credential in blackwood.ProviderCredentials) { // Save Orignal Values ProviderCredential providerCredential = new ProviderCredential(); providerCredential.CredentialName = credential.CredentialName; providerCredential.CredentialValue = credential.CredentialValue; orignalCredentials.Add(providerCredential); credential.CredentialValue = "TestValue"; } // Update values _providersController.EditProviderCredentials(blackwood); Provider tempBlackwood = availableProviders.Result.FirstOrDefault( provider => provider.ProviderName.Equals("Blackwood")); Assert.IsTrue(tempBlackwood.ProviderCredentials[0].CredentialValue.Equals("TestValue")); // Set Orignal Values tempBlackwood.ProviderCredentials = orignalCredentials; // Update values _providersController.EditProviderCredentials(tempBlackwood); }
/// <summary> /// Returns a list of available market data providers /// </summary> /// <returns></returns> public IDictionary <string, List <ProviderCredential> > GetAvailableProviders() { // File Saftey Check if (!File.Exists(_orderExecutionProvidersConfigFolderPath + _orderExecutionProvidersFileName)) { return(null); } // Will hold credential information against each availale provider IDictionary <string, List <ProviderCredential> > availableProviders = new Dictionary <string, List <ProviderCredential> >(); // XML Document to read file var availableProvidersDocument = new XmlDocument(); // Read file to get available provider's names. availableProvidersDocument.Load(_orderExecutionProvidersConfigFolderPath + _orderExecutionProvidersFileName); // Read the all Node value XmlNodeList providersInfo = availableProvidersDocument.SelectNodes(xpath: "Providers/*"); if (providersInfo != null) { // Extract individual attribute value foreach (XmlNode node in providersInfo) { // Create file name from which to read Provider Credentials string credentialsFileName = node.Name + @"OrderParams.xml"; // XML Document to read provider specific xml file var availableCredentialsDoc = new XmlDocument(); // Holds extracted credentials from the xml file var providerCredentialList = new List <ProviderCredential>(); if (File.Exists(_orderExecutionProvidersConfigFolderPath + credentialsFileName)) { // Read configuration file availableCredentialsDoc.Load(_orderExecutionProvidersConfigFolderPath + credentialsFileName); // Read all the parametes defined in the configuration file XmlNodeList configNodes = availableCredentialsDoc.SelectNodes(xpath: node.Name + "/*"); if (configNodes != null) { // Extract individual attribute value foreach (XmlNode innerNode in configNodes) { ProviderCredential providerCredential = new ProviderCredential(); providerCredential.CredentialName = innerNode.Name; providerCredential.CredentialValue = innerNode.InnerText; // Add to Credentials list providerCredentialList.Add(providerCredential); } } } // Add all details to providers info map availableProviders.Add(node.Name, providerCredentialList); } } return(availableProviders); }