Пример #1
0
        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));
        }
Пример #2
0
        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);
        }