public IHttpActionResult GetCharts(int dismissalId)
        {
            //for personnel dismissal create/update page charts
            var chartInfo = _dismissalService.GetChartInfo(dismissalId);

            return(Ok(chartInfo));
        }
Exemple #2
0
        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
            }));
        }