示例#1
0
 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();
     }
 }
示例#2
0
 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);
        }
示例#5
0
        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]);
                }
            }
        }
示例#6
0
 public ExecutionException(ExecutionErrorCode code) => this.Code = code;
示例#7
0
 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));
 }
示例#8
0
 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));
 }