public IActionResult Load(long?ID, long?Type, long?SubMenuID, long?LanguageID) { GetMenus operation = new GetMenus(); operation.ID = ID; operation.SubMenuID = SubMenuID; operation.Type = Type; if (LanguageID.HasValue) { operation.LangID = LanguageID; } else { operation.LangID = 1; } var result = operation.QueryAsync().Result; if (result is ValidationsOutput) { return(Ok(new ApiResult <List <ValidationItem> >() { Data = ((ValidationsOutput)result).Errors })); } else { return(Ok((List <Menu>)result)); } }
public IActionResult LoadMenus(long?groupID, long?LanguageID) { GetGroupRelation operation = new GetGroupRelation(); operation.GroupID = groupID; GetMenus getMenus = new GetMenus(); getMenus.Type = 1; if (LanguageID.HasValue) { getMenus.LangID = LanguageID; operation.LangID = LanguageID; } else { getMenus.LangID = 1; operation.LangID = 1; } var System = (List <Menu>)getMenus.QueryAsync().Result; getMenus.Type = 2; var Modules = (List <Menu>)getMenus.QueryAsync().Result; getMenus.Type = 3; var SubModule = (List <Menu>)getMenus.QueryAsync().Result; getMenus.Type = 4; var Pages = (List <Menu>)getMenus.QueryAsync().Result; var groups = (List <GroupRelation>)operation.QueryAsync().Result; var relatedSystem = new List <System>(); foreach (var ss in System) { var system = new System(); system.ID = ss.ID; system.Name = ss.Name; system.children = Modules.Where(x => x.SubMenuID == ss.ID).ToList(); system.children = system.children.Select(c => { c.Parent = ss; return(c); }).ToList(); system.SubModuels = SubModule.Where(subModule => system.children.Where(x => x.ID == subModule.SubMenuID) != null).ToList(); system.Pages = Pages.Where(page => system.SubModuels.Where(x => x.ID == page.SubMenuID) != null).ToList(); system.OrderChildrens(); relatedSystem.Add(system); } var unRelatedSystem = GenrerateUnRelatedGroups(groups, relatedSystem); return(Ok(new { unRelatedMenu = unRelatedSystem, relatedMenu = relatedSystem })); }
public IActionResult LoadParent(long?ID, long?Type, long?SubMenuID, long?LanguageID) { if (SubMenuID.HasValue) { //First load the Type GetMenus operation = new GetMenus(); // the direct parent of menu GetMenus FirstParent = new GetMenus(); // the second parent of the related menu GetMenus SecondParent = new GetMenus(); // the thid parent of the related menu GetMenus ThirdParent = new GetMenus(); // the fourth parent of the related menu GetMenus FourthParent = new GetMenus(); operation.ID = ID; operation.Type = Type; if (LanguageID.HasValue) { operation.LangID = LanguageID; FirstParent.LangID = LanguageID; SecondParent.LangID = LanguageID; ThirdParent.LangID = LanguageID; FourthParent.LangID = LanguageID; } else { operation.LangID = 1; FirstParent.LangID = 1; SecondParent.LangID = 1; ThirdParent.LangID = 1; FourthParent.LangID = 1; } var result = operation.QueryAsync().Result; var Menus = (List <Menu>)result; List <Menu> MenusToReturn = new List <Menu>(); FirstParent.ID = SubMenuID; // Get the first parent of menu var FirstMenu = ((List <Menu>)FirstParent.QueryAsync().Result).FirstOrDefault(); // Get the second Parent of parent of menu SecondParent.ID = FirstMenu.SubMenuID; var secondMenu = ((List <Menu>)SecondParent.QueryAsync().Result).FirstOrDefault(); if (secondMenu != null) { // Get the third Parent ThirdParent.ID = secondMenu.SubMenuID; var ThirdMenu = ((List <Menu>)ThirdParent.QueryAsync().Result).FirstOrDefault(); if (ThirdMenu != null) { // Get fourth Parent FourthParent.ID = ThirdParent.SubMenuID; var FourthMenu = ((List <Menu>)FourthParent.QueryAsync().Result).FirstOrDefault(); if (FourthParent != null) { foreach (var item in Menus) { if (item.SubMenuID == ThirdMenu.ID && ThirdMenu.SubMenuID == secondMenu.ID && secondMenu.SubMenuID == FirstMenu.ID) { item.SystemMenuID = FirstMenu.SubMenuID; item.SystemMenuName = FirstMenu.Name; item.ModuleMenuID = secondMenu.ID; item.ModuleMenuName = secondMenu.Name; item.SubModuleMenuID = ThirdMenu.ID; item.SubModuleMenuName = ThirdMenu.Name; MenusToReturn.Add(item); } } } else { foreach (var item in Menus) { if (item.SubMenuID == secondMenu.ID && secondMenu.SubMenuID == FirstMenu.ID) { item.SystemMenuID = FirstMenu.ID; item.SystemMenuName = FirstMenu.Name; item.ModuleMenuID = secondMenu.ID; item.ModuleMenuName = secondMenu.Name; item.SubModuleMenuID = FirstMenu.ID; item.SubModuleMenuName = FirstMenu.Name; MenusToReturn.Add(item); } } } } else { foreach (var item in Menus) { if (item.SubMenuID == FirstMenu.ID) { item.SystemMenuID = FirstMenu.ID; item.SystemMenuName = FirstMenu.Name; item.ModuleMenuID = secondMenu.ID; item.ModuleMenuName = secondMenu.Name; MenusToReturn.Add(item); } } } } else { foreach (var item in Menus) { if (item.SubMenuID == FirstMenu.ID) { item.SystemMenuID = FirstMenu.ID; item.SystemMenuName = FirstMenu.Name; MenusToReturn.Add(item); } } } if (result is ValidationsOutput) { return(Ok(new ApiResult <List <ValidationItem> >() { Data = ((ValidationsOutput)result).Errors })); } else { return(Ok(MenusToReturn)); } } else { List <Menu> MenusToReturn = new List <Menu>(); //First load the Type GetMenus operation = new GetMenus(); // the direct parent of menu GetMenus FirstChild = new GetMenus(); // the second parent of the related menu GetMenus SecondChild = new GetMenus(); // the thid parent of the related menu GetMenus ThirdChild = new GetMenus(); // the fourth parent of the related menu GetMenus FourthChild = new GetMenus(); operation.Type = 1; var result = operation.QueryAsync().Result; var Menus = (List <Menu>)result; foreach (var item in Menus) { FirstChild.Type = 2; var firstChild = (List <Menu>)FirstChild.QueryAsync().Result; if (firstChild.Count > 0) { foreach (var child in firstChild) { item.ModuleMenuID = child.ID; item.ModuleMenuName = child.Name; SecondChild.Type = 3; var secondChild = (List <Menu>)SecondChild.QueryAsync().Result; if (secondChild.Count > 0) { foreach (var child2 in secondChild) { item.SubModuleMenuID = child2.ID; item.SubModuleMenuName = child2.Name; ThirdChild.Type = 4; var thirdChild = (List <Menu>)ThirdChild.QueryAsync().Result; if (thirdChild.Count > 0) { foreach (var child3 in thirdChild) { item.PageMenuID = child3.ID; item.PageMenuName = child3.Name; FourthChild.Type = 5; var fourthChild = (List <Menu>)FourthChild.QueryAsync().Result; if (fourthChild.Count > 0) { foreach (var child4 in fourthChild) { item.ActionMenuID = child4.ID; item.ActionMenuName = child4.Name; MenusToReturn.Add(item); } } else { MenusToReturn.Add(item); } } } else { MenusToReturn.Add(item); } } } else { MenusToReturn.Add(item); } } } else { MenusToReturn.Add(item); } } return(Ok(MenusToReturn)); } }
public IActionResult LoadActions(long?groupID, long?LanguageID) { GetGroupRelation operation = new GetGroupRelation(); GetMenus getMenus = new GetMenus(); getMenus.Type = 5; operation.GroupID = groupID; if (LanguageID.HasValue) { operation.LangID = LanguageID; getMenus.LangID = LanguageID; } else { operation.LangID = 1; getMenus.LangID = 1; } var result = operation.QueryAsync().Result; var Actions = (List <Menu>)getMenus.QueryAsync().Result; var groups = (List <GroupRelation>)result; List <Menu> returnedRelatedActions = new List <Menu>(); List <Menu> returnedUnRelatedActions = new List <Menu>(); if (groups.Count > 0) { foreach (var item in Actions) { foreach (var group in groups) { if (group.RefrenceID == item.ID) { bool alreadyExist = returnedRelatedActions.Contains(item); bool alreadyExistInSecondList = returnedUnRelatedActions.Contains(item); if (!alreadyExist && !alreadyExistInSecondList) { item.GroupRelationID = group.ID.Value; returnedRelatedActions.Add(item); } else { item.GroupRelationID = group.ID.Value; returnedRelatedActions.Add(item); returnedUnRelatedActions.Remove(item); } } else { bool alreadyExist = returnedUnRelatedActions.Contains(item); bool alreadyExistInFirstList = returnedRelatedActions.Contains(item); if (!alreadyExist && !alreadyExistInFirstList) { item.GroupRelationID = group.ID.Value; returnedUnRelatedActions.Add(item); } } } } } else { returnedUnRelatedActions = Actions; } if (result is ValidationsOutput) { return(Ok(new ApiResult <List <ValidationItem> >() { Data = ((ValidationsOutput)result).Errors })); } else { return(Ok(new { RelatedActions = returnedRelatedActions, UnRelatedActions = returnedUnRelatedActions })); } }