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); }