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); }