예제 #1
0
파일: iDateTime.cs 프로젝트: MSIH/iCal-sync
 public iDateTime(ContentLine contentline)
 {
     if (contentline.Parameters.ContainsKey("TZID"))
         ZonedDateTime = GetDateTimeOffsetWithTimeZone(contentline);
     else if (contentline.Parameters.ContainsKey("VALUE") && contentline.Parameters["VALUE"].Contains("DATE"))
         ZonedDateTime = GetDateTimeOffsetAsLocalTime(contentline);
     else if (Regex.IsMatch(contentline.Value, @".*Z$"))
         ZonedDateTime = GetDateTimeOffsetAsUtcTime(contentline);
     else
         ZonedDateTime = GetDateTimeOffsetAsLocalTime(contentline);
 }
예제 #2
0
 public void TestContentLineWithTwoParameterValues()
 {
     string input = "DTSTART;PARA=VALUE1,VALUE2:20150325T113000";
     ContentLine contentline = new ContentLine(input);
     Assert.IsTrue(contentline.Name.Equals("DTSTART"));
     Assert.IsTrue(contentline.Value.Equals("20150325T113000"));
     Assert.IsTrue(contentline.Parameters.Count == 1);
     Assert.IsTrue(contentline.Parameters.ContainsKey("PARA"));
     Assert.IsTrue(contentline.Parameters["PARA"].Count == 2);
     Assert.IsTrue(contentline.Parameters["PARA"].Contains("VALUE1"));
     Assert.IsTrue(contentline.Parameters["PARA"].Contains("VALUE2"));
 }
예제 #3
0
 public void TestContentLine()
 {
     string input = "DTSTART;TZID=America/New_York;PARA=VALUE:20150325T113000";
     ContentLine contentline = new ContentLine(input);
     Assert.IsTrue(contentline.Name.Equals("DTSTART"));
     Assert.IsTrue(contentline.Value.Equals("20150325T113000"));
     Assert.IsTrue(contentline.Parameters.Count == 2);
     Assert.IsTrue(contentline.Parameters.ContainsKey("TZID"));
     Assert.IsTrue(contentline.Parameters["TZID"].Count == 1);
     Assert.IsTrue(contentline.Parameters["TZID"].Contains("America/New_York"));
     Assert.IsTrue(contentline.Parameters.ContainsKey("PARA"));
     Assert.IsTrue(contentline.Parameters["PARA"].Count == 1);
     Assert.IsTrue(contentline.Parameters["PARA"].Contains("VALUE"));
 }
예제 #4
0
        public string GetContentLineValueOrDefault(string name)
        {
            ContentLine contentline = ContentLines.FirstOrDefault(x => x.Name.Equals(name));

            return(contentline != null?contentline.GetFormattedValue() : "");
        }
예제 #5
0
파일: iDateTime.cs 프로젝트: MSIH/iCal-sync
 private static ZonedDateTime GetDateTimeOffsetAsUtcTime(ContentLine contentline)
 {
     DateTime dateTime = GetDateTime(contentline.Value);
     DateTimeZone dateTimeZone = DateTimeZoneProviders.Tzdb["UTC"];
     return new ZonedDateTime(LocalDateTime.FromDateTime(dateTime), dateTimeZone, dateTimeZone.GetUtcOffset(Instant.FromDateTimeOffset(new DateTimeOffset(dateTime, new TimeSpan()))));
 }
예제 #6
0
파일: iDateTime.cs 프로젝트: MSIH/iCal-sync
 private static ZonedDateTime GetDateTimeOffsetWithTimeZone(ContentLine contentline)
 {
     DateTime dateTime = GetDateTime(contentline.Value);
     DateTimeZone dateTimeZone = TzidDecider.GetBestMatch(contentline.Parameters["TZID"].First());
     return new ZonedDateTime(LocalDateTime.FromDateTime(dateTime), dateTimeZone, dateTimeZone.GetUtcOffset(Instant.FromDateTimeOffset(new DateTimeOffset(dateTime, new TimeSpan()))));
 }