Example #1
0
        public async Task <MenuItemSearchModel> GetMenuItems(MenuItemSearchModel model)
        {
            var url    = CRMApiUri + "/MenuItem/GetMenuItems?" + GetFilterString(model);
            var result = await GetOdataResultFromApi(url);

            var searchResultCount = 0;

            if (result.Count != null)
            {
                int.TryParse(result.Count.ToString(), out searchResultCount);
            }
            model.TotalRows = searchResultCount;
            model.MenuItemSearchResult.Clear();
            try
            {
                model.MenuItemSearchResult.AddRange(result.Items.Select(item => JsonConvert.DeserializeObject <MenuItemDto>(item.ToString())));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }

            return(model);
        }
Example #2
0
        public async Task <IActionResult> MenuItemGrid(MenuItemSearchModel model)
        {
            model = InitializeMenuItemModel(model, model.ApplicationId);
            var result = await _employeeFacadeApiClient.GetMenuItems(model);

            return(PartialView(result));
        }
Example #3
0
        private RoleDto PopulatePermission(int applicationId, int roleId, List <int> fullaccessIds = null, List <int> readonlyaccessIds = null)
        {
            var searchApplicationRole = new ApplicationRoleSearchModel {
                ApplicationId = applicationId, RoleId = roleId, PageSize = int.MaxValue, SortColumn = "Id"
            };

            searchApplicationRole = _employeeFacadeApiClient.GetApplicationRoles(searchApplicationRole).Result;
            var menuItemSearch = new MenuItemSearchModel
            {
                PageSize      = int.MaxValue,
                SortColumn    = "DisplayName",
                ApplicationId = applicationId
            };

            menuItemSearch = _employeeFacadeApiClient.GetMenuItems(menuItemSearch).Result;
            var fullaccessPermissions            = searchApplicationRole.ApplicationRoleSearchResult.SelectMany(a => a.RolePermissions.Where(x => x.AccessLevel == AccessLevel.Full).Select(r => r.MenuItemId)).ToList();
            var readonlyPermissions              = searchApplicationRole.ApplicationRoleSearchResult.SelectMany(a => a.RolePermissions.Where(x => x.AccessLevel == AccessLevel.Readonly).Select(r => r.MenuItemId)).ToList();
            var menuItemsForAvailableForReadonly = menuItemSearch.MenuItemSearchResult.Where(x => !fullaccessPermissions.Contains(x.Id)).ToList();

            if (fullaccessIds != null)
            {
                menuItemsForAvailableForReadonly = menuItemsForAvailableForReadonly.Where(x => !fullaccessIds.Contains(x.Id)).ToList();
                fullaccessPermissions.AddRange(fullaccessIds);
            }
            var menuItemsForAvailableForFullaccess = menuItemSearch.MenuItemSearchResult.Where(x => !readonlyPermissions.Contains(x.Id)).ToList();

            if (readonlyaccessIds != null)
            {
                menuItemsForAvailableForFullaccess = menuItemsForAvailableForFullaccess.Where(x => !readonlyaccessIds.Contains(x.Id)).ToList();
                readonlyPermissions.AddRange(readonlyaccessIds);
            }
            var role = _employeeFacadeApiClient.GetRole(roleId).Result;

            role.ApplicationId = applicationId;
            role.Id            = roleId;
            role.ReadonlyPermisssionSelectList      = SelectedListHelper.GetPermissionSelectList(menuItemsForAvailableForReadonly, readonlyPermissions);
            role.FullAccessPermisssionSelectList    = SelectedListHelper.GetPermissionSelectList(menuItemsForAvailableForFullaccess, fullaccessPermissions);
            role.LinkedReadonlyRolePermissionsIds   = readonlyaccessIds?.Select(x => x.ToString()).ToList();
            role.LinkedFullAccessRolePermissionsIds = fullaccessIds?.Select(x => x.ToString()).ToList();
            return(role);
        }
Example #4
0
        private string GetFilterString(MenuItemSearchModel searchModel)
        {
            var filterString = string.Empty;

            if (searchModel != null)
            {
                if (searchModel.ApplicationId > 0)
                {
                    filterString = ODataFilterConstant.Filter + $"ApplicationId eq {searchModel.ApplicationId}";
                    if (!string.IsNullOrWhiteSpace(searchModel.FilterText))
                    {
                        if (!string.IsNullOrWhiteSpace(filterString))
                        {
                            filterString += $" and (contains(ControllerName,'{searchModel.FilterText}') eq true";
                            filterString += $" or contains(DisplayName,'{searchModel.FilterText}') eq true )";
                        }
                    }
                }
                AddPageSizeNumberAndSortingInFilterString(searchModel, ref filterString);
            }
            return(filterString);
        }
Example #5
0
 private MenuItemSearchModel InitializeMenuItemModel(MenuItemSearchModel model, int applicationId)
 {
     if (model == null)
     {
         model = new MenuItemSearchModel
         {
             SortColumn    = "Id",
             SortDirection = "Desc",
             PageSize      = 8,
             PageNumber    = 1
         };
     }
     else
     {
         if (string.IsNullOrWhiteSpace(model.SortColumn))
         {
             model.SortColumn    = "Id";
             model.SortDirection = "Desc";
         }
     }
     model.ApplicationId = applicationId;
     model.TargetGridId  = "ApplicationMenuItemGrid";
     return(model);
 }
Example #6
0
 public async Task <MenuItemSearchModel> GetMenuItems(MenuItemSearchModel model)
 {
     return(await _menuItemApiClient.GetMenuItems(model));
 }