protected override void DoBussiness(MetadataContainer reqMsg, MetadataMessageTransaction transaction) { CoinTypes coinType = (CoinTypes)reqMsg.GetAttribute(0x0F).GetValue <byte>(); PlatformTypes platformType = (PlatformTypes)reqMsg.GetAttribute(0x10).GetValue <byte>(); IExecuteResult executeResult = CacheManager.Instance.GetValue(coinType, platformType); if (executeResult.State != ExecuteResults.Succeed) { transaction.SendResponse(GetErrorResponseMessage(SystemErrors.Unknown, executeResult.Error)); } else { ResourceBlock rspCampaignData = ConverterFactory.GetTickerConverter().ConvertToNetworkObject(executeResult.GetResult <Ticker>()); transaction.SendResponse(GetSucceedResponseMessage(rspCampaignData)); } }
internal static void HandleSucceedSituation(MetadataMessageTransaction transaction, MetadataContainer rspMessage) { _rspRemainningCounter.Decrement(); MessageIdentity msgIdentity = transaction.Request.GetAttributeAsType <MessageIdentity>(0x00); msgIdentity.DetailsId += 1; rspMessage.SetAttribute(0x00, new MessageIdentityValueStored(msgIdentity)); transaction.SendResponse(rspMessage); }
internal static void HandleErrorSituation(MetadataMessageTransaction transaction, KAEErrorCodes errorCode, string reason) { _rspRemainningCounter.Decrement(); _errorRspCounter.Increment(); MessageIdentity msgIdentity = transaction.Request.GetAttributeAsType <MessageIdentity>(0x00); msgIdentity.DetailsId += 1; MetadataContainer rspMsg = new MetadataContainer(); rspMsg.SetAttribute(0x00, new MessageIdentityValueStored(msgIdentity)); rspMsg.SetAttribute(0x0A, new ByteValueStored((byte)errorCode)); rspMsg.SetAttribute(0x0B, new StringValueStored(reason ?? string.Empty)); transaction.SendResponse(rspMsg); }