I have the following linq query which gives me values per day, however I've had to hardcode it as I can't work out how to change it into a loop:
var result = from c in groupedJobs
select new
{
Name = c,
Data = new int[] {
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[0]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[1]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[2]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[3]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[4]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[5]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[6]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[7]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[8]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[9]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[10]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[11]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[12]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[13]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[14]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[15]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[16]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[17]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[18]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[19]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[20]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[21]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[22]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[23]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[24]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[25]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[26]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[27]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[28]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[29]),
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==days[30]),
}
};
I'm trying to do something like this but the syntax is wrong:
select new ClaimProviderCountAggregate
{
Name = c,
Data = new int[] {
foreach (var item in daysInMonth)
{
groupedJobs.Count(d => d.ClaimProvider == c && d.Date.Day==item
}
More info:
Days is an array for the number of days in the current month
var daysInMonth = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
var days = Enumerable.Range(1, daysInMonth).ToArray();
This is my definition for groupedjobs
var groupedJobs = new List<ClaimProviderCount>();
public class ClaimProviderCount
{
public DateTime Date { get; set; }
public string ClaimProvider { get; set; }
}
c(and henceName) is not going to be a string, yet you are comparing it with one. I think what you want isName = c.ClaimProvider. Is that right?