Wanted Hilfe mit dem Code. Ich möchte meine Daten auf einem Balkendiagramm zeigen, das ich tun kann, aber ich wollte es professioneller und mit der Gruppe von Linq tun, aber ich war nicht in der Lage, dies zu tun. Ich verwende die Vorlage "Genetella Admin Layout" für Grafiken. Mein Code in dem Controller-Abschnitt ist als untenAnzeigen von Daten in Balkendiagramm mit Linq und Mvc
public ActionResult Home()
{
int jan = 0,feb = 0,mar = 0,apr = 0,may = 0,jun = 0,jul = 0 ,aug = 0 ,sep = 0,oct = 0 ,nov = 0,dec = 0;
ViewData["Freetrialcompanies"] = admin.getAllCompanies();
List<string> month = new List<string>();
foreach (var cmpMonth in ViewData["Freetrialcompanies"] as IEnumerable<IntuitiveCrm.ViewModels.CompanyMasterViewModel>)
{
var mth = DateTimeOffset.Parse((cmpMonth.CreatedDate).ToString()).ToString("MMMM");
month.Add(mth);
switch (mth)
{
case "January":
jan = jan + 1;
var Janmth = jan;
if(Janmth != 0)
{
ViewData["jan"] = Janmth;
}
else
{
ViewData["jan"] = 0;
}
break;
case "February":
feb = feb + 1;
var Febmth = feb;
if (Febmth != 0)
{
ViewData["feb"] = Febmth;
}
else
{
ViewData["feb"] = 0;
}
break;
case "March":
mar = mar + 1;
var Marmth = mar;
if (Marmth != 0)
{
ViewData["mar"] = Marmth;
}
else
{
ViewData["mar"] = 0;
}
break;
case "April":
apr = apr + 1;
var Aprmth = apr;
if (Aprmth != 0)
{
ViewData["apr"] = Aprmth;
}
else
{
ViewData["apr"] = 0;
}
break;
case "May":
may = may + 1;
var Maymth = may;
if (Maymth != 0)
{
ViewData["may"] = Maymth;
}
else
{
ViewData["may"] = 0;
}
break;
case "June":
jun = jun + 1;
var Junmth = jun;
if (Junmth != 0)
{
ViewData["jun"] = Junmth;
}
else
{
ViewData["jun"] = 0;
}
break;
case "July":
jul = jul + 1;
var Julmth = jul;
if (Julmth != 0)
{
ViewData["jul"] = Julmth;
}
else
{
ViewData["jul"] = 0;
}
break;
case "August":
aug = aug + 1;
var Augmth = aug;
if (Augmth != 0)
{
ViewData["aug"] = Augmth;
}
else
{
ViewData["aug"] = 0;
}
break;
case "September":
sep = sep + 1;
var Sepmth = sep;
if (Sepmth != 0)
{
ViewData["sep"] = Sepmth;
}
else
{
ViewData["sep"] = 0;
}
break;
case "October":
oct = oct + 1;
var Octmth = oct;
if (Octmth != 0)
{
ViewData["oct"] = Octmth;
}
else
{
ViewData["oct"] = 0;
}
break;
case "November":
nov = nov + 1;
var Novmth = nov;
if (Novmth != 0)
{
ViewData["nov"] = Novmth;
}
else
{
ViewData["nov"] = 0;
}
break;
case "December":
dec = dec + 1;
var Decmth = dec;
if (Decmth != 0)
{
ViewData["dec"] = Decmth;
}
else
{
ViewData["dec"] = 0;
}
break;
}
}
ViewData["Mnth"] = month;
return View();
}
In diesen i die Monatsnamen von Erstellungsdatum immer bin, die in Datetimeformat in „mth“ gespeichert ist und der Absonderungs es die Zählung für immer.
Mein cs-Dateicode ist wie folgt für admin.getAllCompanies();
public List<CompanyMasterViewModel> getAllCompanies()
{
var taskData = (from t in Comp.GetAll()
join p in plan.GetAll()
on t.PlanId equals p.PlanId
join f in freeTrial.GetAll()
on t.CompanyId equals f.CompanyId
where t.Status == 1
select new CompanyMasterViewModel
{
CompanyName = t.CompanyName,
PlanName = p.PlanName,
Email = t.Email,
CreatedDate = f.CreatedDate,
EndDate = f.EndDate,
Status = t.Status,
}).ToList<CompanyMasterViewModel>();
return taskData;
}
dies mit i der folgenden Balkendiagramm am Erzeugen enter image description here
Kann jemand mir helfen, besser diesen Code und wie Linq-Abfrage zu schreiben, so dass ich CreatedDate bekommen (es in Datetime gespeichert ist) in orderby mit nur einem Monat.
Vielen Dank.