コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }