コード例 #1
0
        public void SaveChanges(bool isRemoving, NavigationService navigationService)
        {
            CommunityManagementRole role = CommunityManagementRole.Unknown;

            if (!isRemoving)
            {
                bool?moderatorSelected = this.IsModeratorSelected;
                bool flag1             = true;
                if ((moderatorSelected.GetValueOrDefault() == flag1 ? (moderatorSelected.HasValue ? 1 : 0) : 0) != 0)
                {
                    role = CommunityManagementRole.Moderator;
                }
                bool?isEditorSelected = this.IsEditorSelected;
                bool flag2            = true;
                if ((isEditorSelected.GetValueOrDefault() == flag2 ? (isEditorSelected.HasValue ? 1 : 0) : 0) != 0)
                {
                    role = CommunityManagementRole.Editor;
                }
                bool?administratorSelected = this.IsAdministratorSelected;
                bool flag3 = true;
                if ((administratorSelected.GetValueOrDefault() == flag3 ? (administratorSelected.HasValue ? 1 : 0) : 0) != 0)
                {
                    role = CommunityManagementRole.Administrator;
                }
            }
            EditingMode editingMode = this._isEditing ? EditingMode.Editing : EditingMode.Adding;

            if (isRemoving)
            {
                editingMode = EditingMode.Removing;
            }
            this.SetInProgress(true, "");
            this.IsFormEnabled = false;
            GroupsService current1    = GroupsService.Current;
            long          communityId = this._communityId;
            long          id          = this._manager.id;
            int           num1        = (int)role;
            bool?         isContact1  = this.IsContact;
            bool          flag4       = true;
            int           num2        = isContact1.GetValueOrDefault() == flag4 ? (isContact1.HasValue ? 1 : 0) : 0;
            string        position1   = this.Position;
            string        email1      = this.Email;
            string        phone1      = this.Phone;
            Action <BackendResult <int, ResultCode> > callback = (Action <BackendResult <int, ResultCode> >)(result => Execute.ExecuteOnUIThread((Action)(() =>
            {
                if (result.ResultCode == ResultCode.Succeeded)
                {
                    EventAggregator current2 = EventAggregator.Current;
                    CommunityManagerChanged communityManagerChanged = new CommunityManagerChanged();
                    communityManagerChanged.CommunityId = this._communityId;
                    communityManagerChanged.ManagerId = this._manager.id;
                    communityManagerChanged.EditingMode = editingMode;
                    communityManagerChanged.Role = role;
                    bool?isContact2 = this.IsContact;
                    bool flag1 = true;
                    int num3 = isContact2.GetValueOrDefault() == flag1 ? (isContact2.HasValue ? 1 : 0) : 0;
                    communityManagerChanged.IsContact = num3 != 0;
                    string position2 = this.Position;
                    communityManagerChanged.Position = position2;
                    string email2 = this.Email;
                    communityManagerChanged.Email = email2;
                    string phone2 = this.Phone;
                    communityManagerChanged.Phone = phone2;
                    User manager = this._manager;
                    communityManagerChanged.User = manager;
                    current2.Publish((object)communityManagerChanged);
                    if (!this._isEditing && this._fromPicker)
                    {
                        navigationService.RemoveBackEntry();
                    }
                    if (this._manager.id != VKClient.Common.Library.AppGlobalStateManager.Current.LoggedInUserId || role == CommunityManagementRole.Administrator)
                    {
                        Navigator.Current.GoBack();
                    }
                    else if (role != CommunityManagementRole.Unknown)
                    {
                        Navigator.Current.NavigateToCommunityManagement(this._communityId, this._communityType, false);
                        this._navigationService.RemoveBackEntry();
                        this._navigationService.RemoveBackEntry();
                        this._navigationService.RemoveBackEntry();
                    }
                    else
                    {
                        this._navigationService.RemoveBackEntry();
                        this._navigationService.RemoveBackEntry();
                        Navigator.Current.GoBack();
                    }
                }
                else
                {
                    this.SetInProgress(false, "");
                    this.IsFormEnabled = true;
                    VKClient.Common.UC.GenericInfoUC.ShowBasedOnResult((int)result.ResultCode, "", null);
                }
            })));

            current1.EditManager(communityId, id, (CommunityManagementRole)num1, num2 != 0, position1, email1, phone1, callback);
        }