public static bool TryParse(string s, out RevisionId revisionId) { if (s == "base") { revisionId = new Base(); return(true); } if (int.TryParse(s, out var revision) && revision > 0) { revisionId = new Selected(revision); return(true); } if (HashRegex.IsMatch(s)) { revisionId = new Hash(s); return(true); } revisionId = null; return(false); }
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) => RevisionId.Parse(value.ToString());