public static String ItemiseWorkday2(Workday workday) { StringBuilder sb = new StringBuilder(); DurationConverter dc = new DurationConverter(); sb.Append("<h1 style=\"font-size: 46px; font-weight: normal; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\">" + "timecard for " + workday.StartTime.ToString("D") + "</h1>\n" + "<h2 style=\"font-weight: normal; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\">" + "Generated by <a href=\"BLAH BLAH BLAH\">Timecard</a> for Windows Phone 7</h2>\n"); sb.Append("<div style=\"width: 250px; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\" >\n"); sb.Append("<div style=\"font-size: 25px; font-weight: bold; color: #1BA1E2;\">" + workday.StartTime.ToString("t") + "</div>\n"); sb.Append("<div style=\"width: 130px; font-size: small; text-align: right; color: #000000;\">Start Work</div>\n"); TimeSpan TotalDuration = workday.EndTime - workday.StartTime; foreach (PunchSegment segment in workday.WorkSegments) { if (segment.SegmentCategory == Category.Break) { TotalDuration -= segment.Duration; } sb.Append("<div style=\"" + Cat2Style(segment.SegmentCategory) + "\">\n"); sb.Append("<div style=\"font-size: 25px; font-weight: bold;\">" + segment.StartTime.ToString("t") + "</div>\n"); sb.Append("<div style=\"width: 130px; font-size: small; text-align: right; color: #000000;\">" + segment.StartLabel + "</div>\n"); sb.Append("<div style=\"margin-left: 20px; padding: 15px; border-left-width: medium; border-left-style: solid; vertical-align: middle;\">\n<div style=\"color: #000000;\">"); sb.Append(dc.Convert(segment.Duration, typeof(String), null, null) + " = " + segment.Duration.TotalHours.ToString("F") + " hrs"); sb.Append("</div></div>"); sb.Append("<div style=\"font-size: 25px; font-weight: bold;\">" + segment.EndTime.ToString("t") + "</div>\n"); sb.Append("<div style=\"width: 130px; font-size: small; text-align: right; color: #000000;\">" + segment.EndLabel + "</div></div>\n"); } sb.Append("<div style=\"font-size: 25px; font-weight: bold; color: #1BA1E2;\">" + workday.EndTime.ToString("t") + "</div>\n"); sb.Append("<div style=\"width: 130px; font-size: small; text-align: right; color: #000000;\">End Work</div>\n"); sb.Append("<div style=\"color: #000000; border-top: thin solid black; margin-top: 20px; text-align: right;\"><div style=\"width: 130px; font-size: small; text-align: right; color: #000000;\">Total Work Time:</div>" + dc.Convert(TotalDuration, typeof(String), null, null) + " = " + TotalDuration.TotalHours.ToString("F") + " hrs" + "</div>\n</div>"); return sb.ToString(); }
public static String ItemiseWorkday(Workday workday) { StringBuilder sb = new StringBuilder(); DurationConverter dc = new DurationConverter(); sb.Append("<div class=\"timesheet\">\n"); sb.Append("<div class=\"time meta\">" + workday.StartTime.ToString("t") + "</div>\n"); sb.Append("<div class=\"label\">Start Work</div>\n"); TimeSpan TotalDuration = workday.EndTime - workday.StartTime; foreach (PunchSegment segment in workday.WorkSegments) { if (segment.SegmentCategory == Category.Break) { TotalDuration -= segment.Duration; } sb.Append("<div class=\"segment " + Cat2Class(segment.SegmentCategory) + "\">\n"); sb.Append("<div class=\"time\">" + segment.StartTime.ToString("t") + "</div>\n"); sb.Append("<div class=\"label\">" + segment.StartLabel + "</div>\n"); sb.Append("<div class=\"duration\">\n<div>"); sb.Append(dc.Convert(segment.Duration, typeof(String), null, null) + " = " + segment.Duration.TotalHours.ToString("F") + " hrs"); sb.Append("</div></div>"); sb.Append("<div class=\"time\">" + segment.EndTime.ToString("t") + "</div>\n"); sb.Append("<div class=\"label\">" + segment.EndLabel + "</div></div>\n"); } sb.Append("<div class=\"time meta\">" + workday.EndTime.ToString("t") + "</div>\n"); sb.Append("<div class=\"label\">End Work</div>\n"); sb.Append("<div class=\"total\"><div class=\"label\">Total Work Time:</div>" + dc.Convert(TotalDuration, typeof(String), null, null) + " = " + TotalDuration.TotalHours.ToString("F") + " hrs"+"</div>\n</div>"); return sb.ToString(); }
public static String ItemiseWorkday2(Workday workday) { StringBuilder sb = new StringBuilder(); DurationConverter dc = new DurationConverter(); sb.Append("<h1 style=\"font-size: 46px; font-weight: normal; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\">" + "timecard for " + workday.StartTime.ToString("D") + "</h1>\n" + "<h2 style=\"font-weight: normal; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\">" + "Generated by <a href=\"BLAH BLAH BLAH\">Timecard</a> for Windows Phone 7</h2>\n"); sb.Append("<div style=\"width: 250px; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\" >\n"); sb.Append("<div style=\"font-size: 25px; font-weight: bold; color: #1BA1E2;\">" + workday.StartTime.ToString("t") + "</div>\n"); sb.Append("<div style=\"width: 130px; font-size: small; text-align: right; color: #000000;\">Start Work</div>\n"); TimeSpan TotalDuration = workday.EndTime - workday.StartTime; foreach (PunchSegment segment in workday.WorkSegments) { if (segment.SegmentCategory == Category.Break) { TotalDuration -= segment.Duration; } sb.Append("<div style=\"" + Cat2Style(segment.SegmentCategory) + "\">\n"); sb.Append("<div style=\"font-size: 25px; font-weight: bold;\">" + segment.StartTime.ToString("t") + "</div>\n"); sb.Append("<div style=\"width: 130px; font-size: small; text-align: right; color: #000000;\">" + segment.StartLabel + "</div>\n"); sb.Append("<div style=\"margin-left: 20px; padding: 15px; border-left-width: medium; border-left-style: solid; vertical-align: middle;\">\n<div style=\"color: #000000;\">"); sb.Append(dc.Convert(segment.Duration, typeof(String), null, null) + " = " + segment.Duration.TotalHours.ToString("F") + " hrs"); sb.Append("</div></div>"); sb.Append("<div style=\"font-size: 25px; font-weight: bold;\">" + segment.EndTime.ToString("t") + "</div>\n"); sb.Append("<div style=\"width: 130px; font-size: small; text-align: right; color: #000000;\">" + segment.EndLabel + "</div></div>\n"); } sb.Append("<div style=\"font-size: 25px; font-weight: bold; color: #1BA1E2;\">" + workday.EndTime.ToString("t") + "</div>\n"); sb.Append("<div style=\"width: 130px; font-size: small; text-align: right; color: #000000;\">End Work</div>\n"); sb.Append("<div style=\"color: #000000; border-top: thin solid black; margin-top: 20px; text-align: right;\"><div style=\"width: 130px; font-size: small; text-align: right; color: #000000;\">Total Work Time:</div>" + dc.Convert(TotalDuration, typeof(String), null, null) + " = " + TotalDuration.TotalHours.ToString("F") + " hrs" + "</div>\n</div>"); return(sb.ToString()); }
public static String ItemiseWorkday(Workday workday) { StringBuilder sb = new StringBuilder(); DurationConverter dc = new DurationConverter(); sb.Append("<div class=\"timesheet\">\n"); sb.Append("<div class=\"time meta\">" + workday.StartTime.ToString("t") + "</div>\n"); sb.Append("<div class=\"label\">Start Work</div>\n"); TimeSpan TotalDuration = workday.EndTime - workday.StartTime; foreach (PunchSegment segment in workday.WorkSegments) { if (segment.SegmentCategory == Category.Break) { TotalDuration -= segment.Duration; } sb.Append("<div class=\"segment " + Cat2Class(segment.SegmentCategory) + "\">\n"); sb.Append("<div class=\"time\">" + segment.StartTime.ToString("t") + "</div>\n"); sb.Append("<div class=\"label\">" + segment.StartLabel + "</div>\n"); sb.Append("<div class=\"duration\">\n<div>"); sb.Append(dc.Convert(segment.Duration, typeof(String), null, null) + " = " + segment.Duration.TotalHours.ToString("F") + " hrs"); sb.Append("</div></div>"); sb.Append("<div class=\"time\">" + segment.EndTime.ToString("t") + "</div>\n"); sb.Append("<div class=\"label\">" + segment.EndLabel + "</div></div>\n"); } sb.Append("<div class=\"time meta\">" + workday.EndTime.ToString("t") + "</div>\n"); sb.Append("<div class=\"label\">End Work</div>\n"); sb.Append("<div class=\"total\"><div class=\"label\">Total Work Time:</div>" + dc.Convert(TotalDuration, typeof(String), null, null) + " = " + TotalDuration.TotalHours.ToString("F") + " hrs" + "</div>\n</div>"); return(sb.ToString()); }
public void ShouldConvertNullDuration() { var converter = new DurationConverter(); var result = converter.Convert(null, null, null, null); Assert.AreEqual("00:00:00", result); }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value is double doubleValue) { return(_converter.Convert(TimeSpan.FromMilliseconds(doubleValue), targetType, parameter, culture)); } throw new NotSupportedException(); }
public void ShouldConvertSecondsToString() { var time = 60; var converter = new DurationConverter(); var result = converter.Convert(time, null, null, null); Assert.AreEqual("00:01:00", result); }
public void ShouldConvertTimeCodeToString() { var time = new TimeCode(0, 30, 10, 0, SmpteFrameRate.Smpte2997NonDrop); var converter = new DurationConverter(); var result = converter.Convert(time, null, null, null); Assert.AreEqual("00:30:10:00", result); }
protected string FormatDuration(double durationSeconds) { var culture = ServiceRegistration.Get <ILocalization>().CurrentCulture; DurationConverter dc = new DurationConverter(); object time; if (dc.Convert(durationSeconds, null, null, culture, out time)) { return(time.ToString()); } return("-"); }
public MVideoDetails(Video video) { VideoId = video.Id; if (video.Snippet != null) { Title = video.Snippet.Title; Description = video.Snippet.Description; IsLive = video.Snippet.LiveBroadcastContent == "live"; } Statistics = new MVideoStatistics(video.Statistics); if (video.ContentDetails == null) { return; } Duration = DurationConverter.Convert(video.ContentDetails.Duration); Definition = video.ContentDetails.Definition; IsPaid = video.ContentDetails.RegionRestriction != null; }