Esempio n. 1
0
        protected async void Run(CancellationToken cancellationToken, Uri uri)
        {
            WebSocket = new ClientWebSocket();
            OnConnecting();
            WebSocket = await Connection.OpenConnection(WebSocket, uri);

            if (WebSocket.State == WebSocketState.Open)
            {
                OnConnected();
            }
            while (WebSocket.State == WebSocketState.Open)
            {
                if (cancellationToken.IsCancellationRequested)
                {
                    await Cancel(WebSocket);

                    break;
                }
                ICommand message = null;
                lock (queueLock)
                {
                    message = OutgoingMessages.Any() ? OutgoingMessages.Dequeue() : null;
                }
                if (message != null)
                {
                    await SendMessage(WebSocket, message);
                }
            }
            System.Diagnostics.Trace.WriteLine($"Connection closed. Reason: {WebSocket.CloseStatus}, Details: {WebSocket.CloseStatusDescription}");
            OnDisconnect();
        }
Esempio n. 2
0
        void IDataStore.Save(OutgoingSmsMessage msg)
        {
            if (!OutgoingMessages.Any(m => m.Id == msg.Id))
            {
                OutgoingMessages.Add(msg);
            }

            SaveChanges();
        }
        /// <summary>
        /// This should be call before doing final storage, will reduce the size of
        /// unused fields
        /// </summary>
        public void SetEmptyValueToNull()
        {
            foreach (var err in ErrorMessages)
            {
                err.SetEmptyValueToNull();
            }


            if (String.IsNullOrEmpty(MediaItemId))
            {
                MediaItemId = null;
            }

            if (String.IsNullOrEmpty(MessageId))
            {
                MessageId = null;
            }
            if (!Log.Any())
            {
                Log = null;
            }
            if (!OutputCommands.Any())
            {
                OutputCommands = null;
            }
            if (!OutgoingMessages.Any())
            {
                OutgoingMessages = null;
            }
            if (!ErrorMessages.Any())
            {
                ErrorMessages = null;
            }
            if (!InfoMessages.Any())
            {
                InfoMessages = null;
            }
            if (!WarningMessages.Any())
            {
                WarningMessages = null;
            }
            if (Envelope.SetEmptyValueToNull())
            {
                Envelope = null;
            }
        }