public async Task <ActionResult <IEnumerable <Sys_Cog_MenuCom> > > r2AddDataModel(MenuCongtyOp options) { try { RequestToken token = CommonData.GetDataFromToken(User); var menuThree = await _context.Sys_Dm_Menu.FindAsync(options.Id); var menuComThree = _context.Sys_Cog_MenuCom.Count(x => x.MenuId == menuThree.Id && x.CompanyId == options.CompanyId); if (menuComThree == 0) { var menuTwo = await _context.Sys_Dm_Menu.FindAsync(menuThree.ParentId); var menuComTwo = _context.Sys_Cog_MenuCom.Count(x => x.MenuId == menuThree.ParentId && x.CompanyId == options.CompanyId); if (menuComTwo == 0) { var menuOne = await _context.Sys_Dm_Menu.FindAsync(menuTwo.ParentId); var menuComOne = _context.Sys_Cog_MenuCom.Count(x => x.MenuId == menuTwo.ParentId && x.CompanyId == options.CompanyId); if (menuComOne == 0) { Sys_Cog_MenuCom objOne = new Sys_Cog_MenuCom(); objOne.MenuId = menuOne.Id; objOne.CompanyId = options.CompanyId; objOne.IsActive = true; objOne.ParentId = null; objOne.UserUpdateId = token.UserID; objOne.DateUpdate = DateTime.Now; _context.Sys_Cog_MenuCom.Add(objOne); Sys_Cog_MenuCom objTwo = new Sys_Cog_MenuCom(); objTwo.MenuId = menuTwo.Id; objTwo.CompanyId = options.CompanyId; objTwo.IsActive = true; objTwo.ParentId = menuOne.Id; objTwo.UserUpdateId = token.UserID; objTwo.DateUpdate = DateTime.Now; _context.Sys_Cog_MenuCom.Add(objTwo); Sys_Cog_MenuCom objThree = new Sys_Cog_MenuCom(); objThree.MenuId = options.Id; objThree.CompanyId = options.CompanyId; objThree.IsActive = true; objThree.ParentId = menuTwo.Id; objThree.UserUpdateId = token.UserID; objThree.DateUpdate = DateTime.Now; _context.Sys_Cog_MenuCom.Add(objThree); } else { Sys_Cog_MenuCom objTwo = new Sys_Cog_MenuCom(); objTwo.MenuId = menuTwo.Id; objTwo.CompanyId = options.CompanyId; objTwo.IsActive = true; objTwo.ParentId = menuOne.Id; objTwo.UserUpdateId = token.UserID; objTwo.DateUpdate = DateTime.Now; _context.Sys_Cog_MenuCom.Add(objTwo); Sys_Cog_MenuCom objThree = new Sys_Cog_MenuCom(); objThree.MenuId = options.Id; objThree.CompanyId = options.CompanyId; objThree.ParentId = menuTwo.Id; objThree.IsActive = true; objThree.UserUpdateId = token.UserID; objThree.DateUpdate = DateTime.Now; _context.Sys_Cog_MenuCom.Add(objThree); } } else { var menuComTwoParent = await _context.Sys_Cog_MenuCom.FirstOrDefaultAsync(x => x.MenuId == menuThree.ParentId && x.CompanyId == options.CompanyId); Sys_Cog_MenuCom objThree = new Sys_Cog_MenuCom(); objThree.MenuId = options.Id; objThree.CompanyId = options.CompanyId; objThree.IsActive = true; objThree.ParentId = menuTwo.Id; objThree.UserUpdateId = token.UserID; objThree.DateUpdate = DateTime.Now; _context.Sys_Cog_MenuCom.Add(objThree); menuComTwoParent.IsActive = true; } } else { var menuCome = await _context.Sys_Cog_MenuCom.FirstOrDefaultAsync(x => x.MenuId == options.Id && x.CompanyId == options.CompanyId); var menuComTwoParent = await _context.Sys_Cog_MenuCom.FirstOrDefaultAsync(x => x.MenuId == menuThree.ParentId && x.CompanyId == options.CompanyId); if (options.IsActive == false) { var rmmenuDeps = _context.Sys_Cog_MenuDep.Where(x => x.MenuId == options.Id && x.CompanyId == options.CompanyId).ToList(); // xóa menu phòng if (_context.Sys_Cog_MenuCom.Count(x => x.ParentId == menuThree.ParentId && x.CompanyId == options.CompanyId && x.IsActive == true && x.MenuId != options.Id) == 0) { menuComTwoParent.IsActive = false; } foreach (var item in rmmenuDeps) { item.IsActive = false; var menuDepParent = await _context.Sys_Cog_MenuDep.FirstOrDefaultAsync(x => x.MenuId == item.ParentId && x.CompanyId == item.CompanyId && x.DepartmentId == item.DepartmentId); if (_context.Sys_Cog_MenuDep.Count(x => x.ParentId == item.ParentId && x.CompanyId == item.CompanyId && x.IsActive == true && x.MenuId != item.MenuId) == 0) { menuDepParent.IsActive = false; } var rmmenuNests = _context.Sys_Cog_MenuNest.Where(x => x.MenuId == options.Id && x.CompanyId == options.CompanyId && x.ParentDepartmentId == item.DepartmentId).ToList(); // xóa menu phòng foreach (var ntem in rmmenuNests) { ntem.IsActive = false; } } menuCome.IsActive = false; menuCome.DateUpdate = DateTime.Now; menuCome.UserUpdateId = token.UserID; } else { if (_context.Sys_Cog_MenuCom.Count(x => x.ParentId == menuThree.ParentId && x.CompanyId == options.CompanyId && x.IsActive == true) == 0) { menuComTwoParent.IsActive = true; } menuCome.IsActive = true; menuCome.DateUpdate = DateTime.Now; menuCome.UserUpdateId = token.UserID; } } await _context.SaveChangesAsync(); return(new ObjectResult(new { error = 0 })); } catch (Exception ez) { return(new ObjectResult(new { error = 1 })); } }
public async Task <ActionResult <IEnumerable <Sys_Cog_MenuDep> > > r2AddDataModelDepartment(MenuCongtyOp options) { try { var userId = Convert.ToInt32(User.Claims.First(c => c.Type == "UserId").Value); var menuThree = await _context.Sys_Dm_Menu.FindAsync(options.Id); var menuComThree = _context.Sys_Cog_MenuDep.Count(x => x.MenuId == menuThree.Id && x.CompanyId == options.CompanyId && x.DepartmentId == options.DepartmentId); if (menuComThree == 0) { var menuTwo = await _context.Sys_Dm_Menu.FindAsync(menuThree.ParentId); var menuComTwo = _context.Sys_Cog_MenuDep.Count(x => x.MenuId == menuThree.ParentId && x.CompanyId == options.CompanyId && x.DepartmentId == options.DepartmentId); if (menuComTwo == 0) { var menuOne = await _context.Sys_Dm_Menu.FindAsync(menuTwo.ParentId); var menuComOne = _context.Sys_Cog_MenuDep.Count(x => x.MenuId == menuTwo.ParentId && x.CompanyId == options.CompanyId && x.DepartmentId == options.DepartmentId); if (menuComOne == 0) { Sys_Cog_MenuDep objOne = new Sys_Cog_MenuDep(); objOne.MenuId = menuOne.Id; objOne.CompanyId = options.CompanyId; objOne.IsActive = true; objOne.ParentId = null; objOne.DepartmentId = options.DepartmentId; objOne.UserUpdateId = userId; objOne.DateUpdate = DateTime.Now; _context.Sys_Cog_MenuDep.Add(objOne); Sys_Cog_MenuDep objTwo = new Sys_Cog_MenuDep(); objTwo.MenuId = menuTwo.Id; objTwo.CompanyId = options.CompanyId; objTwo.IsActive = true; objTwo.ParentId = menuOne.Id; objTwo.DepartmentId = options.DepartmentId; objTwo.UserUpdateId = userId; objTwo.DateUpdate = DateTime.Now; _context.Sys_Cog_MenuDep.Add(objTwo); Sys_Cog_MenuDep objThree = new Sys_Cog_MenuDep(); objThree.MenuId = options.Id; objThree.CompanyId = options.CompanyId; objThree.IsActive = true; objThree.ParentId = menuTwo.Id; objThree.DepartmentId = options.DepartmentId; objThree.UserUpdateId = userId; objThree.DateUpdate = DateTime.Now; _context.Sys_Cog_MenuDep.Add(objThree); } else { Sys_Cog_MenuDep objTwo = new Sys_Cog_MenuDep(); objTwo.MenuId = menuTwo.Id; objTwo.CompanyId = options.CompanyId; objTwo.IsActive = true; objTwo.ParentId = menuOne.Id; objTwo.DepartmentId = options.DepartmentId; objTwo.UserUpdateId = userId; objTwo.DateUpdate = DateTime.Now; _context.Sys_Cog_MenuDep.Add(objTwo); Sys_Cog_MenuDep objThree = new Sys_Cog_MenuDep(); objThree.MenuId = options.Id; objThree.CompanyId = options.CompanyId; objThree.ParentId = menuTwo.Id; objThree.IsActive = true; objThree.DepartmentId = options.DepartmentId; objThree.UserUpdateId = userId; objThree.DateUpdate = DateTime.Now; _context.Sys_Cog_MenuDep.Add(objThree); } } else { var menuComTwoParent = await _context.Sys_Cog_MenuDep.FirstOrDefaultAsync(x => x.MenuId == menuThree.ParentId && x.CompanyId == options.CompanyId && x.DepartmentId == options.DepartmentId); Sys_Cog_MenuDep objThree = new Sys_Cog_MenuDep(); objThree.MenuId = options.Id; objThree.CompanyId = options.CompanyId; objThree.IsActive = true; objThree.ParentId = menuTwo.Id; objThree.DepartmentId = options.DepartmentId; objThree.UserUpdateId = userId; objThree.DateUpdate = DateTime.Now; _context.Sys_Cog_MenuDep.Add(objThree); menuComTwoParent.IsActive = true; } } else { var menuCome = await _context.Sys_Cog_MenuDep.FirstOrDefaultAsync(x => x.MenuId == options.Id && x.CompanyId == options.CompanyId && x.DepartmentId == options.DepartmentId); var menuComTwoParent = await _context.Sys_Cog_MenuDep.FirstOrDefaultAsync(x => x.MenuId == menuThree.ParentId && x.CompanyId == options.CompanyId && x.DepartmentId == options.DepartmentId); if (options.IsActive == false) { var rmmenuNest = _context.Sys_Cog_MenuNest.Where(x => x.MenuId == options.Id && x.CompanyId == options.CompanyId && x.ParentDepartmentId == options.DepartmentId); // xóa menu tổ if (_context.Sys_Cog_MenuDep.Count(x => x.ParentId == menuThree.ParentId && x.CompanyId == options.CompanyId && x.IsActive == true && x.MenuId != options.Id && x.DepartmentId == options.DepartmentId) == 0) { menuComTwoParent.IsActive = false; } menuCome.IsActive = false; foreach (var item in rmmenuNest) { item.IsActive = false; } menuCome.UserUpdateId = userId; menuCome.DateUpdate = DateTime.Now; } else { if (menuComTwoParent.IsActive == false) { menuComTwoParent.IsActive = true; } menuCome.IsActive = true; menuCome.UserUpdateId = userId; menuCome.DateUpdate = DateTime.Now; } } await _context.SaveChangesAsync(); return(new ObjectResult(new { error = 0 })); } catch (Exception) { return(new ObjectResult(new { error = 1 })); } }