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); }