public override void Read(IDecoder dec) { packing_flags = (int)dec.ReadUint16(); if ((packing_flags & 256) != 0) { _ErrorCode = ExecutionErrorCodeGetter.Get(dec.ReadUint16()); } if ((packing_flags & 512) != 0) { _CommandId = dec.ReadSequenceNo(); } if ((packing_flags & 1024) != 0) { _ClassCode = dec.ReadUint8(); } if ((packing_flags & 2048) != 0) { _CommandCode = dec.ReadUint8(); } if ((packing_flags & 4096) != 0) { _FieldIndex = dec.ReadUint8(); } if ((packing_flags & 8192) != 0) { _Description = dec.ReadStr16(); } if ((packing_flags & 16384) != 0) { _ErrorInfo = dec.ReadMap(); } }
public ExecutionException SetErrorCode(ExecutionErrorCode value) { _ErrorCode = value; packing_flags |= 256; Dirty = true; return(this); }
/// <summary> /// Initializes a new instance of the <see cref="BaseExecutionResult"/> class. /// </summary> /// <param name="errorCode">The error code.</param> /// <param name="errorMessage">The error message.</param> protected BaseExecutionResult(ExecutionErrorCode errorCode, string errorMessage) { ErrorCode = errorCode; ErrorMessage = string.IsNullOrEmpty(errorMessage) ? errorMessage : GetDescription(errorCode); }
/// <summary> /// Gets the description for <param name="executionErrorCode"/>. /// </summary> /// <param name="executionErrorCode">The execution error code.</param> /// <returns> /// The result will be a string split by Upper case letters. /// E.g. for InputCommandInvalidArguments result will be 'Input Command Invalid Arguments' /// </returns> private static string GetDescription(ExecutionErrorCode executionErrorCode) { string executionErrorCodeName = executionErrorCode.ToString("G"); // Splits executionErrorCodeName the by upper case letters. // Solution was found by link https://stackoverflow.com/a/37532157/710014. string[] words = Regex.Matches(executionErrorCodeName, "(^[a-z]+|[A-Z]+(?![a-z])|[A-Z][a-z]+)") .Where(match => match != null) .Select(match => match.Value) .ToArray(); string description = string.Join(" ", words); return(description); }
public ExecutionException(ExecutionErrorCode ErrorCode, int CommandId, short ClassCode, short CommandCode, short FieldIndex, String Description, Dictionary <String, Object> ErrorInfo, params Option[] options) { SetErrorCode(ErrorCode); SetCommandId(CommandId); SetClassCode(ClassCode); SetCommandCode(CommandCode); SetFieldIndex(FieldIndex); SetDescription(Description); SetErrorInfo(ErrorInfo); for (int i = 0; i < options.Length; i++) { switch (options[i]) { case Option.SYNC: Sync = true; break; case Option.BATCH: Batch = true; break; case Option.NONE: break; default: throw new Exception("invalid option: " + options[i]); } } }
public ExecutionException(ExecutionErrorCode code) => this.Code = code;
public void ExecutionException(ExecutionErrorCode ErrorCode, int CommandId, short ClassCode, short CommandCode, short FieldIndex, String Description, Dictionary<String,Object> ErrorInfo, params Option[] options) { Invoke(new ExecutionException(ErrorCode, CommandId, ClassCode, CommandCode, FieldIndex, Description, ErrorInfo, options)); }
public void ExecutionException(ExecutionErrorCode ErrorCode, int CommandId, short ClassCode, short CommandCode, short FieldIndex, String Description, Dictionary <String, Object> ErrorInfo, params Option[] options) { Invoke(new ExecutionException(ErrorCode, CommandId, ClassCode, CommandCode, FieldIndex, Description, ErrorInfo, options)); }
private ExecutionResult(ExecutionErrorCode errorCode, string errorMessage) : base(errorCode, errorMessage) { }
/// <summary> /// Creates the unsuccessful execution result. /// </summary> /// <param name="errorCode">The error code.</param> /// <param name="errorMessage">The error message.</param> /// <returns> /// A <see cref="ExecutionResult" /> instance with <see cref="ExecutionResult.IsSuccess" /> set to <c>false</c>. /// </returns> public static ExecutionResult Error(ExecutionErrorCode errorCode, string errorMessage = null) { return(new ExecutionResult(errorCode, errorMessage)); }