Exemple #1
0
        public void Send(IModelSend senderModel)
        {
            if (senderModel == null)
            {
                return;
            }

            Method = senderModel.Method;

            var client = new HttpClient
            {
                BaseAddress = new Uri(_connection.ServerAddress + senderModel.ApiPath)
            };

            //TODO go to repo and get Token

            if (_tokenRepo.HeaderModel != null)
            {
                client.DefaultRequestHeaders.Add(_tokenRepo.HeaderModel.AccessTokenTitle, _tokenRepo.HeaderModel.AccessToken);
                client.DefaultRequestHeaders.Add(_tokenRepo.HeaderModel.AcceptLangTitle, _tokenRepo.HeaderModel.AcceptLang);
                client.DefaultRequestHeaders.Add(_tokenRepo.HeaderModel.ClientTitle, _tokenRepo.HeaderModel.Client);
                client.DefaultRequestHeaders.Add(_tokenRepo.HeaderModel.UidTitle, _tokenRepo.HeaderModel.Uid);
            }

            _tokenSource = new CancellationTokenSource(_sendDelay);
            _tokenSource.Token.Register(() =>
            {
                OnException?.Invoke(EResponseState.NoConnection);
            });

#if DEBUG
            var api     = senderModel.ApiPath;
            var headers = client.DefaultRequestHeaders.ToString();
            var body    = senderModel.PerformQuery()?.ToString();
            Debug.WriteLine(" * AREST_SEND \nAPI = " + api + "\nHeaders =" + headers + "\nBody = " + body);
#endif
            _connection.Send(client, senderModel.PerformQuery()?.ToString() ?? string.Empty, _tokenSource, senderModel.Method);
        }
Exemple #2
0
        public void Send(IModelSend model)
        {
            if (model == null)
            {
                return;
            }

            if (_websocket.IsOpen)
            {
#if DEBUG
                Debug.WriteLine(" * ASocket_SEND = " + model.PerformQuery()?.ToString());
#endif
                _websocket.Send(model.PerformQuery()?.ToString() ?? string.Empty);
            }
            else
            {
                _websocket.Open(ServerAddress);
                lock (this)
                {
                    _messageQueue.Add(model);
                }
            }
        }