Exemplo n.º 1
0
        public byte[] EncodeMessage(int messageID, byte[] dataBytes)
        {
            bufferStream.Clear();

            ++serialNumber;

            int messageTotalLen    = MessageConst.MESSAGE_MIN_LENGTH + (dataBytes != null ? dataBytes.Length : 0);
            int netMessageTotalLen = IPAddress.HostToNetworkOrder(messageTotalLen);

            byte[] netSizeBytes = BitConverter.GetBytes(netMessageTotalLen);
            bufferStream.Write(netSizeBytes, 0, netSizeBytes.Length);

            bufferStream.WriteByte(serialNumber);

            int netMessageID = IPAddress.HostToNetworkOrder(messageID);

            byte[] netMessageIDBytes = BitConverter.GetBytes(netMessageID);

            bufferStream.Write(netMessageIDBytes, 0, netMessageIDBytes.Length);

            if (dataBytes != null)
            {
                bufferStream.Write(dataBytes, 0, dataBytes.Length);
            }

            return(bufferStream.ToArray());
        }
Exemplo n.º 2
0
        public void MoveStream(int startIndex)
        {
            MemoryStreamEx activedStream = GetActivedStream();

            if (startIndex > 0)
            {
                if (startIndex < activedStream.Length)
                {
                    activedStreamIndex = (activedStreamIndex + 1) % streamArr.Length;

                    MemoryStreamEx newActivedStream = GetActivedStream();
                    newActivedStream.Clear();
                    activedStream.Write(activedStream.GetBuffer(), startIndex, ((int)activedStream.Length - startIndex));
                    activedStream.Clear();
                }
                else
                {
                    activedStream.Clear();
                }
            }
        }
Exemplo n.º 3
0
        public bool Execute(WorkFlowCommand command, Context context)
        {
            if (!CheckCondition(command, context))
            {
                return(true);
            }

            switch (command.Properties["Action"].Value)
            {
            case "ShowView":
                WorkflowManager.Instance.OnMessage(new MessageEventArgs(Messages.ShowView,
                                                                        command.Properties["ViewName"].ToString(context)));
                break;

            case "FinishSession":
                WorkflowManager.Instance.OnMessage(new MessageEventArgs(Messages.SessionFinished, context));
                break;

            case "SaveVariables":
                WorkflowManager.Instance.OnMessage(new MessageEventArgs(Messages.SaveVariables, context));
                break;

            case "CancelSession":
                WorkflowManager.Instance.OnMessage(new MessageEventArgs(Messages.SessionCanceled, context));
                break;

            case "PreviousView":
                WorkflowManager.Instance.OnMessage(new MessageEventArgs(Messages.PreviousView, context));
                break;

            case "UpdateThumb":
                WorkflowManager.Instance.OnMessage(new MessageEventArgs(Messages.ThumbCreate, context));
                break;

            case "NextPhoto":
                WorkflowManager.Instance.OnMessage(new MessageEventArgs(Messages.NextPhoto, context));
                break;

            case "PrevPhoto":
                WorkflowManager.Instance.OnMessage(new MessageEventArgs(Messages.PrevPhoto, context));
                break;

            case "DeletePhoto":
                WorkflowManager.Instance.OnMessage(new MessageEventArgs(Messages.DeletePhoto, context));
                break;

            case "ClearPhotos":
                WorkflowManager.Instance.OnMessage(new MessageEventArgs(Messages.ClearPhotos, context));
                break;

            case "ShowHelp":
                WorkflowManager.Instance.OnMessage(new MessageEventArgs(Messages.ShowHelp, context));
                break;

            case "LoadImage":
            {
                try
                {
                    var stream = new MemoryStreamEx();
                    var buffer = File.ReadAllBytes(context.FileItem.TempFile);
                    stream.Write(buffer, 0, buffer.Length);
                    stream.Seek(0, SeekOrigin.Begin);
                    context.ImageStream = stream;
                    Log.Debug("LoadImage executed");
                }
                catch (Exception e)
                {
                    Log.Debug("Error unload image", e);
                }
            }
            break;

            case "UnLoadImage":
            {
                try
                {
                    context.ImageStream?.Close();
                    Log.Debug("UnLoadImage executed");
                }
                catch (Exception e)
                {
                    Log.Debug("Error unload image", e);
                }
            }

            break;
            }
            return(true);
        }
Exemplo n.º 4
0
        public void OnDataReceived(byte[] bytes, int size)
        {
            MemoryStreamEx stream = bufferStream.GetActivedStream();

            stream.Write(bytes, 0, size);
        }