示例#1
0
        public static ResultMessage CreateResult(this MessageEnvelope envelope, ResultStatusCodes status = ResultStatusCodes.InternalError, List <Effect> effects = null)
        {
            if (envelope == null)
            {
                throw new ArgumentNullException(nameof(envelope));
            }
            var messageType = envelope.Message.MessageType;

            if (envelope.Message is RequestQuantum)
            {
                messageType = ((RequestQuantum)envelope.Message).RequestEnvelope.Message.MessageType;
            }

            switch (messageType)
            {
            case MessageTypes.HandshakeInit:
                return(CreateResult <HandshakeResult>(envelope, status, effects));

            case MessageTypes.AccountDataRequest:
                return(CreateResult <AccountDataResponse>(envelope, status, effects));

            case MessageTypes.WithdrawalRequest:
                return(CreateResult <ITransactionResultMessage>(envelope, status, effects));

            default:
                return(CreateResult <ResultMessage>(envelope, status, effects));
            }
        }
 private static void AsserResult(MessageEnvelope resultMessage, ResultStatusCodes targetResult)
 {
     if (resultMessage.Message is ResultMessage result)
     {
         Assert.AreEqual(result.Status, targetResult, "Result message status assertion.");
         return;
     }
     Assert.Fail("Specified message is not result message.");
 }
示例#3
0
        public static string GetDescription(this ResultStatusCodes status)
        {
            switch (status)
            {
            case ResultStatusCodes.Success: return("Success");

            case ResultStatusCodes.Unauthorized: return("Unauthorized");

            case ResultStatusCodes.InternalError: return("InternalError");
            }
            throw new NotImplementedException($"Description for status code {status.ToString()} was not specified.");
        }
示例#4
0
 public BaseServiceResult(ResultStatusCodes statusCode, T data, T1 dataT1, T2 dataT2, T3 dataT3, string message = null) : base(statusCode, data, dataT1, dataT2, message)
 {
     DataT3 = dataT3;
 }
示例#5
0
        private static TResultMessage CreateResult <TResultMessage>(this MessageEnvelope envelope, ResultStatusCodes status = ResultStatusCodes.InternalError, List <Effect> effects = null)
            where TResultMessage : ResultMessage
        {
            if (envelope == null)
            {
                throw new ArgumentNullException(nameof(envelope));
            }
            var resultMessage = Activator.CreateInstance <TResultMessage>();

            resultMessage.OriginalMessage = envelope;
            resultMessage.Status          = status;
            resultMessage.Effects         = effects ?? new List <Effect>();
            return(resultMessage);
        }