/// <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 })); }
/// <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)); }