using System; namespace Vinno.IUS.Common.Network.Transfer { public class ResultMessage: DictionaryMessage, IEquatable { /// /// Gets the result code for the result. /// public int ResultCode { get; } public ResultMessage(int code) : base(SystemTags.Result) { ResultCode = code; AddMessage(SystemTags.ResultCode,new IntegerElement(ResultCode)); } protected ResultMessage(Message message) : base(message) { ResultCode = GetElement(SystemTags.ResultCode).Value; } public static ResultMessage Convert(Message message) { try { if (message.Tag.Id != SystemTags.Result.Id) { return null; } return new ResultMessage(message); } catch (Exception) { //DoNothing. } return null; } public bool Equals(ResultMessage other) { if (ReferenceEquals(null, other)) return false; return ResultCode == other.ResultCode; } public override bool Equals(object obj) { if (ReferenceEquals(null, obj)) return false; if (ReferenceEquals(this, obj)) return true; if (!(obj is ResultMessage)) return false; return Equals((ResultMessage) obj); } public override int GetHashCode() { return ResultCode; } public static bool operator ==(ResultMessage left, ResultMessage right) { return Equals(left, right); } public static bool operator !=(ResultMessage left, ResultMessage right) { return !Equals(left, right); } } }