//завантаження файлу при запуску private void MainForm_Load(object sender, EventArgs e) { TimeSpendJournal temp = new TimeSpendJournal(); try { //відкриття потоку і десеріалізація бінарного файлу FileStream fs = new FileStream(Environment.CurrentDirectory + @"\UserData\" + login + ".data", FileMode.Open); BinaryFormatter bf = new BinaryFormatter(); temp = (TimeSpendJournal)bf.Deserialize(fs); foreach (TimeSpending TimeSpending in temp.journal) { if (TimeSpending.StartDate > look) { TimeSpending.ShowNotification(); } } fs.Close(); } catch (SerializationException) { MessageBox.Show("Неправильний формат", "Помилка", MessageBoxButtons.OK); } //створення файлу в разі відсутності такого catch (FileNotFoundException) { using (StreamWriter sw = new StreamWriter(Environment.CurrentDirectory + @"\UserData\" + login + ".data", false)) { } } //заповнення даними форми currentData = temp; FillData(); }
private void buttonOk_Click(object sender, EventArgs e) { try { DateTime startDate = dateCalendar.Value; DateTime endDate = dateCalendar.Value; //якщо id == -1 відбувається додавання нової події if (id == -1) { startDate = startDate.AddHours(Convert.ToDouble(hourLabel.Value) - startDate.Hour); startDate = startDate.AddMinutes(Convert.ToDouble(minuteLabel.Value) - startDate.Minute); endDate = endDate.AddHours(Convert.ToDouble(durationHour.Value) + startDate.Hour - endDate.Hour); endDate = endDate.AddMinutes(Convert.ToDouble(durationMin.Value) + startDate.Minute - endDate.Minute); TimeSpending TimeSpending = new TimeSpending(startDate, endDate, adress.Text, Convert.ToInt32(freq.Text), ActionField.Text); TimeSpending.ShowNotification(); main.currentData.Add(TimeSpending); //виведення нагадування //WaitSomeTime(ActionField.Text); } //інакше редагуються дані else { startDate = startDate.AddHours(Convert.ToDouble(hourLabel.Value) - startDate.Hour); startDate = startDate.AddMinutes(Convert.ToDouble(minuteLabel.Value) - startDate.Minute); endDate = endDate.AddHours(Convert.ToDouble(durationHour.Value) + startDate.Hour - endDate.Hour); endDate = endDate.AddMinutes(Convert.ToDouble(durationMin.Value) + startDate.Minute - endDate.Minute); main.currentData.journal[id].Change(startDate, endDate, adress.Text, Convert.ToInt32(freq.Text), ActionField.Text); main.currentData.Sort(); } main.FillData(); Close(); } catch (Exception ex) { MessageBox.Show("Неправильні дані, спробуйте знову", "Помилка", MessageBoxButtons.OK); } }