public IHttpActionResult GetCharts(int dismissalId) { //for personnel dismissal create/update page charts var chartInfo = _dismissalService.GetChartInfo(dismissalId); return(Ok(chartInfo)); }
private async Task <IHttpActionResult> LoadPersonnelDashboard() { string username = User.Identity.Name; var codeExists = _personnelService.CodeExists(username); if (codeExists) { //left widget var entrances = await _dashboardService.GetSummary(username, 10); //chart data var thisMonthChartData = await _dashboardService .GetChartData(username, DateTime.Now.AddDays(-10), DateTime.Now); var prevMonthChartData = await _dashboardService .GetChartData(username, DateTime.Now.AddMonths(-1).AddDays(-10), DateTime.Now.AddMonths(-1)); //bottom widget var personnelDismissalInfo = await _personnelDismissalService .GetChartInfo(username, (int)DismissalType.Demanded); var limitChartInfo = _dismissalService.GetChartInfo((int)DismissalType.Demanded); if (personnelDismissalInfo.DayData.UsedDismissalDuration.Days > 0) { personnelDismissalInfo.DayData.UsedDismissalPercentage = "100"; } else if (personnelDismissalInfo.DayData.UsedDismissalDuration.Hours > 0) { personnelDismissalInfo.DayData.UsedDismissalPercentage = (((float)personnelDismissalInfo.DayData.UsedDismissalDuration.Hours / 24) * 100) .ToString("n2"); } else { personnelDismissalInfo.DayData.UsedDismissalPercentage = "0.00"; } personnelDismissalInfo.MonthData.UsedDismissalPercentage = (((float)personnelDismissalInfo.MonthData.UsedDismissalDuration.GetSecondsFromDuration() / limitChartInfo.LimitValueForMonth.GetSecondsFromDuration()) * 100).ToString("n2"); personnelDismissalInfo.YearData.UsedDismissalPercentage = (((float)personnelDismissalInfo.YearData.UsedDismissalDuration.GetSecondsFromDuration() / limitChartInfo.LimitValueForYear.GetSecondsFromDuration()) * 100).ToString("n2"); personnelDismissalInfo.TotalData.UsedDismissalPercentage = personnelDismissalInfo.YearData.UsedDismissalPercentage; return(Ok(new { showManagerDashboard = false, entrances, thisMonthChartData, prevMonthChartData, personnelDismissalInfo })); } return(Ok()); }
public async Task <IHttpActionResult> GetChartsInfo(int dismissalId) { //the logic shoud not be in controller!!! var dismissal = _dismissalService.GetById(dismissalId); if (dismissal == null) { return(BadRequest()); } var usedChartInfo = await _personnelDismissalService .GetChartInfo(User.Identity.Name, dismissalId); var limitChartInfo = _dismissalService.GetChartInfo(dismissalId); switch (dismissal.DismissalType) { case DismissalType.Demanded: usedChartInfo.MonthData.UsedDismissalPercentage = (((float)usedChartInfo.MonthData.UsedDismissalDuration.GetSecondsFromDuration() / limitChartInfo.LimitValueForMonth.GetSecondsFromDuration()) * 100).ToString("n2"); usedChartInfo.YearData.UsedDismissalPercentage = (((float)usedChartInfo.YearData.UsedDismissalDuration.GetSecondsFromDuration() / limitChartInfo.LimitValueForYear.GetSecondsFromDuration()) * 100).ToString("n2"); break; case DismissalType.Sickness: usedChartInfo.YearData.UsedDismissalPercentage = (((float)usedChartInfo.YearData.UsedDismissalDuration.GetSecondsFromDuration() / limitChartInfo.LimitValueForYear.GetSecondsFromDuration()) * 100).ToString("n2"); break; case DismissalType.WithoutSalary: usedChartInfo.MonthData.UsedDismissalPercentage = (((float)usedChartInfo.MonthData.UsedDismissalDuration.GetSecondsFromDuration() / limitChartInfo.LimitValueForMonth.GetSecondsFromDuration()) * 100).ToString("n2"); break; case DismissalType.Encouragement: break; case DismissalType.BreastFeeding: usedChartInfo.DayData.UsedDismissalPercentage = (((float)usedChartInfo.DayData.UsedDismissalDuration.GetSecondsFromDuration() / limitChartInfo.LimitValueForDay.GetSecondsFromDuration()) * 100).ToString("n2"); usedChartInfo.TotalData.UsedDismissalPercentage = (((float)usedChartInfo.TotalData.UsedDismissalDuration.GetSecondsFromDuration() / limitChartInfo.LimitValueForTotal.GetSecondsFromDuration()) * 100).ToString("n2"); break; case DismissalType.Marriage: case DismissalType.ChildBirth: case DismissalType.DeathOfRelatives: usedChartInfo.TotalData.UsedDismissalPercentage = (((float)usedChartInfo.TotalData.UsedDismissalDuration.GetSecondsFromDuration() / limitChartInfo.LimitValueForTotal.GetSecondsFromDuration()) * 100).ToString("n2"); break; } return(Ok(new { usedChartInfo, limitChartInfo, dismissalType = dismissal.DismissalType })); }