/// <summary> /// Checks to make sure a facet is valid for use /// </summary> /// <param name="facet">The facet to check</param> /// <returns>Returns True if valid and False otherwise</returns> public static bool IsValid(this CommerceQueryFacet facet) { facet.Clean(); if (facet.FoundValues.Count > 0) { return true; } return false; }
public static bool IsPalindrome(this string input) { if (input == null) { return false; } var source = input.Clean(); var resversed = source.Reverse(); return source.Equals(resversed, StringComparison.CurrentCultureIgnoreCase); }
/// <summary> /// Обрезает указанное количество символов из правой части (из конца) изменяемой строки и записывает изменение в этот же экземпляр /// </summary> /// <param name="Source">Входная изменяемая строка, обрезанную справа часть которой следует возвратить. /// Если пустая - будет возвращена без изменений. Если NULL, будет выброшено исключение.</param> /// <param name="Count">Количество символов, которое должно быть обрезано справа. Если 0, обрезание не производится и возвращается входная строка. /// Если равно или больше фактической длины входной строки, возвращается пустая строка. Если меньше 0 - выбрасывается исключение.</param> public static StringBuilder CutRight(this StringBuilder Source, Int32 Count) { if (Source == null) { throw new ArgumentNullException("Source", "Входная строка не может быть NULL"); } if (Count < 0) { throw new ArgumentOutOfRangeException("Count", Count, "Значение параметра меньше 0"); } if (Count == 0) { return Source; } Int32 length = Source.Length; if (length == 0) { return Source; } if (Count >= length) { Source.Clean(); return Source; } Source.Remove((length - Count), Count); return Source; }
public static MethodDefinition AppendMethod(this MethodDefinition inputMethod, MethodDefinition appendMethod) { int count = inputMethod.Body.Instructions.Count; if (count > 0) { inputMethod.Body.GetILProcessor().Remove(inputMethod.Body.Instructions[count - 1]); } for (int x = 0; x < appendMethod.Body.Instructions.Count; x++) { inputMethod.Body.GetILProcessor().Append(appendMethod.Body.Instructions[x]); } inputMethod.Clean(); return inputMethod; }
/// <summary> /// Input string must be in the format "#007FFF:0.5". /// Hex strings can be either 6 or eight X-chars long and may or not /// start with "0x" and "#". /// </summary> public static GradientStop ToGradientStop(this string input) { var data = input.Clean(); if (!data.Contains(":")) return new GradientStop(data.ToColor(),0); var ray = data.Split(':'); var offset = Double.NaN; var result = new GradientStop{ Color=ray[0].ToColor(), Offset = double.TryParse(ray[1], out offset) ? offset : 0 }; ray = null; data = null; return result; }
/// <summary> /// Удаляет из изменяемой строки все начальные и конечные пробелы и записывает изменение в этот же экземпляр /// </summary> /// <param name="Source">Входная изменяемая строка. Если NULL, будет выброшено исключение. Если пустая, будет возвращена без изменений.</param> /// <returns></returns> public static StringBuilder Trim(this StringBuilder Source) { if (Source == null) { throw new ArgumentNullException("Source", "Входная строка не может быть NULL"); } Int32 source_len = Source.Length; if (source_len < 1) { return Source; } Int32 chars_to_remove_from_start = 0; for (Int32 i = 0; i < source_len; i++) { if (Char.IsWhiteSpace(Source[i]) == true) { ++chars_to_remove_from_start; } else { break; } } if (chars_to_remove_from_start == source_len) { Source.Clean(); return Source; } Int32 chars_to_remove_from_end = 0; for (Int32 i = source_len - 1; i > chars_to_remove_from_start; i--) { if (Char.IsWhiteSpace(Source[i]) == true) { ++chars_to_remove_from_end; } else { break; } } if (chars_to_remove_from_start > 0) { Source.Remove(0, chars_to_remove_from_start); } if (chars_to_remove_from_end > 0) { Source.Remove(Source.Length - chars_to_remove_from_end, chars_to_remove_from_end); } return Source; }
static internal string Clean(this string source, char start) { return source.Clean(start, start); }
static internal string CleanBracket(this string source) { return source.Clean('(', ')'); }
public static string Clean(this string input) { return input.Clean(true); }
public static int RemoveInvalidOpCodes(this MethodDefinition method) { List<Instruction> InstToRemove = method.Body.Instructions.Where(t => t.OpCode == OpCodes.Invalid).ToList(); foreach (Instruction t in InstToRemove) { method.Body.GetILProcessor().Remove(t); //method.Body.GetILProcessor().Replace(t, method.Body.GetILProcessor().Create(OpCodes.Nop)); } method.Clean(); return InstToRemove.Count; }
public static void Clean(this AdHocSchedulesMessageCleaner cleaner, ProcessFile message) { cleaner.Clean(message.FullPath); }
public static string ToExcerpt(this string text) { if (string.IsNullOrEmpty(text)) return string.Empty; return text.Length > 200 ? text.Substring(0, 200).Clean() : text.Clean(); }
/// <summary> /// I'm assuming ColorConverter parses your typical WPF Color value definition /// which includes the hash "#FF000000"={Color: A=255, R=0, G=0, B=0}. /// </summary> /// <remarks> /// This is merely here to point out ColorConverter.ConvertFromString method. /// </remarks> /// <seealso cref="System.Windows.Media.ColorConverter.ConvertFromString(string)"/> static int ToColorInt(this string color, bool ignoreAlphaChannel) { var value = color.Clean(); bool hasAlpha = (value.Length==8); var c = (Color)ColorConverter.ConvertFromString(color); return !ignoreAlphaChannel||hasAlpha ? (c.A << 24) + (c.R << 16) + (c.G << 8) + c.B: (c.R << 16) + (c.G << 8) + c.B; }