public async Task <List <GetUserJurisdictionListOutputDto> > GetUserJurisdictionList(GetUserJurisdictionListInputDto input)
        {
            var list = new List <GetUserJurisdictionListOutputDto>();

            var moduleList = await db.UserModules.Include(m => m.Module).Where(m => m.UserTypeId == input.UserTypeId).Select(m => m.Module).ToListAsync();

            var menuList = await db.UserMenus.Include(m => m.Menu).Where(m => m.UserTypeId == input.UserTypeId).Select(m => m.Menu).ToListAsync();

            var elementList = await db.UserElements.Include(m => m.Element).Where(m => m.UserTypeId == input.UserTypeId).Select(m => m.Element).ToListAsync();

            var module = new List <ModuleOutputDto>();

            var menu = new List <MenuOutputDto>();

            var element = new List <ElementOutputDto>();

            foreach (var item in moduleList)
            {
                module.Add(new ModuleOutputDto
                {
                    DisplayOrder = item.DisplayOrder,
                    Key          = item.Key,
                    ModuleId     = item.Id.ToString(),
                    Name         = item.Name
                });
            }

            foreach (var item in menuList)
            {
                menu.Add(new MenuOutputDto
                {
                    DisplayOrder = item.DisplayOrder,
                    Key          = item.Key,
                    MenuId       = item.Id.ToString(),
                    ModuleId     = item.ModuleId.ToString(),
                    Title        = item.Title,
                    Url          = item.Url
                });
            }

            foreach (var item in elementList)
            {
                element.Add(new ElementOutputDto
                {
                    DisplayOrder = item.DisplayOrder,
                    ElementId    = item.Id.ToString(),
                    Key          = item.Key,
                    MenuId       = item.MenuId.ToString(),
                    Name         = item.Name,
                    Value        = item.Value
                });
            }

            list.Add(new GetUserJurisdictionListOutputDto
            {
                UserTypeId  = input.UserTypeId,
                ElementList = element,
                MenuList    = menu,
                ModuleList  = module
            });

            //list.Add(new GetUserJurisdictionListOutputDto()
            //{
            //    UserTypeId = input.UserTypeId,
            //    ElementList = elementList,
            //    MenuList = menuList,
            //    ModuleList = moduleList
            //});

            #region 旧
            //var list1 = new List<ModuleOutputDto>();

            //var list2 = new List<MenuOutputDto>();

            //var list3 = new List<ElementOutputDto>();

            //foreach (var item in moduleList)
            //{
            //    list2.Clear();
            //    list3.Clear();

            //    var menuList = await db.UserMenus.Include(m => m.Menu).Where(m => m.UserTypeId == input.UserTypeId && m.Menu.ModuleId == item.Id).Select(m => m.Menu).ToListAsync();

            //    foreach (var item1 in menuList)
            //    {

            //        var elementList = await db.UserElements.Include(m => m.Element).Where(m => m.UserTypeId == input.UserTypeId).Select(m => m.Element).ToListAsync();

            //        foreach (var item2 in elementList)
            //        {
            //            list3.Add(new ElementOutputDto
            //            {
            //                DisplayOrder = item2.DisplayOrder,
            //                ElementId = item2.Id.ToString(),
            //                Key = item2.Key,
            //                MenuId = item2.MenuId.ToString(),
            //                Name = item2.Name,
            //                Value = item2.Value
            //            });
            //        }

            //        list2.Add(new MenuOutputDto
            //        {
            //            MenuId = item1.Id.ToString(),
            //            DisplayOrder = item1.DisplayOrder,
            //            Element = list3,
            //            Key = item1.Key,
            //            ModuleId = item1.ModuleId.ToString(),
            //            Title = item1.Title,
            //            Url = item1.Url
            //        });

            //    }

            //    list1.Add(new ModuleOutputDto
            //    {
            //        ModuleId = item.Id.ToString(),
            //        DisplayOrder = item.DisplayOrder,
            //        Key = item.Key,
            //        Menu = list2,
            //        Name = item.Name
            //    });

            //}

            //list.Add(new GetUserJurisdictionListOutputDto
            //{
            //    Module = list1,
            //    UserTypeId = input.UserTypeId
            //});
            #endregion



            return(list);
        }
        public async Task <List <GetUserModuleListOutputDto> > GetUserModuleByUserTypeId(GetUserJurisdictionListInputDto input)
        {
            var list = new List <GetUserModuleListOutputDto>();

            #region 旧
            var list1 = new List <ModuleOutputDto>();

            var list2 = new List <MenuOutputDto>();

            var list3 = new List <ElementOutputDto>();

            var moduleList = await db.UserModules.Include(m => m.Module).Where(m => m.UserTypeId == input.UserTypeId).Select(m => m.Module).OrderBy(m => m.DisplayOrder).ToListAsync();

            foreach (var item in moduleList)
            {
                list2 = new List <MenuOutputDto>();


                var menuList = await db.UserMenus.Include(m => m.Menu).Where(m => m.UserTypeId == input.UserTypeId && m.Menu.ModuleId == item.Id).Select(m => m.Menu).OrderBy(m => m.DisplayOrder).ToListAsync();

                foreach (var item1 in menuList)
                {
                    list3 = new List <ElementOutputDto>();

                    var elementList = await db.UserElements.Include(m => m.Element).Where(m => m.UserTypeId == input.UserTypeId && m.Element.MenuId == item1.Id).Select(m => m.Element).OrderBy(m => m.DisplayOrder).ToListAsync();

                    foreach (var item2 in elementList)
                    {
                        list3.Add(new ElementOutputDto
                        {
                            DisplayOrder = item2.DisplayOrder,
                            ElementId    = item2.Id.ToString(),
                            Key          = item2.Key,
                            MenuId       = item2.MenuId.ToString(),
                            Name         = item2.Name,
                            Value        = item2.Value
                        });
                    }

                    list2.Add(new MenuOutputDto
                    {
                        MenuId       = item1.Id.ToString(),
                        DisplayOrder = item1.DisplayOrder,
                        Element      = list3,
                        Key          = item1.Key,
                        ModuleId     = item1.ModuleId.ToString(),
                        Title        = item1.Title,
                        Url          = item1.Url
                    });
                }

                list1.Add(new ModuleOutputDto
                {
                    ModuleId     = item.Id.ToString(),
                    DisplayOrder = item.DisplayOrder,
                    Key          = item.Key,
                    Menu         = list2,
                    Name         = item.Name
                });
            }

            list.Add(new GetUserModuleListOutputDto
            {
                Module     = list1,
                UserTypeId = input.UserTypeId
            });
            #endregion

            return(list);
        }