Esempio n. 1
0
        private JobProgress Deserialize(string text)
        {
            var match = _deserializeRegex.Match(text);

            if (!match.Success)
            {
                return(null);
            }

            var start     = _instantPattern.Parse(match.Groups[1].ToString());
            var end       = _instantPattern.Parse(match.Groups[2].ToString());
            var nextToken = match.Groups[3].ToString();

            if (!start.Success || !end.Success)
            {
                return(null);
            }

            if (nextToken.Length == 0)
            {
                nextToken = null;
            }

            return(new JobProgress(start.Value, end.Value, nextToken));
        }
Esempio n. 2
0
        private Instant?ParseBagInstant(XmlElement element)
        {
            if (element == null)
            {
                return(null);
            }

            return(_bagInstantPattern.Parse(element.InnerText).Value);
        }
Esempio n. 3
0
 private static void UpdateProperty(ReadOnlySequence <byte> name, ReadOnlySequence <byte> parameters, ReadOnlySequence <byte> value, Event nextEvent)
 {
     if (name.MatchesFrom(UTF8Constants.Attendee.Span))
     {
         nextEvent.Attendees.Add(value.ToString(Encoding.UTF8));
     }
     else if (name.MatchesFrom(UTF8Constants.UId.Span))
     {
         nextEvent.UId = value.ToString(Encoding.UTF8);
     }
     else if (name.MatchesFrom(UTF8Constants.Start.Span))
     {
         var parseResult = iCalInstantPattern.Parse(value.ToString(Encoding.UTF8));
         if (parseResult.Success)
         {
             nextEvent.Start = parseResult.Value;
         }
     }
     else if (name.MatchesFrom(UTF8Constants.End.Span))
     {
         var parseResult = iCalInstantPattern.Parse(value.ToString(Encoding.UTF8));
         if (parseResult.Success)
         {
             nextEvent.End = parseResult.Value;
         }
     }
     else if (name.MatchesFrom(UTF8Constants.Duration.Span))
     {
         var parseResult = PeriodPattern.Roundtrip.Parse(value.ToString(Encoding.UTF8));
         if (parseResult.Success)
         {
             nextEvent.Duration = parseResult.Value.ToDuration();
         }
     }
     else if (name.MatchesFrom(UTF8Constants.Summary.Span))
     {
         nextEvent.Summary = value.ToString(Encoding.UTF8);
     }
     else if (name.MatchesFrom(UTF8Constants.Status.Span))
     {
         nextEvent.Status = EventStatusParser.Parse(value);
     }
 }
        public static ZonedDateTime?GetUtcDateTimeFromString(string dateTime)
        {
            var instant = InvariantParser.Parse(dateTime);

            if (!instant.Success)
            {
                return(null);
            }

            return(instant.Value.InUtc());
        }
        public object FromEntry(DynamoDBEntry entry)
        {
            if (entry is DynamoDBNull)
            {
                return(new Instant?());
            }
            var s   = entry.AsString();
            var res = pattern.Parse(s);

            return(res.GetValueOrThrow());
        }
Esempio n. 6
0
        public static Instant?ParseOrNull(this InstantPattern pattern, string?s)
        {
            if (s is null)
            {
                return(null);
            }
            var parseResult = pattern.Parse(s);

            if (!parseResult.Success)
            {
                return(null);
            }
            return(parseResult.Value);
        }
Esempio n. 7
0
        public override object?ParseLiteral(IValueNode literal)
        {
            if (literal == null)
            {
                throw new ArgumentNullException(nameof(literal));
            }

            if (literal is NullValueNode)
            {
                return(null);
            }

            if (literal is StringValueNode stringLiteral)
            {
                return(pattern.Parse(stringLiteral.Value).Value);
            }

            throw new ArgumentException("The Instant type can only parse string and null literals.", nameof(literal));
        }
Esempio n. 8
0
        private static Instant?ParseAbsoluteOrRelativeTime(string absoluteTime, int?relativeTimeSecondsAgo)
        {
            if (!string.IsNullOrWhiteSpace(absoluteTime))
            {
                var parsedTime = InstantPattern.Parse(absoluteTime);
                if (!parsedTime.Success)
                {
                    throw new ArgumentException($"Time pattern '{absoluteTime}' could not be parsed. ISO-8601 based UTC format without fractions of second is expected.");
                }

                return(parsedTime.Value);
            }

            if (relativeTimeSecondsAgo.HasValue)
            {
                return(InstantUtils.SecondsAgo(relativeTimeSecondsAgo.Value));
            }

            return(null);
        }
Esempio n. 9
0
            public NodaTimeText.ParseResult <Interval> Parse(string text)
            {
                var slash = text.IndexOf('/');

                if (slash == -1)
                {
                    throw new InvalidNodaDataException("Expected ISO-8601-formatted interval; slash was missing.");
                }

                var startText = text.Substring(0, slash);
                var endText   = text.Substring(slash + 1);

                var startInstant = default(Instant?);
                var endInstant   = default(Instant?);

                if (!string.IsNullOrEmpty(startText))
                {
                    var result = Patterns.InstantPattern.Parse(startText);

                    if (!result.Success)
                    {
                        return(NodaTimeText.ParseResult <Interval> .ForException(() => result.Exception));
                    }

                    startInstant = result.Value;
                }

                if (!string.IsNullOrEmpty(endText))
                {
                    var result = InstantPattern.Parse(endText);

                    if (!result.Success)
                    {
                        return(NodaTimeText.ParseResult <Interval> .ForException(() => result.Exception));
                    }

                    endInstant = result.Value;
                }

                return(NodaTimeText.ParseResult <Interval> .ForValue(new Interval(startInstant, endInstant)));
            }
Esempio n. 10
0
        protected Instant?ParseInstant(string text, Func <DateTimeZone> zoneResolver = null)
        {
            if (LocalDateTimePattern != null)
            {
                var result = LocalDateTimePattern.Parse(text);

                if (result.Success)
                {
                    return(InstantFromLocalDateTime(result.Value, zoneResolver));
                }
            }

            if (InstantPattern != null)
            {
                var result = InstantPattern.Parse(text);

                if (result.Success)
                {
                    return(result.Value.Minus(DefaultBias));
                }
            }

            return(null);
        }
Esempio n. 11
0
 public void GeneralPatternParse()
 {
     GeneralPattern.Parse(SampleStringGeneral);
 }
 public void NumberPatternParse()
 {
     NumberPattern.Parse(SampleStringNumber);
 }