public void ApprovePermission(ApprovePermissionRequest request, string childSwid, Action <GuestControllerResult <PermissionResponse> > callback) { QueueItem item = CreateQueueItem("/client/{client-id}/guest/activity-permission/" + childSwid, HttpMethod.PUT, request, GuestControllerAuthenticationType.AccessToken, callback); queue.Add(item); ExecuteNextCall(); }
public static void ApprovePermission(AbstractLogger logger, IGuestControllerClient guestControllerClient, string activityCode, string childSwid, ActivityApprovalStatus desiredStatus, Action <IPermissionResult> callback) { if (string.IsNullOrEmpty(childSwid) || string.IsNullOrEmpty(activityCode) || desiredStatus == ActivityApprovalStatus.Pending || desiredStatus == ActivityApprovalStatus.Unknown) { callback(new PermissionFailedInvalidResult()); return; } try { ApprovePermissionRequest approvePermissionRequest = new ApprovePermissionRequest(); approvePermissionRequest.activityCode = activityCode; approvePermissionRequest.approvalStatus = ActivityApprovalStatusConverter.Convert(desiredStatus); approvePermissionRequest.swid = childSwid; ApprovePermissionRequest request = approvePermissionRequest; guestControllerClient.ApprovePermission(request, childSwid, delegate(GuestControllerResult <PermissionResponse> r) { if (!r.Success) { callback(MakeGenericFailure()); } else { PermissionResponse response = r.Response; if (response.error != null || response.data == null) { callback(ParseError(response)); } else { string activityCode2 = response.data.activityCode; ActivityApprovalStatus activityApprovalStatus = ActivityApprovalStatusConverter.Convert(response.data.approvalStatus); if (activityCode2 != activityCode || activityApprovalStatus != desiredStatus) { callback(new PermissionFailedInvalidResult()); } else { callback(new PermissionResult(success: true, activityApprovalStatus)); } } } }); } catch (Exception ex) { logger.Critical("Unhandled exception: " + ex); callback(MakeGenericFailure()); } }