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); }
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"); } }