public string Print(PrinterConfig config = null) { if (config == null) { config = new PrinterConfig(); } using (IADbContext dbContext = new IADbContext()) { if (!dbContext.Database.Exists()) { log.Warn("Db not found."); return(""); } List <PlayerItem> itemResult = new List <PlayerItem>(); try { IQueryable <PlayerItem> items = dbContext.PlayerItem; items = FilterItems(items, config, dbContext); itemResult = items.ToList(); log.Info("LoadedPlayerItems"); } catch (Exception ex) { log.Error("Error fetching playeritems. Most likely path to db is incorrect.", ex); return(""); } log.Info("Formatting"); ItemContainer container = new ItemContainer(itemResult); string stringResult = ResultFormatter.FormatResult(container, config); log.Info("Writing output"); CreateOutputFile(stringResult, config); log.Info("Printer Finished"); return(stringResult); } }
/// <summary> /// Formats the result. /// </summary> /// <param name="result">The result.</param> /// <param name="number">The number.</param> /// <param name="responseMessage">The response message.</param> /// <returns></returns> private static string FormatResult(List <price> result, int number) { var resultMessageBuilder = new StringBuilder(); for (var index = 0; index < result.Count; index++) { var mod = string.Empty; if (result.Count > 1) { mod = number > 1 ? $"{index}. " : "● "; } var price = result[index]; resultMessageBuilder.Append($"{mod}{ResultFormatter.FormatResult(price)} {Environment.NewLine}"); } return(resultMessageBuilder.ToString()); }
/// <summary> /// WinGrep execution. /// </summary> /// <param name="args"></param> public static void Main(string[] args) { var regex = ".*"; var contentregex = string.Empty; var rootdir = Environment.CurrentDirectory; var searchnames = true; var searchcontent = false; var recursive = false; var showhelp = false; var options = new OptionSet() { { "r=", ".net Regex for matching file names", o => regex = o }, { "d=", "root Directory for searching", o => rootdir = o }, { "R", "enable Recursive", o => recursive = true }, { "c=", ".net regex for file Contents", o => { searchcontent = true; searchnames = false; contentregex = o; } }, { "h", "shows Help", o => showhelp = true }, }; options.Parse(args); if (showhelp) { options.WriteOptionDescriptions(Console.Out); return; } // Validation first, quit if needed. if (!new RegexValidator().Validate(regex)) { Console.WriteLine(string.Format("Regex \"{0}\" is not a valid regular expression.", regex)); return; } if (!new RegexValidator().Validate(contentregex)) { Console.WriteLine(string.Format("Regex \"{0}\" is not a valid regular expression.", contentregex)); return; } try { if (!Path.IsPathRooted(rootdir)) { rootdir = Environment.CurrentDirectory + @"\" + rootdir; } } catch { Console.WriteLine("Directory \"{0}\" is not a well formed path.", rootdir); return; } // Execute our Grep. var formatter = new ResultFormatter(); IEnumerable <ContentsResult> results; if (searchnames) { results = new FileLocator().FindFiles(rootdir, regex, recursive); } else { results = new FileLocator().FindInFiles(rootdir, regex, contentregex, recursive); } foreach (var r in results) { Console.Write(formatter.FormatResult(r)); } }