private void CreateMappingsForDurationConverter() { var converter = new DurationConverter(); CreateMap <Duration, TimeSpan>().ConvertUsing(converter); CreateMap <Duration?, TimeSpan?>().ConvertUsing(converter); CreateMap <TimeSpan, Duration>().ConvertUsing(converter); CreateMap <TimeSpan?, Duration?>().ConvertUsing(converter); CreateMap <Duration, long>().ConvertUsing(converter); CreateMap <Duration?, long?>().ConvertUsing(converter); CreateMap <long, Duration>().ConvertUsing(converter); CreateMap <long?, Duration?>().ConvertUsing(converter); CreateMap <Duration, int>().ConvertUsing(converter); CreateMap <Duration?, int?>().ConvertUsing(converter); CreateMap <int, Duration>().ConvertUsing(converter); CreateMap <int?, Duration?>().ConvertUsing(converter); CreateMap <Duration, double>().ConvertUsing(converter); CreateMap <Duration?, double?>().ConvertUsing(converter); CreateMap <double, Duration>().ConvertUsing(converter); CreateMap <double?, Duration?>().ConvertUsing(converter); CreateMap <Duration, decimal>().ConvertUsing(converter); CreateMap <Duration?, decimal?>().ConvertUsing(converter); CreateMap <decimal, Duration>().ConvertUsing(converter); CreateMap <decimal?, Duration?>().ConvertUsing(converter); }
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 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 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 void ConvertTo_YearDuration_StringYear(int value, string expected) { var converter = new DurationConverter(); var converted = converter.ConvertTo(new YearDuration(value), typeof(string)); Assert.That(converted, Is.TypeOf <string>()); Assert.That(converted, Is.EqualTo(expected)); }
public void ConvertTo_TotalHours_FixedDuration(int value, string expected) { var converter = new DurationConverter(); var converted = converter.ConvertTo(new FixedDuration(new TimeSpan(0, value, 0, 0)), typeof(string)); Assert.That(converted, Is.TypeOf <string>()); Assert.That(converted, Is.EqualTo(expected)); }
public void ConvertFrom_ValidStringYear_YearDuration(string value, int expected) { var converter = new DurationConverter(); var converted = converter.ConvertFrom(value); Assert.That(converted, Is.AssignableTo <IDuration>()); Assert.That(converted, Is.TypeOf <YearDuration>()); Assert.That((converted as YearDuration).Count, Is.EqualTo(expected)); }
public void ConvertFrom_ValidStringDuration_TotalHours(string value, int expected) { var converter = new DurationConverter(); var converted = converter.ConvertFrom(value); Assert.That(converted, Is.AssignableTo <IDuration>()); Assert.That(converted, Is.TypeOf <FixedDuration>()); Assert.That((converted as FixedDuration).TimeSpan.TotalHours, Is.EqualTo(expected)); }
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); }
public void ShouldConvertSecondsToString() { var time = 60; var converter = new DurationConverter(); var result = converter.Convert(time, null, null, null); Assert.AreEqual("00:01: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 void Can_convert_from_valid_Iso8601_string(string input, uint years, uint months, uint weeks, uint days, uint hours, uint minutes, uint seconds) { var converter = new DurationConverter(); var duration = (Duration)converter.ConvertFrom(input); Assert.Equal(years, duration.Years); Assert.Equal(months, duration.Months); Assert.Equal(weeks, duration.Weeks); Assert.Equal(days, duration.Days); Assert.Equal(hours, duration.Hours); Assert.Equal(minutes, duration.Minutes); Assert.Equal(seconds, duration.Seconds); }
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; }
public void Duration_CanDeserialize() { string json = @"{'meetingDuration': 'PT2H'}"; JsonTextReader reader = new JsonTextReader(new StringReader(json)); using (MemoryStream stream = new MemoryStream()) using (StreamWriter writer = new StreamWriter(stream)) { writer.Write(json); } if (reader.Read()) { var durationConverter = new DurationConverter(); var type = typeof(Duration); var duration = durationConverter.ReadJson(reader, type, null, new Newtonsoft.Json.JsonSerializer()); Assert.IsTrue(type == duration.GetType()); } else { Assert.Fail("Did not read a JSON token."); } }
public void ConvertBackShouldThrow() { var converter = new DurationConverter(); converter.ConvertBack(null, null, null, null); }
public void ToUserFriendlyFormat(int seconds, string expected) { DurationConverter.ToUserFriendlyFormat(seconds).ShouldBe(expected); }
public void Setup() { this.converter = new DurationConverter(); }
public void Cannot_convert_to_other_type(Type type) { var converter = new DurationConverter(); Assert.False(converter.CanConvertTo(type)); }
public DurationConverterTests() { this.converter = new DurationConverter(); }
public void Can_convert_to_string() { var converter = new DurationConverter(); Assert.True(converter.CanConvertTo(typeof(string))); }