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"));
        }
Example #2
0
        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;
            }
        }