I need to simplify this code as well as a Linq query:
var data = from linq_row in trend_data.AsEnumerable()
group linq_row by linq_row["questionnaire_uniquename"] into g
select new
{
questionnaire_uniquename = g.First<DataRow>()["questionnaire_uniquename"].ToString(),
question_name = g.First<DataRow>()["question_name"].ToString(),
question_score_type = g.First<DataRow>()["question_score_type"].ToString(),
sparkline_data = g.Select(s => s["trend_score"].ToString()).ToArray()
}; ;
int rowspan = 2;
Based on some condition, I am adding just adding filtering to an existing query and modifying the selected query here. Instead of selecting question_name
, I want to select response_label
from a data table.
if (criteria.CorporateSummaryExpand == "1")
{
data =
from linq_row in trend_data.AsEnumerable()
group linq_row by linq_row["questionnaire_uniquename"] into g
where g.First<DataRow>()["questionnaire_uniquename"].ToString() != "[Questionnaire].[Questionnaire].[Question].&[OFSP]&[OFSP5000]"
&& g.First<DataRow>()["questionnaire_uniquename"].ToString() != "[Questionnaire].[Questionnaire].[Question].&[OFSP]&[OFSP5008]"
&& g.First<DataRow>()["questionnaire_uniquename"].ToString() != "[Questionnaire].[Questionnaire].[Question].&[OFSP]&[OFSP1130]"
select new
{
questionnaire_uniquename = g.First<DataRow>()["questionnaire_uniquename"].ToString(),
question_name = g.First<DataRow>()["response_label"].ToString(),
question_score_type = g.First<DataRow>()["question_score_type"].ToString(),
sparkline_data = g.Select(s => s["trend_score"].ToString()).ToArray()
};
rowspan = 4;
}