コード例 #1
0
            /// <summary>
            /// Deactivates the device.
            /// </summary>
            /// <param name="request">The device deactivation request.</param>
            /// <returns>The device deactivation response.</returns>
            private static DeactivateDeviceServiceResponse DeactivateDevice(DeactivateDeviceServiceRequest request)
            {
                Device device = ConstructDeviceFromToken(request.DeviceToken);
                DeactivateDeviceRealtimeRequest  realtimeRequest  = new DeactivateDeviceRealtimeRequest(request.DeviceNumber, request.TerminalId, request.StaffId, device.TokenData);
                DeactivateDeviceRealtimeResponse realtimeResponse = request.RequestContext.Execute <DeactivateDeviceRealtimeResponse>(realtimeRequest);

                // Updating the activated device in the channel db.
                if (realtimeResponse.DeactivationResult.Device != null)
                {
                    CreateOrUpdateDeviceDataRequest createOrUpdateDeviceDataRequest = new CreateOrUpdateDeviceDataRequest(realtimeResponse.DeactivationResult.Device);
                    request.RequestContext.Execute <NullResponse>(createOrUpdateDeviceDataRequest);
                }

                return(new DeactivateDeviceServiceResponse(realtimeResponse.DeactivationResult));
            }
            /// <summary>
            /// Deactivates the device.
            /// </summary>
            /// <param name="request">The device deactivation request.</param>
            /// <returns>The device deactivation response.</returns>
            private static DeactivateDeviceRealtimeResponse DeactivateDevice(DeactivateDeviceRealtimeRequest request)
            {
                ThrowIf.Null(request, "request");

                var    getDeviceRequest = new GetDeviceDataRequest(request.DeviceNumber, isActivatedOnly: false);
                Device device           = request.RequestContext.Runtime.Execute <SingleEntityDataServiceResponse <Device> >(getDeviceRequest, request.RequestContext).Entity;

                device.ActivationStatus    = DeviceActivationStatus.Deactivated;
                device.ActivatedDateTime   = device.ActivatedDateTime ?? DateTimeOffset.UtcNow;
                device.DeactivateComments  = device.DeactivateComments ?? string.Empty;
                device.DeactivatedDateTime = device.DeactivatedDateTime ?? DateTimeOffset.MinValue;
                device.TokenIssueTime      = device.TokenIssueTime ?? DateTimeOffset.UtcNow;
                return(new DeactivateDeviceRealtimeResponse(new DeviceDeactivationResult()
                {
                    Device = device
                }));
            }
コード例 #3
0
            /// <summary>
            /// Deactivates the device.
            /// </summary>
            /// <param name="request">The device deactivation request.</param>
            /// <returns>The device deactivation response.</returns>
            private static DeactivateDeviceRealtimeResponse DeactivateDevice(DeactivateDeviceRealtimeRequest request)
            {
                var transactionService = new TransactionService.TransactionServiceClient(request.RequestContext);
                DeviceDeactivationResult deviceDeactivationResult;

                try
                {
                    // Call transaction service to deactivate the device.
                    deviceDeactivationResult = transactionService.DeactivateDevice(request.DeviceNumber, request.TerminalId, request.StaffId, request.DeviceToken);
                }
                catch (Exception ex)
                {
                    throw new DeviceAuthenticationException(SecurityErrors.Microsoft_Dynamics_Commerce_Runtime_DeviceDeactivationFailed, ex, ex.Message);
                }

                return(new DeactivateDeviceRealtimeResponse(deviceDeactivationResult));
            }