public static async Task LogMenuSavedAsync(string checksum, LunchMenu lm) { var connString = ConnectionString(); using (var conn = new MySqlConnection(connString)) { await conn.OpenAsync(); using (var cmd = new MySqlCommand()) { cmd.Connection = conn; cmd.CommandText = string.Format("INSERT INTO saved_lunch_menus (SavedAt,Checksum,ValidFrom,ValidTo) VALUES ('{0:yyyy-MM-dd HH:mm:ss}','{1}','{2:yyyy-MM-dd}','{3:yyyy-MM-dd}')", DateTime.Now, checksum, lm.ValidFrom, lm.ValidTo); await cmd.ExecuteNonQueryAsync(); } } }
public static async Task SaveLunchMenuToDatabaseAsync(LunchMenu lm) { var connString = ConnectionString(); using (var conn = new MySqlConnection(connString)) { await conn.OpenAsync(); foreach (LunchMenuItem lmi in lm.MenuItems) { using (var cmd = new MySqlCommand()) { cmd.Connection = conn; cmd.CommandText = string.Format("INSERT INTO lunch_menu_items (Name,Price,Foodtype,Date,Weight,Alergens) VALUES ({0})", lmi.ToSqlQueryValues()); await cmd.ExecuteNonQueryAsync(); } } } }
static void Main(string[] args) { if (args.Length != 1) { Console.WriteLine("Please provide CONFIG filename as parameter!"); return; } Console.WriteLine("Loading CONFIG file..."); string configFile = args[0]; if (!File.Exists(configFile)) { Console.WriteLine("CONFIG file does not exist! Exiting application..."); return; } else { cfm = new ConfigurationFileManager(configFile); LunchMenuUrl = cfm.LunchMenuUrl; DbService.SetConnectionParameters(cfm.DbServer, cfm.DbUser, cfm.DbPass, cfm.DbName); } Console.WriteLine("Downloading document..."); DownloadPDF(); Console.WriteLine("Calculate hash..."); string fileHash = CalculateSHA256CheckSum(_menufilename); Console.WriteLine(string.Format("{0}: {1}", _menufilename, fileHash)); Console.WriteLine("Creating new name for a document..."); string newfilename = string.Format("{0:yyyy-MM-dd_HH-mm-ss}.pdf", DateTime.Now); Console.WriteLine("Checking if file was processed..."); if (DbService.CheckIfExistsInDatabase(fileHash)) { Console.WriteLine("Document has been already processed. Quitting..."); return; } Console.WriteLine("Copying document..."); File.Copy(_menufilename, newfilename); Console.WriteLine("Processing menu..."); string menu = GetRawTextFromFile(newfilename); LunchMenu lm = new LunchMenu(menu); Console.WriteLine(lm.ToString()); Console.WriteLine("Saving to database..."); DbService.SaveLunchMenuToDatabaseAsync(lm).Wait(); Console.WriteLine("Logging this session..."); DbService.LogMenuSavedAsync(fileHash, lm).Wait(); }