Example #1
0
        public static DayVM GetVM(Day day)
        {
            var vm = new DayVM();

            vm.DayId       = day.DayId;
            vm.PersonnelId = day.PersonnelId;

            persianDateTime = new PersianDateTime(day.Date);
            vm.DayName      = persianDateTime.ToString("dddd d MMMM yyyy");
            vm.DayShortName = persianDateTime.ToString("dddd d");

            vm.TimeType     = day.TimeType;
            vm.TimeTypeName = EnumName.GetWorkTimeType(day.TimeType);
            vm.Spans        = AttendanceSpanVM.GetVMs(day.AttendanceSpans.ToList());
            //
            vm.Duration = new DurationVM();
            foreach (var sp in vm.Spans)
            {
                if (sp.TimeType == WorkTimeType.AtWork)
                {
                    vm.Duration.DurationOfWorkSecends += sp.DurationSecends;
                }

                if (sp.TimeType == WorkTimeType.LeaveWork)
                {
                    vm.Duration.DurationOfLeaveSecends += sp.DurationSecends;
                }

                if (sp.TimeType == WorkTimeType.Mission)
                {
                    vm.Duration.DurationOfMisiionSecends += sp.DurationSecends;
                }

                if (sp.TimeType == WorkTimeType.OverTime)
                {
                    vm.Duration.DurationOfOverTimeSecends += sp.DurationSecends;
                }
            }

            vm.Duration.DurationOfWork     = Environment.Convert.TimeSpanToReadableString(TimeSpan.FromSeconds(vm.Duration.DurationOfWorkSecends));
            vm.Duration.DurationOfLeave    = Environment.Convert.TimeSpanToReadableString(TimeSpan.FromSeconds(vm.Duration.DurationOfLeaveSecends));
            vm.Duration.DurationOfMisiion  = Environment.Convert.TimeSpanToReadableString(TimeSpan.FromSeconds(vm.Duration.DurationOfMisiionSecends));
            vm.Duration.DurationOfOverTime = Environment.Convert.TimeSpanToReadableString(TimeSpan.FromSeconds(vm.Duration.DurationOfOverTimeSecends));

            //
            return(vm);
        }
        public static AttendanceSpanVM GetVM(AttendanceSpan span)
        {
            var vm = new AttendanceSpanVM();

            vm.AttendanceSpanId = span.AttendanceSpanId;
            vm.TimeType         = span.TimeType;
            vm.TimeTypeName     = EnumName.GetWorkTimeType(span.TimeType);

            perDtStart   = new PersianDateTime(span.StartAttendanceTime.DateTime);
            vm.StartTime = perDtStart.ToString("hh:mm:ss tt");

            if (span.EndAttendanceTime != null)
            {
                perDtEnd   = new PersianDateTime(span.EndAttendanceTime.DateTime);
                vm.EndTime = perDtEnd.ToString("hh:mm:ss tt");

                TimeSpan sp = span.EndAttendanceTime.DateTime.Subtract(span.StartAttendanceTime.DateTime);
                vm.DurationSecends = System.Convert.ToInt64(sp.TotalSeconds);
                vm.Duration        = Environment.Convert.TimeSpanToReadableString(sp);
            }

            return(vm);
        }