// TODO Can not be the most efficient way public void ApplyFilterAndOrder(IList <string> accessRoles) { foreach (var reportCategory in ReportCategories) { foreach (var reportSubCategory in reportCategory.ReportSubCategories) { reportSubCategory.ReportDefinitions = reportSubCategory.ReportDefinitions .Where(f => accessRoles.Contains(f.RequiredAccessRole)) .ToList(); } reportCategory.ReportSubCategories = reportCategory.ReportSubCategories .Where(f => f.ReportDefinitions.Count != 0) .OrderBy(f => f.SubCategoryName) .ToList(); } ReportCategories = ReportCategories .Where(f => f.ReportSubCategories.Count != 0) .OrderBy(f => f.CategoryName) .ToList(); }
public HttpResponseMessage GetReportCategoryAllValues() // IEnumerable(Of String) { List <ReportCategories> objCat = new List <ReportCategories>(); DataSet Ds = SqlHelper.ExecuteDataset(strConn, CommandType.StoredProcedure, "SP_LoadReportCategoriesAll"); DataTable Dt = Ds.Tables[0]; if (Dt.Rows.Count > 0) { // Dim objtran As New Roles foreach (DataRow obj in Dt.Rows) { ReportCategories Lis = new ReportCategories(); Lis.CategoryId = obj["CategoryId"].ToString(); Lis.CategoryName = obj["CategoryName"].ToString(); // Lis.CategoryParent = obj["CategoryParent"].ToString(); objCat.Add(Lis); } return(Request.CreateResponse(HttpStatusCode.OK, objCat)); } else { ResponceMessage objErr = new ResponceMessage(); objErr.code = "1"; objErr.message = "ไม่มีข้อมูล"; return(Request.CreateResponse(HttpStatusCode.BadRequest, objErr)); } }