/// <summary> /// Loads a csv file. /// </summary> /// <param name="fname"></param> /// <param name="rdir"></param> /// <param name="workingDate"></param> /// <param name="dataGridView"></param> /// <param name="newFileCreated"></param> /// <returns></returns> public static bool LoadCsvFile(string fname, string rdir, DateTime workingDate, DataGridView dataGridView, ref bool newFileCreated) { // check if file exists if (File.Exists(String.Format(@".\{0}\{1}.csv", rdir, fname))) { try { // opening file using (StreamReader reader = new StreamReader(String.Format(@"{0}\{1}.csv", rdir, fname))) using (CsvReader csv = new CsvReader(reader)) { List <DayMenu> records = csv.GetRecords <DayMenu>().ToList(); if (DebugMode) { MessageBox.Show(String.Format("File \"{0}.csv\" was loaded successfully!", fname), "CSV loading success", MessageBoxButtons.OK, MessageBoxIcon.Information); } dataGridView.DataSource = records; dataGridView.Columns[0].ReadOnly = true; dataGridView.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; dataGridView.Columns[1].ReadOnly = true; dataGridView.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; dataGridView.Refresh(); } return(true); } catch (IOException) { // file possibly open using any other application if (DebugMode) { MessageBox.Show(String.Format("Filename \"{0}\" is unavailable.", fname), "CSV loading error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } else { // file does not exist; creating new one... List <DayMenu> dayMenus = MenuDateHelper.CreateWeekMenuList(workingDate); dataGridView.DataSource = dayMenus; dataGridView.Columns[0].ReadOnly = true; dataGridView.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; dataGridView.Columns[1].ReadOnly = true; dataGridView.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; dataGridView.Refresh(); // try to save new file if (SaveCsvFile(dayMenus, workingDate.ToShortDateString(), rdir)) { MessageBox.Show(String.Format("File \"{0}.csv\" did not exist. It was created and loaded successfully.", fname), "CSV create success", MessageBoxButtons.OK, MessageBoxIcon.Information); newFileCreated = true; return(true); } else { MessageBox.Show(String.Format("File \"{0}.csv\" did not exist and could not be created.", fname), "CSV create error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } return(false); }
/// <summary> /// Creates a DayMenu list, consisting of seven days from monday to sunday. /// </summary> /// <param name="date">given date</param> /// <returns>DayMenu list of seven entries (one week)</returns> public static List <DayMenu> CreateWeekMenuList(DateTime date) { date = MenuDateHelper.GetDateOfFirstDayOfTheWeek(date); // set hours to 00:00:00 date = date.AddHours(-date.Hour); date = date.AddMinutes(-date.Minute); date = date.AddSeconds(-date.Second); List <DayMenu> result = new List <DayMenu>(); for (int i = 0; i < 7; i++) { result.Add(new DayMenu { Date = date.AddDays(i) }); } return(result); }