Exemplo n.º 1
0
            protected override void DoExecute()
            {
                ModifyBookmarkWindow window = new ModifyBookmarkWindow();

                window.DoBookmarkGridViewModel = this.ViewModel;
                window.Owner = View.GetWindow();
                if (window.ShowDialog() == true)
                {
                    BookmarkViewModel current = this.ViewModel.CurrentSelected;
                    ObjectMapper.CopyValues <BookmarkViewModel, BookmarkViewModel>(this.ViewModel.DoBookmarkViewModel, current);
                    this.ViewModel.CurrentSelected = this.ViewModel.CurrentSelected;
                }
            }
Exemplo n.º 2
0
        public async Task <Topic> ModifyAsync(TopicEditModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }
            if (model.Id == null)
            {
                throw new ArgumentNullException(nameof(model.Id));
            }
            if (string.IsNullOrWhiteSpace(model.Name))
            {
                throw new ModelException(nameof(model.Name), "话题名称不能为空");
            }
            using (var work = this.dbFactory.StartWork())
            {
                Topic topic = await work.Topic.SingleByIdAsync(model.Id.Value);

                if (topic == null)
                {
                    throw new ModelException(nameof(model.Name), "该话题不存在或已被删除");
                }
                if (!string.Equals(model.Name, topic.Name, StringComparison.OrdinalIgnoreCase))
                {
                    Topic old = await work.Topic.GetByNameAsync(model.Name.Trim());

                    if (old != null)
                    {
                        throw new ModelException(nameof(model.Name), "该话题名称已存在");
                    }
                }
                if (topic.IsAnnounce)
                {
                    throw new ModelException(nameof(model.Name), "公告为系统默认,不能被修改");
                }
                ObjectMapper.CopyValues <TopicEditModel, Topic>(model, topic);
                topic.IsAnnounce = false;
                await work.Topic.UpdateAsync(topic);

                return(await work.Topic.SingleByIdAsync(model.Id.Value));
            }
        }