private static bool TryParseGuid(String g, GuidStyles flags, ref GuidResult result) { if (g == null) { result.SetFailure(ParseFailureKind.Format, nameof(SR.Format_GuidUnrecognized)); return(false); } String guidString = g.Trim(); //Remove Whitespace if (guidString.Length == 0) { result.SetFailure(ParseFailureKind.Format, nameof(SR.Format_GuidUnrecognized)); return(false); } // Check for dashes bool dashesExistInString = (guidString.IndexOf('-', 0) >= 0); if (dashesExistInString) { if ((flags & (GuidStyles.AllowDashes | GuidStyles.RequireDashes)) == 0) { // dashes are not allowed result.SetFailure(ParseFailureKind.Format, nameof(SR.Format_GuidUnrecognized)); return(false); } } else { if ((flags & GuidStyles.RequireDashes) != 0) { // dashes are required result.SetFailure(ParseFailureKind.Format, nameof(SR.Format_GuidUnrecognized)); return(false); } } // Check for braces bool bracesExistInString = (guidString.IndexOf('{', 0) >= 0); if (bracesExistInString) { if ((flags & (GuidStyles.AllowBraces | GuidStyles.RequireBraces)) == 0) { // braces are not allowed result.SetFailure(ParseFailureKind.Format, nameof(SR.Format_GuidUnrecognized)); return(false); } } else { if ((flags & GuidStyles.RequireBraces) != 0) { // braces are required result.SetFailure(ParseFailureKind.Format, nameof(SR.Format_GuidUnrecognized)); return(false); } } // Check for parenthesis bool parenthesisExistInString = (guidString.IndexOf('(', 0) >= 0); if (parenthesisExistInString) { if ((flags & (GuidStyles.AllowParenthesis | GuidStyles.RequireParenthesis)) == 0) { // parenthesis are not allowed result.SetFailure(ParseFailureKind.Format, nameof(SR.Format_GuidUnrecognized)); return(false); } } else { if ((flags & GuidStyles.RequireParenthesis) != 0) { // parenthesis are required result.SetFailure(ParseFailureKind.Format, nameof(SR.Format_GuidUnrecognized)); return(false); } } try { // let's get on with the parsing if (dashesExistInString) { // Check if it's of the form [{|(]dddddddd-dddd-dddd-dddd-dddddddddddd[}|)] return(TryParseGuidWithDashes(guidString, ref result)); } else if (bracesExistInString) { // Check if it's of the form {0xdddddddd,0xdddd,0xdddd,{0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd}} return(TryParseGuidWithHexPrefix(guidString, ref result)); } else { // Check if it's of the form dddddddddddddddddddddddddddddddd return(TryParseGuidWithNoStyle(guidString, ref result)); } } catch (IndexOutOfRangeException ex) { result.SetFailure(ParseFailureKind.FormatWithInnerException, nameof(SR.Format_GuidUnrecognized), null, null, ex); return(false); } catch (ArgumentException ex) { result.SetFailure(ParseFailureKind.FormatWithInnerException, nameof(SR.Format_GuidUnrecognized), null, null, ex); return(false); } }
private static bool TryParseGuid(string g, GuidStyles flags, ref GuidResult result) { if (g == null) { result.SetFailure(ParseFailureKind.Format, "Format_GuidUnrecognized"); return(false); } string guidString = g.Trim(); if (guidString.Length == 0) { result.SetFailure(ParseFailureKind.Format, "Format_GuidUnrecognized"); return(false); } bool flag = guidString.IndexOf('-', 0) >= 0; if (flag) { if ((flags & (GuidStyles.DigitFormat | GuidStyles.AllowDashes)) == GuidStyles.None) { result.SetFailure(ParseFailureKind.Format, "Format_GuidUnrecognized"); return(false); } } else if ((flags & GuidStyles.DigitFormat) != GuidStyles.None) { result.SetFailure(ParseFailureKind.Format, "Format_GuidUnrecognized"); return(false); } bool flag2 = guidString.IndexOf('{', 0) >= 0; if (flag2) { if ((flags & (GuidStyles.RequireBraces | GuidStyles.AllowBraces)) == GuidStyles.None) { result.SetFailure(ParseFailureKind.Format, "Format_GuidUnrecognized"); return(false); } } else if ((flags & GuidStyles.RequireBraces) != GuidStyles.None) { result.SetFailure(ParseFailureKind.Format, "Format_GuidUnrecognized"); return(false); } if (guidString.IndexOf('(', 0) >= 0) { if ((flags & (GuidStyles.RequireParenthesis | GuidStyles.AllowParenthesis)) == GuidStyles.None) { result.SetFailure(ParseFailureKind.Format, "Format_GuidUnrecognized"); return(false); } } else if ((flags & GuidStyles.RequireParenthesis) != GuidStyles.None) { result.SetFailure(ParseFailureKind.Format, "Format_GuidUnrecognized"); return(false); } try { if (flag) { return(TryParseGuidWithDashes(guidString, ref result)); } if (flag2) { return(TryParseGuidWithHexPrefix(guidString, ref result)); } return(TryParseGuidWithNoStyle(guidString, ref result)); } catch (IndexOutOfRangeException exception) { result.SetFailure(ParseFailureKind.FormatWithInnerException, "Format_GuidUnrecognized", null, null, exception); return(false); } catch (ArgumentException exception2) { result.SetFailure(ParseFailureKind.FormatWithInnerException, "Format_GuidUnrecognized", null, null, exception2); return(false); } }