public void SaveChanges(NavigationService navigationService)
        {
            int reason = 0;

            if (this.Reason.Name == CommonResources.Group_BanReason_Spam)
            {
                reason = 1;
            }
            else if (this.Reason.Name == CommonResources.Group_BanReason_VerbalAbuse)
            {
                reason = 2;
            }
            else if (this.Reason.Name == CommonResources.Group_BanReason_StrongLanguage)
            {
                reason = 3;
            }
            else if (this.Reason.Name == CommonResources.Group_BanReason_IrrelevantMessages)
            {
                reason = 4;
            }
            this.SetInProgress(true, "");
            this.IsFormEnabled = false;
            GroupsService current1          = GroupsService.Current;
            long          communityId       = this._communityId;
            long          id                = this._user.id;
            int           durationUnixTime  = this.DurationUnixTime;
            int           reason1           = reason;
            string        comment           = this.Comment;
            bool?         isCommentVisible1 = this.IsCommentVisible;
            bool          flag1             = true;
            int           num1              = isCommentVisible1.GetValueOrDefault() == flag1 ? (isCommentVisible1.HasValue ? 1 : 0) : 0;
            Action <BackendResult <int, ResultCode> > callback = (Action <BackendResult <int, ResultCode> >)(result => Execute.ExecuteOnUIThread((Action)(() =>
            {
                if (result.ResultCode == ResultCode.Succeeded)
                {
                    this._user.ban_info.date = Extensions.DateTimeToUnixTimestamp(DateTime.Now.ToUniversalTime(), true);
                    this._user.ban_info.end_date = this.DurationUnixTime;
                    this._user.ban_info.reason = reason;
                    this._user.ban_info.comment = this.Comment;
                    BlockInformation banInfo = this._user.ban_info;
                    bool?isCommentVisible2 = this.IsCommentVisible;
                    bool flag2 = true;
                    int num2 = (isCommentVisible2.GetValueOrDefault() == flag2 ? (isCommentVisible2.HasValue ? 1 : 0) : 0) != 0 ? 1 : 0;
                    banInfo.comment_visible = num2;
                    this._user.ban_info.admin_id = AppGlobalStateManager.Current.LoggedInUserId;
                    this._user.ban_info.manager = AppGlobalStateManager.Current.GlobalState.LoggedInUser;
                    EventAggregator current2 = EventAggregator.Current;
                    CommunityBlockChanged communityBlockChanged = new CommunityBlockChanged();
                    communityBlockChanged.CommunityId = this._communityId;
                    communityBlockChanged.User = this._user;
                    int num3 = this._manager != null ? 1 : 0;
                    communityBlockChanged.IsEditing = num3 != 0;
                    current2.Publish((object)communityBlockChanged);
                    if (!this._isEditing && !this._isOpenedWithoutPicker)
                    {
                        navigationService.RemoveBackEntry();
                    }
                    Navigator.Current.GoBack();
                }
                else
                {
                    this.SetInProgress(false, "");
                    this.IsFormEnabled = true;
                    GenericInfoUC.ShowBasedOnResult((int)result.ResultCode, "", null);
                }
            })));

            current1.BlockUser(communityId, id, durationUnixTime, reason1, comment, num1 != 0, callback);
        }