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);
        }
Esempio n. 2
0
        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());
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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();
        }
Esempio n. 5
0
        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);
        }
Esempio n. 7
0
        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));
        }
Esempio n. 8
0
        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));
        }
Esempio n. 9
0
        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));
        }
Esempio n. 10
0
        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);
        }
Esempio n. 13
0
        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("-");
        }
Esempio n. 14
0
        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);
        }
Esempio n. 15
0
        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();
 }
Esempio n. 20
0
        public void Cannot_convert_to_other_type(Type type)
        {
            var converter = new DurationConverter();

            Assert.False(converter.CanConvertTo(type));
        }
Esempio n. 21
0
 public DurationConverterTests()
 {
     this.converter = new DurationConverter();
 }
Esempio n. 22
0
        public void Can_convert_to_string()
        {
            var converter = new DurationConverter();

            Assert.True(converter.CanConvertTo(typeof(string)));
        }