private static void HandleResult(string activityCode, Action <IPermissionResult> callback, GuestControllerResult <PermissionResponse> result) { if (!result.Success) { callback(MakeGenericFailure()); return; } PermissionResponse response = result.Response; if (response.error != null || response.data == null) { callback(GuestControllerErrorParser.GetPermissionResult(response.error) ?? MakeGenericFailure()); return; } ActivityApprovalStatus activityApprovalStatus = ActivityApprovalStatusConverter.Convert(response.data.approvalStatus); if (response.data.activityCode != activityCode || activityApprovalStatus == ActivityApprovalStatus.Unknown) { callback(MakeGenericFailure()); } else { callback(new PermissionResult(success: true, activityApprovalStatus)); } }
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()); } }
public static void GetPermission(AbstractLogger logger, IGuestControllerClient guestControllerClient, string activityCode, string childSwid, Action <IPermissionResult> callback) { if (string.IsNullOrEmpty(childSwid) || string.IsNullOrEmpty(activityCode)) { callback(new PermissionFailedInvalidResult()); return; } try { guestControllerClient.GetPermission(childSwid, delegate(GuestControllerResult <GetPermissionsResponse> r) { if (!r.Success) { callback(MakeGenericFailure()); } else if (r.Response.error != null || r.Response.data == null) { callback(MakeGenericFailure()); } else { Permission permission = r.Response.data.activityPermissions.FirstOrDefault((Permission ap) => ap.activityCode == activityCode); ActivityApprovalStatus status = ((permission == null) ? ActivityApprovalStatus.Unknown : ActivityApprovalStatusConverter.Convert(permission.approvalStatus)); callback(new PermissionResult(success: true, status)); } }); } catch (Exception ex) { logger.Critical("Unhandled exception: " + ex); callback(MakeGenericFailure()); } }