Exemple #1
0
        private async void DeleteExecute()
        {
            var user = _item as TLUser;

            if (user == null)
            {
                return;
            }

            var confirm = await TLMessageDialog.ShowAsync(Strings.Android.AreYouSureDeleteContact, Strings.Android.AppName, Strings.Android.OK, Strings.Android.Cancel);

            if (confirm != ContentDialogResult.Primary)
            {
                return;
            }

            var response = await ProtoService.DeleteContactAsync(user.ToInputUser());

            if (response.IsSucceeded)
            {
                // TODO: delete from synced contacts

                Aggregator.Publish(new TLUpdateContactLink
                {
                    UserId      = response.Result.User.Id,
                    MyLink      = response.Result.MyLink,
                    ForeignLink = response.Result.ForeignLink
                });

                user.RaisePropertyChanged(() => user.HasFirstName);
                user.RaisePropertyChanged(() => user.HasLastName);
                user.RaisePropertyChanged(() => user.FirstName);
                user.RaisePropertyChanged(() => user.LastName);
                user.RaisePropertyChanged(() => user.FullName);
                user.RaisePropertyChanged(() => user.DisplayName);

                user.RaisePropertyChanged(() => user.HasPhone);
                user.RaisePropertyChanged(() => user.Phone);

                RaisePropertyChanged(() => IsEditEnabled);
                RaisePropertyChanged(() => IsAddEnabled);

                var dialog = CacheService.GetDialog(_item.ToPeer());
                if (dialog != null)
                {
                    dialog.RaisePropertyChanged(() => dialog.With);
                }
            }
        }