public async Task <IActionResult> MenuFuntionAccountObject(MenuAccountOuput menuOuput) { var ts008_MenuInput = new MenuAccountInput(); ts008_MenuInput.IdAccount = menuOuput.IdAccount; ts008_MenuInput.ListMenuChucNang = new List <GroupMenuChucNang>(menuOuput.ListMenuChucNang); var client = new RestClient(_config["UrlApi"]); var requestApi = new RestRequest("/api/MenuFunctions/save-menu-account", Method.POST); requestApi.AddHeader("Authorization", "Bearer " + AtUserToken); requestApi.AddJsonBody(ts008_MenuInput); // or automatically deserialize result var response = await client.ExecuteTaskAsync <AtResult <string> >(requestApi); var idAccountFuntion = response.Data.PayLoad; if (response.Data.PayLoad == null) { return(RedirectToAction("PageErros", "Home", new { statusCode = (int)AtNotify.KhongCoQuyenTruyCap })); } return(RedirectToAction("Index", "AccountObject")); }
public async Task <MenuAccountOuput> GetListMenuAccountAsync(string idAccount) { try { var listMenuGroud = await _context.MenuFunctionGroup.Where(c => c.Status == (int)AtRowStatus.Normal).AsNoTracking().ToListAsync(); var listMenu = await _context.MenuFunctionSubGroup.Where(c => c.Status == (int)AtRowStatus.Normal).Select(c => new ListSubMenuFuntion { IdMenuGroud = c.FK_MenuGroup, NameGroup = c.FK_MenuGroupNavigation.GroupName, IdSubMenu = c.Id, NameSubName = c.SubGroupName, MenuFunctions = c.MenuFunction.Where(c => c.Status == (int)AtRowStatus.Normal).Select(lc => new ListMenuFuntion { IdMenuFuntion = lc.Id, NameMenuFuntion = lc.Title, IsCheck = false }).ToList() }).AsNoTracking() .ToListAsync(); var MenuFuntion = new MenuAccountOuput(); MenuFuntion.ListMenuChucNang = new List <GroupMenuChucNang>(); foreach (var itemGroud in listMenuGroud) { var menuFuntion = new GroupMenuChucNang(); menuFuntion.IdMenuGroud = itemGroud.Id; menuFuntion.NameGroup = itemGroud.GroupName; menuFuntion.SubFunctions = listMenu.Where(c => c.IdMenuGroud == itemGroud.Id).ToList(); MenuFuntion.ListMenuChucNang.Add(menuFuntion); } var listID_MenuFuntionAccount = await _context.MenuFunction_Account .Where(c => c.FK_AccountObject == idAccount) .Select(c => c.FK_MenuFunction) .AsNoTracking() .ToListAsync(); foreach (var item in listID_MenuFuntionAccount) { foreach (var itemMenu in MenuFuntion.ListMenuChucNang) { foreach (var itemSub in itemMenu.SubFunctions) { foreach (var itemFun in itemSub.MenuFunctions) { if (item == itemFun.IdMenuFuntion) { itemFun.IsCheck = true; } } } } } MenuFuntion.IdAccount = idAccount; return(MenuFuntion); } catch (Exception ex) { throw ex; } }