Beispiel #1
0
        /// <summary>
        /// Convert to lightweight serializable MobileConnectWebResponse
        /// </summary>
        /// <param name="status">Input status instance</param>
        /// <returns>Serializable response instance</returns>
        /// <example>
        /// <code language="C#" title="WebApi Controller Example">
        /// <![CDATA[
        /// [HttpGet]
        /// [Route("start_discovery")]
        /// public async Task<object> StartDiscovery(string msisdn = "", string mcc = "", string mnc = "")
        /// {
        ///     var response = await _mobileConnect.AttemptDiscovery(Request, msisdn, mcc, mnc, true, new MobileConnectRequestOptions());
        ///     return ResponseConverter.Convert(response);
        /// }
        /// ]]>
        /// </code>
        /// </example>
        public static MobileConnectWebResponse Convert(MobileConnectStatus status)
        {
            var response = new MobileConnectWebResponse
            {
                Status       = _statusDict[status.ResponseType],
                Action       = _actionDict[status.ResponseType],
                Nonce        = status.Nonce,
                State        = status.State,
                Url          = status.Url,
                SdkSession   = status.SDKSession,
                SubscriberId = status.DiscoveryResponse?.ResponseData?.subscriber_id,
                Token        = status.TokenResponse?.ResponseData,
            };

            if (status.ResponseType == MobileConnectResponseType.Error)
            {
                response.Error       = status.ErrorCode;
                response.Description = status.ErrorMessage;
            }

            return(response);
        }
Beispiel #2
0
        /// <summary>
        /// Convert to lightweight serializable MobileConnectWebResponse
        /// </summary>
        /// <param name="status">Input status instance</param>
        /// <returns>Serializable response instance</returns>
        /// <example>
        /// <code language="C#" title="WebApi Controller Example">
        /// <![CDATA[
        /// [HttpGet]
        /// [Route("start_discovery")]
        /// public async Task<object> StartDiscovery(string msisdn = "", string mcc = "", string mnc = "")
        /// {
        ///     var response = await _mobileConnect.AttemptDiscovery(Request, msisdn, mcc, mnc, true, new MobileConnectRequestOptions());
        ///     return ResponseConverter.Convert(response);
        /// }
        /// ]]>
        /// </code>
        /// </example>
        public static MobileConnectWebResponse Convert(MobileConnectStatus status)
        {
            var response = new MobileConnectWebResponse
            {
                Status = status.ResponseType == MobileConnectResponseType.Error ? STATUS_FAILURE : STATUS_SUCCESS,
                Action = _actionDict[status.ResponseType],
                ApplicationShortName = status.DiscoveryResponse?.ApplicationShortName,
                Nonce        = status.Nonce,
                State        = status.State,
                Url          = status.Url,
                SdkSession   = status.SDKSession,
                SubscriberId = status.DiscoveryResponse?.ResponseData?.subscriber_id,
                Token        = status.TokenResponse?.ResponseData,
                Identity     = status.IdentityResponse?.ResponseJson != null ? new Newtonsoft.Json.Linq.JRaw(status.IdentityResponse.ResponseJson) : null,
            };

            if (status.ResponseType == MobileConnectResponseType.Error)
            {
                response.Error       = status.ErrorCode;
                response.Description = status.ErrorMessage;
            }

            return(response);
        }