コード例 #1
0
        public CommandResult <LeftMenus> Update(int leftMenuId, long timestamp, LeftMenusUpdateRequestModel requestModel)
        {
            var result = new CommandResult <LeftMenus>();

            using (var db = new FrameContext())
            {
                if (!BaseService.Exist(db, a => a.Id == leftMenuId))
                {
                    result.Message = "该数据在系统中已不存在,请检查后再试……";
                }
                else if (!BaseService.Exist(db, a => a.Id == leftMenuId && a.Timestamp == timestamp))
                {
                    result.Message = "该节点已在别处被更改过!";
                }
                else
                {
                    var entity = BaseService.Find(db, a => a.Id == leftMenuId);
                    entity.DisplayName   = requestModel.DisplayName;
                    entity.DllPath       = requestModel.DllPath;
                    entity.EntryFunction = requestModel.EntryFunction;
                    entity.Ico           = requestModel.Ico;
                    entity.MenuId        = requestModel.MenuId;
                    entity.NavBarGroupId = requestModel.NavBarGroupId;
                    entity.ParentId      = requestModel.ParentId;
                    entity.StartWithSys  = requestModel.StartWithSys;
                    entity.Timestamp     = requestModel.Timestamp;

                    if (!BaseService.Update(db, entity))
                    {
                        result.Message = "未知原因";
                    }
                    else
                    {
                        result.ResultStatus = ResultStatus.Success;
                        result.Message      = "更新数据成功";
                        result.Data         = entity;
                    }
                }
            }
            return(result);
        }
コード例 #2
0
        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnSave_OnClick(object sender, RoutedEventArgs e)
        {
            if (!_clsLoginModel.PermissionsFunc(_currentMenuId, (int)PermissionsEnum.修改))
            {
                _metroWindow.ShowMessageAsync("友情提示", "您没有修改菜单信息的权限");
                return;
            }
            if (!Verify())
            {
                return;
            }
            if (!JudgeDisplayNameNotRootName(_metroWindow, DisplayName))
            {
                return;
            }

            Action updateAction = () =>
            {
                var requestModel = new LeftMenusUpdateRequestModel
                {
                    DisplayName   = DisplayName,
                    DllPath       = DllPath,
                    EntryFunction = EntryFunction,
                    Ico           = null,
                    MenuId        = MenuId,
                    NavBarGroupId = NavBarGroupId,
                    ParentId      = ParentId,
                    StartWithSys  = StartWithSysYes,
                    Timestamp     = _leftMenusManage.ServerTime.ToUnixTimestamp()
                };
                var result = _leftMenusManage.Update(LeftMenuId, Timestamp, requestModel);
                if (result.ResultStatus == ResultStatus.Success)
                {
                    var selectedTreeView = GetSelectedTreeView();
                    Timestamp = result.Data.Timestamp;
                    ((LeftMenus)((TreeViewItem)selectedTreeView.SelectedItem).DataContext).Timestamp = result.Data.Timestamp;

                    var currentTreeView = GetSelectedTreeView();
                    UpdateSelectedItemPosition(LeftMenuId);
                    UpdateSort(currentTreeView.Items);
                    UpdateSelectedItem(currentTreeView.Items, LeftMenuId);

                    _leftMenu.LeftMenusList = _leftMenusManage.GetAll();
                }
                _metroWindow.ShowMessageAsync(result.ResultStatus == ResultStatus.Success ? "更新成功" : "更新失败", result.Message);
            };

            var setting = new MetroDialogSettings
            {
                AnimateShow           = true,
                AnimateHide           = true,
                AffirmativeButtonText = "确定",
                NegativeButtonText    = "取消",
                DefaultButtonFocus    = MessageDialogResult.Negative
            };

            _metroWindow.ShowMessageAsync("更新节点提示", "您确定要更新此节点信息吗?", MessageDialogStyle.AffirmativeAndNegative, setting).ContinueWith(
                t =>
            {
                _metroWindow.Dispatcher.Invoke((Action)(() =>
                {
                    if (t.Result == MessageDialogResult.Affirmative)
                    {
                        if (_leftMenusManage.Exist(a => a.Id != LeftMenuId && a.DisplayName == DisplayName.Trim()))
                        {
                            _metroWindow.ShowMessageAsync("信息重复提示", $"菜单名称“{DisplayName}”,在系统中已存在,是否仍使用该名称?", MessageDialogStyle.AffirmativeAndNegative, setting)
                            .ContinueWith(z =>
                            {
                                if (z.Result == MessageDialogResult.Affirmative)
                                {
                                    _metroWindow.Dispatcher.Invoke((Action)(() => {
                                        updateAction();
                                    }));
                                }
                            });
                        }
                        else
                        {
                            updateAction();
                        }
                    }
                }));
            });
        }