public override IHttpMessage Serialize()
        {
            IHttpMessage ret = null;

            if (Payload is OverlayRequest)
            {
                var tmp = new HttpRequest()
                {
                    Host = Destiny.ToString()
                };

                ret = (HttpRequest)tmp;
            }
            else if (Payload is OverlayReply)
            {
                var tmp = new HttpReply();

                ret = (HttpReply)tmp;
            }

            // head
            ret.Url = Payload.GetType().FullName;

            ret.AddField(new HttpField(HttpConst.MessageSource, Source));
            ret.AddField(new HttpField(HttpConst.MessageDestiny, Destiny));
            ret.AddField(new HttpField(HttpConst.MessagePath, Path));
            ret.AddField(new HttpField(HttpConst.MessageHops, Hops));

            // body
            ret.CreateBody();
            ret.Body.CreateStream();

            if (Payload != null)
            {
                var formatter = new BinaryFormatter();
                formatter.Serialize(ret.Body.ContentStream, Payload);
                ret.Body.ContentType = HttpConst.ContentTypeDodoNetObject;
            }
            else
            {
                ret.Body.ContentType = "";
            }

            return(ret);
        }
Beispiel #2
0
        public override string ToString()
        {
            switch (Type)
            {
            case MoveType.StandardMove:
                if (Origin != null && Origin.PieceInCell != null && Destiny != null)
                {
                    return(Origin.PieceInCell.ToString() + " " + Origin.ToString() + Destiny.ToString());
                }
                else
                {
                    return("Invalid Move");
                }

            case MoveType.QueenSideCasteling:
                return(ChessPGN.PGN_NOTATION_MOVE_QUEENGSIDE_CASTLING);

            case MoveType.KingSideCasteling:
                return(ChessPGN.PGN_NOTATION_MOVE_KINKGSIDE_CASTLING);

            default:
                return("Invalid Move");
            }
        }