public static void AddLog(string xml) { LogsContext context = new LogsContext(); SearchLog myLog = new SearchLog(); myLog.Date = DateTime.Now; myLog.QueryXml = xml.ToString(); context.SearchLogs.Add(myLog); context.SaveChanges(); }
public DB(bool resetBookstore, bool resetLog, LogsContext log) { if (resetBookstore) { ResetDbData(); } if (resetLog) { log.Database.ExecuteSqlCommand("DELETE Logs"); log.SaveChanges(); } this.log = log; }
public static void AddLog(DateTime date, string query) { Database.SetInitializer(new MigrateDatabaseToLatestVersion <LogsContext, Logs.Data.Migrations.Configuration>()); LogsContext context = new LogsContext(); using (context) { SearchLog log = new SearchLog(); log.Date = date; log.QueryXml = query; context.SearchLogs.Add(log); context.SaveChanges(); } }
static void Main(string[] args) { CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture; bool resetBookstore = true; bool resetLog = true; ShowLog destination = ShowLog.InTextFile; LogsContext log = new LogsContext(); DB dbManager = new DB(resetBookstore, resetLog,log); //Problem 3. Simple Books Import from XML File String inputPath = "../../XML/simple-books.xml"; dbManager.ProcessBooks(inputPath, false); //Problem 4. Complex Books Import from XML File inputPath = "../../XML/complex-books.xml"; dbManager.ProcessBooks(inputPath, true); //Problem 5. Simple Search for Books inputPath = "../../XML/simple-query1.xml"; string output = dbManager.ExecuteSimpleQuery(inputPath); Console.WriteLine(output); //Problem 6. Search for Reviews inputPath = "../../XML/reviews-queries.xml"; String outputPath = "../../XML/reviews-search-results.xml"; dbManager.ExecuteReviewsQueries(inputPath, outputPath); //Problem 7. Search Logs (Code First) switch (destination) { case ShowLog.InConsole: foreach (Log item in log.Logs) Console.WriteLine("{0} - {1}", item.LogDate, item.QueryXml); break; case ShowLog.InTextFile: using (StreamWriter writer = new StreamWriter( "../../LogOutput.txt", false, Encoding.UTF8)) { foreach (Log item in log.Logs) writer.Write("{0}\n{1}\n{2}\n{3}\n", item.Id, item.LogDate, item.QueryXml, new String('-', 20)); } break; } }