public static bool TryParse(string s, out ConnectedDomain connectedDomain) { connectedDomain = null; int num = s.IndexOf(ConnectedDomain.Separator); if (-1 == num) { return(false); } string text = s.Substring(0, num); int num2 = s.IndexOf(ConnectedDomain.Separator, num + 1); if (-1 == num2) { return(false); } string text2 = s.Substring(num + 1, num2 - num - 1); int num3 = s.IndexOf(ConnectedDomain.Separator, num2 + 1); if (-1 == num3 || num3 - num2 < 4) { return(false); } string g = s.Substring(num2 + 1, num3 - num2 - 1); Guid guid; if (!GuidHelper.TryParseGuid(g, out guid)) { return(false); } int num4 = 1; int num5 = s.IndexOf(ConnectedDomain.Separator, num3 + 1); if (-1 != num5) { string s2 = s.Substring(num3 + 1, num5 - num3 - 1); if (!int.TryParse(s2, out num4) || num4 < 1 || num4 > 100) { return(false); } } else { num5 = num3; } string address = s.Substring(num5 + 1, s.Length - num5 - 1); AddressSpace addressSpace; if (!AddressSpace.TryParse(address, out addressSpace, false)) { return(false); } addressSpace.Cost = num4; connectedDomain = new ConnectedDomain(text, text2, guid, addressSpace); return(true); }
internal static bool ValidateAddress(string address) { if (string.IsNullOrEmpty(address)) { return(false); } SmtpAddress smtpAddress = new SmtpAddress(address); if (!smtpAddress.IsValidAddress) { return(false); } Guid empty = Guid.Empty; return(GuidHelper.TryParseGuid(smtpAddress.Local, out empty) && string.Equals(smtpAddress.Domain, "umgateway.exchangelabs.com", StringComparison.OrdinalIgnoreCase)); }
public static PublicFolderInformation Deserialize(string input) { if (string.IsNullOrWhiteSpace(input)) { return(new PublicFolderInformation(1, 1, string.Empty)); } int num = 0; int num2 = input.IndexOf(PublicFolderInformation.Separator); if (num2 == -1 || !int.TryParse(input.Substring(0, num2), out num) || num > 1) { return(new PublicFolderInformation(num, 1, input)); } int num3 = 0; string text = input.Substring(num2 + 1); int num4 = text.IndexOf(PublicFolderInformation.Separator); if (num4 == -1 || !int.TryParse(text.Substring(0, num4), out num3)) { return(new PublicFolderInformation(num, 1, input)); } text = text.Substring(num4 + 1); int num5 = text.IndexOf(PublicFolderInformation.Separator); byte b = 0; PublicFolderInformation.HierarchyType hierarchyType; if (num5 == -1 || !byte.TryParse(text.Substring(0, num5), out b) || !Enum.IsDefined(typeof(PublicFolderInformation.HierarchyType), b) || (hierarchyType = (PublicFolderInformation.HierarchyType)b) == PublicFolderInformation.HierarchyType.Unknown) { return(new PublicFolderInformation(num, num3, input)); } int num6 = 0; text = text.Substring(num5 + 1); int num7 = text.IndexOf(PublicFolderInformation.Separator); if (num7 == -1 || !int.TryParse(text.Substring(0, num7), out num6) || num6 <= 0 || text.Length < num7 + 1 + num6) { return(new PublicFolderInformation(num, num3, input)); } string text2 = text.Substring(num7 + 1, num6); if (string.IsNullOrWhiteSpace(text2)) { return(new PublicFolderInformation(num, num3, input)); } switch (hierarchyType) { case PublicFolderInformation.HierarchyType.MailboxGuid: case PublicFolderInformation.HierarchyType.InTransitMailboxGuid: { Guid empty = Guid.Empty; if (GuidHelper.TryParseGuid(text2, out empty)) { return(new PublicFolderInformation(num, num3, hierarchyType, empty, input)); } return(new PublicFolderInformation(num, num3, input)); } default: throw new InvalidOperationException("Unknown HierarchyType! How did we get here if parsing was successful?"); } }