コード例 #1
0
        //To get access rights
        public IHttpActionResult GetRights(int roleID)
        {
            try
            {
                RolesData roleRightsData = new RolesData();
                var       rights         = roleRightsData.GetRights(roleID);

                var workspaceReports = roleRightsData.GetWorkspacesAndReports();

                //WorkSpaceData workSpaceData = new WorkSpaceData();
                //var workSpaceAndReports = workSpaceData.GetPowerBIWorkspace();

                List <RoleRightsMappingDTO> roleRightsMappingsList = new List <RoleRightsMappingDTO>();

                foreach (var b in workspaceReports)
                {
                    RoleRightsMappingDTO a = new RoleRightsMappingDTO();
                    //a.ID = 0;
                    a.WorkspaceID   = b.WorkspaceID;
                    a.WorkspaceName = b.WorkspaceName;
                    a.ReportID      = b.ReportID;
                    a.ReportName    = b.ReportName;
                    roleRightsMappingsList.Add(a);
                }
                List <RoleRightsMappingDTO> updatedRoleRightsMappingsList = new List <RoleRightsMappingDTO>();

                foreach (var s in roleRightsMappingsList)
                {
                    updatedRoleRightsMappingsList.Add(s);
                }

                foreach (var l1 in roleRightsMappingsList)
                {
                    bool existed = false;
                    foreach (var l2 in rights)
                    {
                        if (l1.WorkspaceID == l2.WorkspaceID && l1.ReportID == l2.ReportID)
                        {
                            existed = true;
                            break;
                        }
                    }
                    if (existed)
                    {
                        updatedRoleRightsMappingsList.Remove(l1);
                    }
                }

                rights = rights.Concat(updatedRoleRightsMappingsList);
                return(Ok(rights));
            }
            catch (Exception ex)
            {
                return(BadRequest("Could not fetch rights"));
            }
        }