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 <ActionResult <AtResult <string> > > SaveMenuAccount([FromBody] MenuAccountInput input)
        {
            if (await CheckPermission(_context))
            {
                try
                {
                    var output = await _logicMenu.SaveMenuAccountAsync(input, UserId);

                    return(new AtResult <string>(output));
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            else
            {
                return(new AtResult <string>(AtNotify.KhongCoQuyenTruyCap));
            }
        }
示例#3
0
        public async Task <string> SaveMenuAccountAsync(MenuAccountInput input, string userId)
        {
            try
            {
                var now = GetDateTimeFromServer();

                var list_MenuFuntionAccount = await _context.MenuFunction_Account
                                              .Where(c => c.FK_AccountObject == input.IdAccount)
                                              .AsNoTracking()
                                              .ToListAsync();

                var listFuntion = new List <ListMenuFuntion>();
                var newItem     = new List <MenuFunction_Account>();
                foreach (var item in input.ListMenuChucNang)
                {
                    foreach (var itemSub in item.SubFunctions)
                    {
                        if (itemSub.MenuFunctions != null)
                        {
                            listFuntion.AddRange(itemSub.MenuFunctions.Where(c => c.IsCheck == true).ToList());
                        }
                    }
                }



                foreach (var itemfunAccount in list_MenuFuntionAccount)
                {
                    var check = listFuntion.FirstOrDefault(c => c.IdMenuFuntion == itemfunAccount.FK_MenuFunction);
                    if (check == null)
                    {
                        _context.MenuFunction_Account.Remove(itemfunAccount);
                    }
                }


                foreach (var itemFuntion in listFuntion)
                {
                    var check = list_MenuFuntionAccount
                                .FirstOrDefault(c => c.FK_AccountObject == input.IdAccount &&
                                                c.FK_MenuFunction == itemFuntion.IdMenuFuntion);

                    if (check == null)
                    {
                        newItem.Add(new MenuFunction_Account
                        {
                            FK_AccountObject = input.IdAccount,
                            FK_MenuFunction  = itemFuntion.IdMenuFuntion,
                            CreateDate       = now,
                        });
                    }
                }
                await _context.MenuFunction_Account.AddRangeAsync(newItem);

                await _context.SaveChangesAsync();
                await WrtiteAudittingLog(new MSC_AudittingLog { Description = "Phân quyền theo Account ID: " + input.IdAccount, UserID = userId }, AtSerialNoConts.CODE_LOGC_UPDATE);

                return(input.IdAccount);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }