Пример #1
0
        /// <summary>
        /// 编辑
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public async Task <bool> UpdateAsync(ResourceShowDto dto)
        {
            using (var tran = _databaseFixture.Db.BeginTransaction())
            {
                try
                {
                    var dbresource = await _databaseFixture.Db.SysResource.FindAsync(m => m.ResourceId == dto.SysResource.ResourceId);

                    if (dbresource == null)
                    {
                        return(false);
                    }
                    #region 基本信息

                    dbresource.ResourceName = dto.SysResource.ResourceName;
                    dbresource.ResourceUrl  = dto.SysResource.ResourceUrl;
                    dbresource.Sort         = dto.SysResource.Sort;
                    dbresource.Icon         = dto.SysResource.Icon;
                    dbresource.IsShow       = dto.SysResource.IsShow;
                    dbresource.ParentId     = dto.SysResource.ParentId;
                    dbresource.IsDel        = dto.SysResource.IsDel;
                    dbresource.Memo         = dto.SysResource.Memo;


                    //path
                    string path = "";
                    if (dto.SysResource.ParentId > 0)
                    {
                        var parentres = await _databaseFixture.Db.SysResource.FindAsync(m => m.ResourceId == dto.SysResource.ParentId);

                        if (parentres != null)
                        {
                            path = parentres.Path;
                        }
                    }
                    dbresource.Path = path.IsNullOrEmpty() ? dto.SysResource.ResourceId.ToString() : path + ":" + dto.SysResource.ResourceId;

                    await _databaseFixture.Db.SysResource.UpdateAsync(dbresource, tran);

                    #endregion

                    #region  钮修改

                    var dbres = await _databaseFixture.Db.SysResource.FindAllAsync(m => m.ParentId == dbresource.ResourceId && m.IsButton == 1);

                    var dbbuttons = dbres.ToList();

                    var pageids = dto.ButtonDto.Where(m => m.ButtonModel == 0 && m.Id > 0).Select(m => m.Id).ToList();//ButtonModel是0 表示未选中

                    #region  除

                    List <SysResource> dellist = dbbuttons.Where(m => pageids.Contains(m.ResourceId)).ToList();
                    if (dellist.Any())
                    {
                        foreach (var item in dellist)
                        {
                            await _databaseFixture.Db.SysResource.DeleteAsync(item, tran);
                        }
                    }

                    #endregion

                    #region 新增

                    var addbtns             = dto.ButtonDto.Where(m => m.Id <= 0 && m.ButtonModel > 0).ToList();//获取选中
                    List <SysResource> list = addbtns.Select(item => new SysResource()
                    {
                        IsButton     = 1,
                        CreateTime   = DateTime.Now.ToTimeStamp(),
                        SystemId     = dto.SysResource.SystemId,
                        ResourceName = item.Name,
                        ButtonType   = item.ButtonModel,
                        ParentId     = dto.SysResource.ResourceId,
                        ButtonClass  = ((ButtonType)item.ButtonType).ToClass()
                    }).ToList();
                    if (list.HasItems())
                    {
                        await _databaseFixture.Db.SysResource.BulkInsertAsync(list, tran);
                    }
                    #endregion

                    #endregion

                    tran.Commit();
                    return(true);
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    _logJobs.ExceptionLog(dto.SysResource.CreateUserId, ex);
                    return(false);
                }
            }
        }
Пример #2
0
 public async Task <bool> UpdateAsync([FromBody] ResourceShowDto dto)
 {
     return(await _resourceService.UpdateAsync(dto));
 }
Пример #3
0
        /// <summary>
        /// 新增
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public async Task <bool> AddAsync(ResourceShowDto dto)
        {
            using (var tran = _databaseFixture.Db.BeginTransaction())
            {
                try
                {
                    #region 基本信息添加
                    dto.SysResource.CreateTime = DateTime.Now.ToTimeStamp();
                    dto.SysResource.IsButton   = 0;
                    await _databaseFixture.Db.SysResource.InsertAsync(dto.SysResource, tran);

                    //path
                    string path = "";
                    if (dto.SysResource.ParentId > 0)
                    {
                        var parentres = await _databaseFixture.Db.SysResource.FindAsync(m => m.ResourceId == dto.SysResource.ParentId);

                        if (parentres != null)
                        {
                            path = parentres.Path;
                        }
                    }
                    dto.SysResource.Path = path.IsNullOrEmpty() ? dto.SysResource.ResourceId.ToString() : path + ":" + dto.SysResource.ResourceId;
                    await _databaseFixture.Db.SysResource.UpdateAsync(dto.SysResource, tran);

                    #endregion

                    #region  钮添加

                    List <SysResource> list = new List <SysResource>();
                    var addbutton           = dto.ButtonDto.Where(m => m.ButtonType == m.ButtonModel).ToList();
                    foreach (var button in addbutton)
                    {
                        SysResource res = new SysResource()
                        {
                            IsButton     = 1,
                            CreateTime   = DateTime.Now.ToTimeStamp(),
                            SystemId     = dto.SysResource.SystemId,
                            ResourceName = button.Name,
                            ButtonType   = button.ButtonType,
                            ParentId     = dto.SysResource.ResourceId,
                            ButtonClass  = ((ButtonType)button.ButtonType).ToClass()
                        };
                        list.Add(res);
                    }
                    if (list.HasItems())
                    {
                        await _databaseFixture.Db.SysResource.BulkInsertAsync(list, tran);
                    }

                    #endregion

                    tran.Commit();
                    return(true);
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    _logJobs.ExceptionLog(dto.SysResource.CreateUserId, ex);
                    return(false);
                }
            }
        }