Example #1
0
        private async Task <EnterExitRanges> GetRangesOf(string username, List <int> enters, List <int> exits, DateTime start, DateTime end)
        {
            var result = new EnterExitRanges
            {
                EnterTimers = await GetRangeEnterTimers(username, enters, start, end),
                ExitTimers  = await GetRangeExitTimers(username, exits, start, end)
            };

            return(result);
        }
Example #2
0
        private ChartSerie <List <long?> > GetMonthlyTimesSerie(EnterExitRanges timers)
        {
            var dict = new Dictionary <int, List <DateTime?> >();

            for (var i = 1; i < _timeBuilder.GetMonths(); i++)
            {
                dict.Add(i, new List <DateTime?> {
                    null, null
                });
            }

            foreach (var timer in timers.EnterTimers)
            {
                dict[timer.Date.Day][0] = _timeBuilder.UpdateTime(_timeGetter.Now, timer.Time);
            }

            foreach (var timer in timers.ExitTimers)
            {
                dict[timer.Date.Day][1] = _timeBuilder.UpdateTime(_timeGetter.Now, timer.Time);
            }

            var chartSerie = new ChartSerie <List <long?> >();

            for (var i = 1; i < _timeBuilder.GetMonths(); i++)
            {
                var inst = dict[i];

                var extremes = CalculateExtremes(inst);

                if (extremes.Item1.HasValue && extremes.Item2.HasValue)
                {
                    chartSerie.data.Add(new List <long?>()
                    {
                        _timeBuilder.ToJavascriptTicks(extremes.Item1.Value,
                                                       _timeZoneInfo),
                        _timeBuilder.ToJavascriptTicks(extremes.Item2.Value,
                                                       _timeZoneInfo)
                    });
                }
                else
                {
                    chartSerie.data.Add(new List <long?> {
                        null, null
                    });
                }
            }
            return(chartSerie);
        }
Example #3
0
        private ChartSerie <double?> GetMonthlyLunchTotalsSerie(EnterExitRanges timers)
        {
            var enterExitsLunch = new Dictionary <int, List <DateTime?> >();

            for (var i = 1; i < _timeBuilder.GetMonths(); i++)
            {
                enterExitsLunch.Add(i, new List <DateTime?>()
                {
                    null, null
                });
            }

            foreach (var timer in timers.EnterTimers)
            {
                enterExitsLunch[timer.Date.Day][0] = _timeBuilder.UpdateTime(_timeGetter.Now, timer.Time);
            }

            foreach (var timer in timers.ExitTimers)
            {
                enterExitsLunch[timer.Date.Day][1] = _timeBuilder.UpdateTime(_timeGetter.Now, timer.Time);
            }

            var chartSerie = new ChartSerie <double?>();

            for (var i = 1; i < _timeBuilder.GetMonths(); i++)
            {
                var enterExitLunch         = enterExitsLunch[i];
                var enterExitLunchExtremes = CalculateExtremes(enterExitLunch);

                if (enterExitLunchExtremes.Item1.HasValue && enterExitLunchExtremes.Item2.HasValue)
                {
                    var enterExitLunchDiff = (enterExitLunchExtremes.Item2.Value - enterExitLunchExtremes.Item1.Value);
                    chartSerie.data.Add(enterExitLunchDiff.Hours + (enterExitLunchDiff.Minutes / 100d));
                }

                else
                {
                    chartSerie.data.Add(null);
                }
            }
            return(chartSerie);
        }
Example #4
0
        private ChartSerie <List <long?> > GetWeeklyTimesSerie(EnterExitRanges timers)
        {
            var dict = _timeBuilder.GetDayOfWeeks()
                       .ToDictionary(dayOfWeek => dayOfWeek, dayOfWeek => new List <DateTime?> {
                null, null
            });

            foreach (var timer in timers.EnterTimers)
            {
                dict[timer.Date.DayOfWeek][0] = _timeBuilder.UpdateTime(_timeGetter.Now, timer.Time);
            }

            foreach (var timer in timers.ExitTimers)
            {
                dict[timer.Date.DayOfWeek][1] = _timeBuilder.UpdateTime(_timeGetter.Now, timer.Time);
            }

            var chartSerie = new ChartSerie <List <long?> >();

            foreach (var dayOfWeek in _timeBuilder.GetDayOfWeeks())
            {
                var inst = dict[dayOfWeek];

                var extremes = CalculateExtremes(inst);

                if (extremes.Item1.HasValue && extremes.Item2.HasValue)
                {
                    chartSerie.data.Add(new List <long?>()
                    {
                        _timeBuilder.ToJavascriptTicks(extremes.Item1.Value, _timeZoneInfo),
                        _timeBuilder.ToJavascriptTicks(extremes.Item2.Value, _timeZoneInfo)
                    });
                }
                else
                {
                    chartSerie.data.Add(new List <long?> {
                        null, null
                    });
                }
            }
            return(chartSerie);
        }
Example #5
0
        private ChartSerie <double?> GetWeeklyLunchTotalsSerie(EnterExitRanges timers)
        {
            var enterExitsLunch = _timeBuilder.GetDayOfWeeks().ToDictionary(dayOfweek => dayOfweek, dayOfweek => new List <DateTime?>()
            {
                null, null
            });

            foreach (var timer in timers.EnterTimers)
            {
                enterExitsLunch[timer.Date.DayOfWeek][0] = _timeBuilder.UpdateTime(_timeGetter.Now, timer.Time);
            }

            foreach (var timer in timers.ExitTimers)
            {
                enterExitsLunch[timer.Date.DayOfWeek][1] = _timeBuilder.UpdateTime(_timeGetter.Now, timer.Time);
            }

            var chartSerie = new ChartSerie <double?>();

            foreach (var dayOfWeek in _timeBuilder.GetDayOfWeeks())
            {
                var enterExitLunch         = enterExitsLunch[dayOfWeek];
                var enterExitLunchExtremes = CalculateExtremes(enterExitLunch);

                if (enterExitLunchExtremes.Item1.HasValue && enterExitLunchExtremes.Item2.HasValue)
                {
                    var enterExitLunchDiff = (enterExitLunchExtremes.Item2.Value - enterExitLunchExtremes.Item1.Value);
                    chartSerie.data.Add(enterExitLunchDiff.Hours + (enterExitLunchDiff.Minutes / 100d));
                }
                else
                {
                    chartSerie.data.Add(null);
                }
            }
            return(chartSerie);
        }