//pass the chart object as json to the index view to craete a chart public async System.Threading.Tasks.Task <JsonResult> LeavesAppliedByMonth() { using (HttpClient client = new HttpClient()) { client.BaseAddress = new Uri(BaseUrl); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/Json")); var response = await client.GetAsync("Leaves/LeavesAppliedMonthly"); var responseData = response.Content.ReadAsStringAsync().Result; appliedLeavesPercentViewMonthly LeavePercentMonth = JsonConvert.DeserializeObject <appliedLeavesPercentViewMonthly>(responseData); Chart _chart = new Chart(); _chart.labels = new string[] { "January", "Febrauary", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; _chart.datasets = new List <Datasets>(); List <Datasets> _dataSet = new List <Datasets>(); _dataSet.Add(new Datasets() { label = "Applied Leaves by Month", data = new int[] { (int)Math.Round(LeavePercentMonth.January, 0), (int)Math.Round(LeavePercentMonth.February, 0), (int)Math.Round(LeavePercentMonth.March, 0), (int)Math.Round(LeavePercentMonth.April, 0), (int)Math.Round(LeavePercentMonth.May, 0), (int)Math.Round(LeavePercentMonth.June, 0), (int)Math.Round(LeavePercentMonth.July, 0), (int)Math.Round(LeavePercentMonth.August, 0), (int)Math.Round(LeavePercentMonth.September, 0), (int)Math.Round(LeavePercentMonth.October, 0), (int)Math.Round(LeavePercentMonth.November, 0), (int)Math.Round(LeavePercentMonth.December, 0) }, backgroundColor = new string[] { "#f4424b", "#5e4e84", "#5d7572", "#d2d615", "#1b0a66", "#05af57", "#177209", "#afe25d", "#9aa870", "#a2a2d8", "#e80909", "#5fa86d" }, borderColor = new string[] { "#00ff00", "#0000FF" }, borderWidth = "1" }); _chart.datasets = _dataSet; return(Json(_chart, JsonRequestBehavior.AllowGet)); } }
public HttpResponseMessage GetMonthly() { try { using (ebuilderEntities entities = new ebuilderEntities()) { var allDutyLeaves = entities.duty_leave.Where(l => l.date.Year == DateTime.Now.Year).ToList(); var dutyLeavePercentageByMonth = new appliedLeavesPercentViewMonthly(); for (int month = 1; month <= 12; month++) { switch (month) { case 1: int leaveCountJan = allDutyLeaves.Where(l => l.date.Month == 1).ToList().Count; dutyLeavePercentageByMonth.January = Math.Round(((double)leaveCountJan / allDutyLeaves.Count * 100), 2); break; case 2: int leaveCountFeb = allDutyLeaves.Where(l => l.date.Month == 2).ToList().Count; dutyLeavePercentageByMonth.February = Math.Round(((double)leaveCountFeb / allDutyLeaves.Count * 100), 2); break; case 3: int leaveCountMar = allDutyLeaves.Where(l => l.date.Month == 3).ToList().Count; dutyLeavePercentageByMonth.March = Math.Round(((double)leaveCountMar / allDutyLeaves.Count * 100), 2); break; case 4: int leaveCountApr = allDutyLeaves.Where(l => l.date.Month == 4).ToList().Count; dutyLeavePercentageByMonth.April = Math.Round(((double)leaveCountApr / allDutyLeaves.Count * 100), 2); break; case 5: int leaveCountMay = allDutyLeaves.Where(l => l.date.Month == 5).ToList().Count; dutyLeavePercentageByMonth.May = Math.Round(((double)leaveCountMay / allDutyLeaves.Count * 100), 2); break; case 6: int leaveCountJun = allDutyLeaves.Where(l => l.date.Month == 6).ToList().Count; dutyLeavePercentageByMonth.June = Math.Round(((double)leaveCountJun / allDutyLeaves.Count * 100), 2); break; case 7: int leaveCountJul = allDutyLeaves.Where(l => l.date.Month == 7).ToList().Count; dutyLeavePercentageByMonth.July = Math.Round(((double)leaveCountJul / allDutyLeaves.Count * 100), 2); break; case 8: int leaveCountAug = allDutyLeaves.Where(l => l.date.Month == 8).ToList().Count; dutyLeavePercentageByMonth.August = Math.Round(((double)leaveCountAug / allDutyLeaves.Count * 100), 2); break; case 9: int leaveCountSep = allDutyLeaves.Where(l => l.date.Month == 9).ToList().Count; dutyLeavePercentageByMonth.September = Math.Round(((double)leaveCountSep / allDutyLeaves.Count * 100), 2); break; case 10: int leaveCountOct = allDutyLeaves.Where(l => l.date.Month == 10).ToList().Count; dutyLeavePercentageByMonth.October = Math.Round(((double)leaveCountOct / allDutyLeaves.Count * 100), 2); break; case 11: int leaveCountNov = allDutyLeaves.Where(l => l.date.Month == 11).ToList().Count; dutyLeavePercentageByMonth.November = Math.Round(((double)leaveCountNov / allDutyLeaves.Count), 2); break; case 12: int leaveCountDec = allDutyLeaves.Where(l => l.date.Month == 12).ToList().Count; dutyLeavePercentageByMonth.December = Math.Round(((double)leaveCountDec / allDutyLeaves.Count * 100), 2); break; } } return(Request.CreateResponse(HttpStatusCode.OK, dutyLeavePercentageByMonth)); } } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex)); } }