Beispiel #1
0
 public OpenFileDialog(DocumentProviderImpl impl, IWdApi api, IWsMessage wsMessage, IWdDocumentRepository _mWDDocRepo, WdConfigurator configurator)
 {
     _wsMessage = wsMessage;
     _api = api;
     this._mWDDocRepo = _mWDDocRepo;
     _configurator = configurator;
     _dpImpl = impl;
 }
Beispiel #2
0
 public DocumentProvider(ModuleBase module)
 {
     this.module = module;
     
     _docProviderImpl = module.Resolve<DocumentProviderImpl>();
     
     _wsMessage = module.Resolve<IWsMessage>();
 }
Beispiel #3
0
        public async Task Send(IWsMessage message, CancellationToken cancellationToken = default)
        {
            await EnsureSocketConnection();

            var json   = JSerializer.Serialize(message);
            var data   = Encoding.UTF8.GetBytes(json);
            var buffer = new ArraySegment <byte>(data);
            await _socket.SendAsync(buffer, WebSocketMessageType.Text, true, cancellationToken);
        }
        public async Task Send(IWsMessage message, CancellationToken cancellationToken = default)
        {
            await EnsureSocketConnection();

            await Task.Run(() => _client.Send(JSerializer.Serialize(message)), cancellationToken);

            if (_configuration.ReconnectEnabled && _configuration.ResubscribeOnReconnect)
            {
                _subscriptions.Push(message);
            }
        }
 public DocumentProviderImpl(IModule module, IWdDocumentRepository wdDocRepo, DPCache dpCache, DPSessionManager sessionFactory, IDPConfigurator configurator, 
     IProcessLauncher processLauncher, IFileSystemWorker fileSystemWorker, IDpLocalStorage localStorage, IWsMessage message, WdLocator locator)
 {
     _module = module;
     _wdDocRepo = wdDocRepo;
     _dpCache = dpCache;
     _sessionManager = sessionFactory;
     _dialogConfigurator = configurator;
     _processLauncher = processLauncher;
     _fileSystemWorker = fileSystemWorker;
     _localStorage = localStorage;
     _message = message;
     _isWorldoxInstalled = !string.IsNullOrEmpty(locator.NetworkWorldoxDirectory());
 }
        public void Push(IWsMessage message)
        {
            try
            {
                _lock.EnterWriteLock();

                if (message.Event.EndsWith(":subscribe"))
                {
                    if (!_subscriptions.Contains(message))
                    {
                        _subscriptions.Add(message);
                    }
                }
                else if (message.Event.EndsWith(":unsubscribe"))
                {
                    switch (message.Event)
                    {
                    case EventType.UnsubscribeCandle:
                        if (message is UnsubscribeCandleMessage cm)
                        {
                            var founded = _subscriptions
                                          .OfType <SubscribeCandleMessage>()
                                          .SingleOrDefault(x => x.Figi == cm.Figi &&
                                                           x.Interval == cm.Interval);
                            if (founded != null)
                            {
                                _subscriptions.Remove(founded);
                            }
                        }

                        break;

                    case EventType.UnsubscribeInstrumentInfo:
                        if (message is UnsubscribeInstrumentInfoMessage iim)
                        {
                            var founded = _subscriptions
                                          .OfType <SubscribeInstrumentInfoMessage>()
                                          .SingleOrDefault(x => x.Figi == iim.Figi);

                            if (founded != null)
                            {
                                _subscriptions.Remove(founded);
                            }
                        }

                        break;

                    case EventType.UnsubscribeOrderBook:
                        if (message is UnsubscribeOrderBookMessage obm)
                        {
                            var founded = _subscriptions
                                          .OfType <SubscribeOrderBookMessage>()
                                          .SingleOrDefault(x =>
                                                           x.Figi == obm.Figi &&
                                                           x.Depth == obm.Depth);

                            if (founded != null)
                            {
                                _subscriptions.Remove(founded);
                            }
                        }

                        break;
                    }
                }
                else
                {
                    throw new ArgumentException(nameof(message.Event));
                }
            }
            finally
            {
                _lock.ExitWriteLock();
            }
        }
Beispiel #7
0
 public SaveFileDialog(IWdApi api, IWsMessage wsMessage, WdConfigurator configurator)
 {
     _mApi = api;
     _mWsMessage = wsMessage;
     _configurator = configurator;
 }