private void ProcessPortfolioMessage(string portfolioName, Message message) { var adapter = portfolioName.IsEmpty() ? null : AdapterProvider.GetAdapter(portfolioName); if (adapter == null) { var adapters = _messageTypeAdapters.TryGetValue(message.Type)?.Cache; if (adapters == null || adapters.Length != 1) { throw new InvalidOperationException(LocalizedStrings.Str623Params.Put(portfolioName)); } adapter = adapters.First(); } else { var a = _hearbeatAdapters.TryGetValue(adapter); if (a == null) { throw new InvalidOperationException(LocalizedStrings.Str1838Params.Put(adapter.GetType())); } adapter = a; } adapter.SendInMessage(message); }
/// <summary> /// The embedded adapter event <see cref="IMessageChannel.NewOutMessage"/> handler. /// </summary> /// <param name="innerAdapter">The embedded adapter.</param> /// <param name="message">Message.</param> protected virtual void OnInnerAdapterNewOutMessage(IMessageAdapter innerAdapter, Message message) { if (!message.IsBack) { if (message.Adapter == null) { message.Adapter = innerAdapter; } switch (message.Type) { case MessageTypes.Connect: ProcessConnectMessage(innerAdapter, (ConnectMessage)message); return; case MessageTypes.Disconnect: ProcessDisconnectMessage(innerAdapter, (DisconnectMessage)message); return; case MessageTypes.MarketData: ProcessMarketDataMessage(innerAdapter, (MarketDataMessage)message); return; case MessageTypes.Portfolio: var pfMsg = (PortfolioMessage)message; AdapterProvider.SetAdapter(pfMsg.PortfolioName, innerAdapter); break; case MessageTypes.PortfolioChange: var pfChangeMsg = (PortfolioChangeMessage)message; AdapterProvider.SetAdapter(pfChangeMsg.PortfolioName, innerAdapter); break; case MessageTypes.Position: var posMsg = (PositionMessage)message; AdapterProvider.SetAdapter(posMsg.PortfolioName, innerAdapter); break; case MessageTypes.PositionChange: var posChangeMsg = (PositionChangeMessage)message; AdapterProvider.SetAdapter(posChangeMsg.PortfolioName, innerAdapter); break; } } SendOutMessage(message); }
public AdapterTest() { _settings = new AdapterSettings(); _baseDirectory = Directory.GetCurrentDirectory(); _baseDirectory = _baseDirectory.Substring(0, _baseDirectory.LastIndexOf("\\Bin")); _settings["BaseDirectoryPath"] = _baseDirectory; Directory.SetCurrentDirectory(_baseDirectory); _settings.AppendSettings(new StaticDust.Configuration.AppSettingsReader("App.config")); _settings["ProjectName"] = "12345_000"; _settings["ApplicationName"] = "ABC"; _settings["GraphName"] = "Lines"; _adapterProvider = new AdapterProvider(_settings); }
public DataTest() { _settings = new AdapterSettings(); _baseDirectory = Directory.GetCurrentDirectory(); _baseDirectory = _baseDirectory.Substring(0, _baseDirectory.LastIndexOf("\\Bin")); _settings["BaseDirectoryPath"] = _baseDirectory; Directory.SetCurrentDirectory(_baseDirectory); _settings.AppendSettings(new StaticDust.Configuration.AppSettingsReader("App.config")); _settings["ProjectName"] = "12345_000"; _settings["ApplicationName"] = "ABC"; _settings["GraphName"] = "Lines"; _settings["Identifier"] = "90002-RV"; _settings["TestMode"] = "UseFiles"; //UseFiles/WriteFiles _settings["ClassName"] = "PIPINGNETWORKSYSTEM"; _settings["GraphBaseUri"] = "http://www.example.com/"; _adapterProvider = new AdapterProvider(_settings); ResetDatabase(); }
public AdapterService() { _adapterProvider = new AdapterProvider(ConfigurationManager.AppSettings); }
protected override void Init() { Settings = LocalRecordsSettings.ReadFromFile(PluginSettingsFilePath); try { AdapterProvider = AdapterProviderFactory.GetAdapterProvider(Settings); ChallengeAdapter = AdapterProvider.GetChallengeAdapter(); PlayerAdapter = AdapterProvider.GetPlayerAdapter(); PositionAdapter = AdapterProvider.GetPositionAdapter(); RecordAdapter = AdapterProvider.GetRecordAdapter(); RatingAdapter = AdapterProvider.GetRatingAdapter(); SessionAdapter = AdapterProvider.GetSessionAdapter(); RankingAdapter = AdapterProvider.GetRankingAdapter(); } catch (Exception ex) { Logger.Error("Error initializing AdapterProvider for local records.", ex); Logger.ErrorToUI(string.Format("An error occured. {0} not started!", Name)); return; } List <ChallengeListSingleInfo> challenges = GetChallengeList(); if (challenges == null) { return; } try { Logger.InfoToUI("Starting to delete data of missing tracks"); int amountOfDeletedTracks = ChallengeAdapter.DeleteTracksNotInProvidedList(challenges.ConvertAll(c => c.UId)); Logger.InfoToUI(string.Format("Data of {0} Track(s) has been deleted.", amountOfDeletedTracks)); } catch (Exception ex) { Logger.ErrorToUI("Couldn't delete data of missing tracks.", ex); } foreach (PlayerSettings playerSettings in Context.PlayerSettings.GetAllAsList()) { if (!playerSettings.NickName.IsNullOrTimmedEmpty()) { PlayerAdapter.CreateOrUpdate(new Player(playerSettings.Login, playerSettings.NickName)); } } ChallengeInfo currentChallengeInfo = GetCurrentChallengeInfoCached(); if (currentChallengeInfo == null) { Logger.ErrorToUI(string.Format("An error occured. {0} not started!", Name)); return; } EnsureChallengeExistsInStorage(currentChallengeInfo); DetermineLocalRecords(); InitializePlugins(); OnLocalRecordsDetermined(new List <RankEntry>(LocalRecords)); Context.RPCClient.Callbacks.BeginRace += Callbacks_BeginRace; Context.RPCClient.Callbacks.EndRace += Callbacks_EndRace; Context.RPCClient.Callbacks.PlayerConnect += Callbacks_PlayerConnect; Context.RPCClient.Callbacks.PlayerDisconnect += Callbacks_PlayerDisconnect; Context.RPCClient.Callbacks.PlayerFinish += Callbacks_PlayerFinish; Context.RPCClient.Callbacks.PlayerChat += Callbacks_PlayerChat; }
public Task <IFileSystemAdapter> GetAdapterAsync(string scheme) => AdapterProvider.GetAdapterAsync(scheme);
private void SetAdapter(AdapterProvider <T> item) { Addapter = item; }