public static Task <Realm> AcceptInvitationAsync(MyInvitation invitation)
        {
            var tcs = new TaskCompletionSource <Realm>();

            var offerResponse   = new PermissionOfferResponse(invitation.Token);
            var managementRealm = User.Current.GetManagementRealm();

            managementRealm.Write(() =>
            {
                managementRealm.Add(offerResponse);
            });

            offerResponse.WhenPropertyChanged(
                nameof(PermissionOfferResponse.Status),
                (por) => por.Status == ManagementObjectStatus.Success,
                (por) =>
            {
                if (por.RealmUrl != null)
                {
                    var configuration = new SyncConfiguration(User.Current, new Uri(por.RealmUrl));
                    tcs.TrySetResult(Realm.GetInstance(configuration));
                }
            });

            return(tcs.Task);
        }
 public InvitePage(MyInvitation invite)
     : this(Newtonsoft.Json.JsonConvert.SerializeObject(invite))
 {
 }