public LogValuesFormatter(string format) { OriginalFormat = format; var sb = new StringBuilder(); var scanIndex = 0; var endIndex = format.Length; while (scanIndex < endIndex) { var openBraceIndex = FindBraceIndex(format, '{', scanIndex, endIndex); var closeBraceIndex = FindBraceIndex(format, '}', openBraceIndex, endIndex); if (closeBraceIndex == endIndex) { sb.Append(format, scanIndex, endIndex - scanIndex); scanIndex = endIndex; } else { // Format item syntax : { index[,alignment][ :formatString] }. var formatDelimiterIndex = FindIndexOfAny(format, FormatDelimiters, openBraceIndex, closeBraceIndex); sb.Append(format, scanIndex, openBraceIndex - scanIndex + 1); sb.Append(ValueNames.Count.ToString(CultureInfo.InvariantCulture)); ValueNames.Add(format.Substring(openBraceIndex + 1, formatDelimiterIndex - openBraceIndex - 1)); sb.Append(format, formatDelimiterIndex, closeBraceIndex - formatDelimiterIndex + 1); scanIndex = closeBraceIndex + 1; } } _format = sb.ToString(); }
public decimal this[string column] { get { int index = ValueNames.IndexOf(column); return(this[index]); } set { int index = ValueNames.IndexOf(column); this[index] = value; } }
public LogValuesFormatter(string format, IReadOnlyCollection <object> args, string scope = null) { // Holds the list of placeholders that do not have corresponding values in the structured log. var placeholdersMismatchedArgs = new List <string>(); _scope = scope; OriginalFormat = format; var sb = new StringBuilder(); var scanIndex = 0; var endIndex = format.Length; var expectedNumberOfArgs = scope != null ? args.Count + 1 : args.Count; while (scanIndex < endIndex) { var openBraceIndex = FindBraceIndex(format, '{', scanIndex, endIndex); var closeBraceIndex = FindBraceIndex(format, '}', openBraceIndex, endIndex); if (closeBraceIndex == endIndex) { sb.Append(format, scanIndex, endIndex - scanIndex); scanIndex = endIndex; } else { // Format item syntax : { index[,alignment][ :formatString] }. var formatDelimiterIndex = FindIndexOfAny(format, FormatDelimiters, openBraceIndex, closeBraceIndex); if (ValueNames.Count < expectedNumberOfArgs) { sb.Append(format, scanIndex, openBraceIndex - scanIndex + 1); sb.Append(ValueNames.Count.ToString(CultureInfo.InvariantCulture)); ValueNames.Add(format.Substring(openBraceIndex + 1, formatDelimiterIndex - openBraceIndex - 1)); sb.Append(format, formatDelimiterIndex, closeBraceIndex - formatDelimiterIndex + 1); } else { placeholdersMismatchedArgs.Add(format.Substring(openBraceIndex + 1, formatDelimiterIndex - openBraceIndex - 1)); } scanIndex = closeBraceIndex + 1; } } if (placeholdersMismatchedArgs.Count > 0) { sb.Append( $" Warning: This line is from an invalid structured log which should be fixed and may not be complete: " + $"number of arguments is not matching the number of placeholders, placeholders with missing values: {string.Join(", ", placeholdersMismatchedArgs)}"); } if (ValueNames.Count != expectedNumberOfArgs) { sb.Append( $" Warning: This line is from an invalid structured log which should be fixed and may not be complete: " + $"number of placeholders in the log message does not match the number of parameters. Argument values without placeholders: {string.Join(", ", args.Skip(ValueNames.Count))}"); } _format = sb.ToString(); }
protected virtual bool GetIsAutoStartEntry(RegistryKey currentKey, string valueName, int level) { return(ValueNames == null || ValueNames.Contains(valueName)); }
public override bool IsValidForRequest(ControllerContext controllerContext, MethodInfo methodInfo) { var result = ValueNames.All(value => controllerContext.HttpContext.Request[value] != null); return(result); }
static void Main(string[] args) { if (args.Contains("?") || args.Contains("-h", StringComparer.OrdinalIgnoreCase) || args.Contains("h", StringComparer.OrdinalIgnoreCase) || args.Contains("-help", StringComparer.OrdinalIgnoreCase) || args.Contains("help", StringComparer.OrdinalIgnoreCase)) { //Output Help Details printHelp(); Environment.Exit(0); //Exit program after outputing message } /* * INPUT * Path Assembly Path (dll or exe) * ValueName (Optional) Defaults to Version if no value is provided * Expected Values: * Version * Company * Copyright * Description * Product * Title * Trademark * * Exit Codes * 0 Success * -1 Assembly Path could not be found * -2 Value passed for ValueName is invalid */ switch (args.Count()) { case 0: printHelp(); Environment.Exit(0); //Exit program after outputing message break; case 1: filePath = File.Exists(args[0]) ? args[0] : null; //valueName = ValueNames.Version; break; case 2: filePath = File.Exists(args[0]) ? args[0] : null; try { valueName = (ValueNames)Enum.Parse(typeof(ValueNames), args[1], true); } catch { Environment.Exit(-2); } //args[1] was not a valid type break; default: filePath = null; break; } //If file path is invalid exit with error if (filePath == null) { Environment.Exit(-1); //args[0] could not be found } try { Assembly assembly = Assembly.LoadFile(filePath); switch (valueName) { case ValueNames.Version: output = assembly.GetName().Version.ToString(); break; case ValueNames.Company: output = ((AssemblyCompanyAttribute)(assembly.GetCustomAttributes(typeof(AssemblyCompanyAttribute), true)[0]))?.Company ?? ""; break; case ValueNames.Copyright: output = ((AssemblyCopyrightAttribute)(assembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), true)[0]))?.Copyright ?? ""; break; case ValueNames.Description: output = ((AssemblyDescriptionAttribute)(assembly.GetCustomAttributes(typeof(AssemblyDescriptionAttribute), true)[0]))?.Description ?? ""; break; case ValueNames.Product: output = ((AssemblyProductAttribute)(assembly.GetCustomAttributes(typeof(AssemblyProductAttribute), true)[0]))?.Product ?? ""; break; case ValueNames.Title: output = ((AssemblyTitleAttribute)(assembly.GetCustomAttributes(typeof(AssemblyTitleAttribute), true)[0]))?.Title ?? ""; break; case ValueNames.Trademark: output = ((AssemblyTrademarkAttribute)(assembly.GetCustomAttributes(typeof(AssemblyTrademarkAttribute), true)[0]))?.Trademark ?? ""; break; } assembly = null; } catch (BadImageFormatException) { FileVersionInfo exe = FileVersionInfo.GetVersionInfo(filePath); switch (valueName) { case ValueNames.Version: output = exe?.ProductVersion ?? ""; break; case ValueNames.Company: output = exe?.CompanyName ?? ""; break; case ValueNames.Copyright: output = exe?.LegalCopyright ?? ""; break; case ValueNames.Description: output = exe?.FileDescription ?? ""; break; case ValueNames.Product: output = exe?.ProductName ?? ""; break; case ValueNames.Title: output = exe?.ProductName ?? ""; break; case ValueNames.Trademark: output = exe?.LegalTrademarks ?? ""; break; } exe = null; } Console.Write(output); }