Beispiel #1
0
        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);
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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();
        }
Beispiel #5
0
 public AdapterService()
 {
     _adapterProvider = new AdapterProvider(ConfigurationManager.AppSettings);
 }
Beispiel #6
0
        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);
Beispiel #8
0
 private void SetAdapter(AdapterProvider <T> item)
 {
     Addapter = item;
 }