Example #1
0
        internal MessagesBagStatus AddMessage(string rawMessageType, byte[] messageValue)
        {
            if (_startMessagesSignature.Contains(rawMessageType))
            {
                if (this.Status != MessagesBagStatus.None)
                {
                    throw new MessageMisalignedException($"Received an StartMessege while current status is {this.Status}");
                }

                this.MessageType = GetMessageType(rawMessageType);
                this.MessageSheets.Clear();

                return(this.Status = MessagesBagStatus.Open);
            }

            if (rawMessageType == _endMessageSignature)
            {
                if (this.Status != MessagesBagStatus.Collecting)
                {
                    throw new MessageMisalignedException($"Received an EndMessege while current status is {this.Status}");
                }
                return(this.Status = MessagesBagStatus.Closed);
            }

            if (this.Status == MessagesBagStatus.Closed)
            {
                throw new MessageMisalignedException($"Received {rawMessageType} while current status is {MessagesBagStatus.Closed}");
            }

            this.MessageSheets.Add(new Message(GetRecipient(rawMessageType), messageValue));
            return(this.Status = MessagesBagStatus.Collecting);
        }
Example #2
0
        public MessagesBagStatus AddMessage(string rawMessageType, byte[] messageValue)
        {
            if (_startMessagesSignature.Contains(rawMessageType))
            {
                if (this.Status != MessagesBagStatus.None) throw new MessageMisalignedException($"Received an StartMessege while current status is {this.Status}");

                this.MessageType = GetMessageType(rawMessageType);
                this.MessageSheets.Clear();

                return (this.Status = MessagesBagStatus.Open);
            }

            if (rawMessageType == _endMessageSignature)
            {
                if (this.Status != MessagesBagStatus.Collecting) throw new MessageMisalignedException($"Received an EndMessege while current status is {this.Status}");
                return (this.Status = MessagesBagStatus.Closed);
            }

            if (this.Status == MessagesBagStatus.Closed)
            {
                throw new MessageMisalignedException($"Received {rawMessageType} while current status is {MessagesBagStatus.Closed}");
            }

            this.MessageSheets.Add(new Message(GetRecipient(rawMessageType), messageValue));
            return (this.Status = MessagesBagStatus.Collecting);
        }
Example #3
0
        internal MessagesBag(Encoding encoding, IList <string> startMessagesSignature, string endMessageSignature)
        {
            this.MessageSheets = new List <Message>();
            this.Status        = MessagesBagStatus.None;
            this.Encoding      = encoding;

            _endMessageSignature    = endMessageSignature;
            _startMessagesSignature = startMessagesSignature;
        }
Example #4
0
        public MessagesBag(Encoding encoding, IList<string> startMessagesSignature, string endMessageSignature)
        {            
            this.MessageSheets = new List<Message>();
            this.Status = MessagesBagStatus.None;
            this.Encoding = encoding;

            _endMessageSignature = endMessageSignature;
            _startMessagesSignature = startMessagesSignature;
        }
        public MessagesBag(Encoding encoding, IList <string> startMessagesSignature, string endMessageSignature, ICollection <string> processableMessages)
        {
            this.Messages = new List <Message>();
            this.Status   = MessagesBagStatus.Empty;
            this.Encoding = encoding;

            _endMessageSignature    = endMessageSignature;
            _startMessagesSignature = startMessagesSignature;
            _processableMessages    = processableMessages;
        }
Example #6
0
        internal MessagesBagStatus AddMessage(string rawMessageType, byte[] messageValue)
        {
            if (rawMessageType == this._startMessageSignature)
            {
                this.MessageType = (ChangeType)Enum.Parse(typeof(ChangeType), Encoding.Unicode.GetString(messageValue));
                this.MessageSheets.Clear();
                return (this.Status = MessagesBagStatus.Open);
            }

            if (rawMessageType == this._endMessageSignature)
            {
                if ((ChangeType)Enum.Parse(typeof(ChangeType), Encoding.Unicode.GetString(messageValue)) != this.MessageType) throw new DataMisalignedException();
                return (this.Status = MessagesBagStatus.Closed);
            }

            if (this.Status == MessagesBagStatus.Closed) throw new MessageMisalignedException("Envelop already closed!");
            if (this.MessageType != GetMessageType(rawMessageType)) throw new MessageMisalignedException();

            this.MessageSheets.Add(new Message(GetRecipient(rawMessageType), messageValue));

            return MessagesBagStatus.Collecting;
        }
Example #7
0
        public MessagesBagStatus AddMessage(Message message)
        {
            if (_startMessagesSignature.Contains(message.Recipient))
            {
                if (this.Status != MessagesBagStatus.None)
                {
                    throw new MessageMisalignedException($"Received an StartMessege while current status is {this.Status}.");
                }

                this.MessageType = MessagesBag.GetMessageType(message.Recipient);
                this.Messages.Clear();

                return(this.Status = MessagesBagStatus.Open);
            }

            if (message.Recipient == _endMessageSignature)
            {
                if (this.Status != MessagesBagStatus.Collecting)
                {
                    throw new MessageMisalignedException($"Received an EndMessege while current status is {this.Status}.");
                }
                return(this.Status = MessagesBagStatus.Closed);
            }

            if (this.Status == MessagesBagStatus.Closed)
            {
                throw new MessageMisalignedException($"Received {message.Recipient} message while current status is {MessagesBagStatus.Closed}.");
            }

            if (_processableMessages.Contains(message.Recipient) == false)
            {
                throw new MessageMisalignedException($"Queue containing a message type not expected [{message.Recipient}].");
            }

            this.Messages.Add(new Message(MessagesBag.GetRecipient(message.Recipient), message.Body));

            return(this.Status = MessagesBagStatus.Collecting);
        }
        public MessagesBagStatus AddMessage(Message message)
        {
            if (_startMessagesSignature.Contains(message.MessageType))
            {
                if (this.Status != MessagesBagStatus.Empty)
                {
                    throw new MessageMisalignedException($"Received an StartMessege while current status is {this.Status}.");
                }
                this.MessageType = MessagesBag.GetMessageType(message.MessageType);
                this.Messages.Clear();
                return(this.Status = MessagesBagStatus.Collecting);
            }

            if (message.MessageType == _endMessageSignature)
            {
                if (this.Status != MessagesBagStatus.Collecting)
                {
                    throw new MessageMisalignedException($"Received an EndMessege while current status is {this.Status}.");
                }
                return(this.Status = MessagesBagStatus.Ready);
            }

            if (this.Status == MessagesBagStatus.Ready)
            {
                throw new MessageMisalignedException($"Received {message.MessageType} message while current status is {MessagesBagStatus.Ready}.");
            }

            if (_processableMessages.Contains(message.MessageType) == false)
            {
                throw new MessageMisalignedException($"Queue containing a message type not expected [{message.MessageType}].");
            }

            this.Messages.Add(message);

            return(this.Status = MessagesBagStatus.Collecting);
        }
 public void Reset()
 {
     this.Status = MessagesBagStatus.Empty;
 }
Example #10
0
 public void Reset()
 {
     this.Status = MessagesBagStatus.None;
 }