public static Task <MyInvitation> CreateInviteAsync(string realmUrl) { var tcs = new TaskCompletionSource <MyInvitation>(); var permissionOffer = new PermissionOffer(realmUrl, mayRead: true, mayWrite: true, mayManage: false, expiresAt: DateTimeOffset.UtcNow.AddDays(7)); var managementRealm = User.Current.GetManagementRealm(); managementRealm.Write(() => { managementRealm.Add(permissionOffer); }); permissionOffer.WhenPropertyChanged(nameof(PermissionOffer.Status), (po) => po.Status == ManagementObjectStatus.Success, (po) => { tcs.TrySetResult(CreateInvite(po)); } ); return(tcs.Task); }
private static MyInvitation CreateInvite(PermissionOffer po) { return(new MyInvitation(po.Token)); }