/// <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); } } }
public async Task <bool> UpdateAsync([FromBody] ResourceShowDto dto) { return(await _resourceService.UpdateAsync(dto)); }
/// <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); } } }