public JsonResult MainMenuItems_Read(string parentMenuName) { MainMenusGetRequest request = new MainMenusGetRequest(); request.ParentMenuName = parentMenuName; request.EmployeeID = GetEmployee().ID; GetMainMenusResponse mainMenus = new GetMainMenusResponse(); if (request.ParentMenuName != "CustomersView") { mainMenus = _mainMenuService.GetMainMenus(request); mainMenus.success = true; } // لینک منوی مشتریان else { IList <MainMenuView> mainMenuView = new List <MainMenuView>(); // Get queries from database GetQueriesResponse queriesResponse = this._queryService.GetQueries(new GetQueriesRequest() { EmployeeID = GetEmployee().ID }); // prepare data to send to client if (queriesResponse != null && queriesResponse.QueryViews != null) { foreach (var query in queriesResponse.QueryViews) { mainMenuView.Add(new MainMenuView() { SubmenuName = query.Title, SubmenuUrl = "Customer/Customers_Read?queryID=" + query.ID.ToString(), xType = query.xType, Icon = "Content/images/fam/customers.png", ID = query.ID, columns = new ColumnViews(query.Columns), PreLoad = query.PreLoad, CustomerCount = query.CustomerCount }); } } mainMenus.data = mainMenuView; mainMenus.success = true; mainMenus.TotalCount = queriesResponse.TotalCount; } return(Json(mainMenus, JsonRequestBehavior.AllowGet)); }
public GetMainMenusResponse GetMainMenus(MainMenusGetRequest request) { GetMainMenusResponse response = new GetMainMenusResponse(); try { Infrastructure.Querying.Query query = new Infrastructure.Querying.Query(); Criterion criterion = new Criterion("ParentMenuName", request.ParentMenuName, CriteriaOperator.Equal); query.Add(criterion); Sort sort = new Sort("SortOrder", true); IList <Sort> sortList = new List <Sort>(); sortList.Add(sort); Response <MainMenu> mainMenusResponse = _mainMenuRepository.FindByQuery(query, sortList); Infrastructure.Querying.Query query2 = new Infrastructure.Querying.Query(); Criterion criteria = new Criterion("Employee.ID", request.EmployeeID, CriteriaOperator.Equal); query2.Add(criteria); // Check permission Response <Permit> permits = _permitRepository.FindByQuery(query2); List <MainMenu> permitedMainMenu = new List <MainMenu>(); foreach (var item in mainMenusResponse.data) { Permit permit = permits.data.Where(w => w.PermitKey == item.PermissionKey).FirstOrDefault(); if ((permit != null && permit.Guaranteed) || item.PermissionKey == null) { if (item.Show) { permitedMainMenu.Add(item); } } } response.data = permitedMainMenu.ConvertToMainMenuViews(); response.TotalCount = permitedMainMenu.Count(); } catch (Exception ex) { throw; } return(response); }