//Sessions private void endSessionButton_Click(object sender, EventArgs e) { if (dataGridView2.SelectedCells.Count <= 0) { return; } int rowindex = dataGridView2.SelectedCells[0].RowIndex; if (dataGridView2.Rows[rowindex].Cells["End_Date"].Value.ToString() == "Active Session") { setDate end = new setDate(DateTime.Now); end.set_Message("Enter End Date"); end.ShowDialog(); if (end.values_set == false) { return; } Console.WriteLine(Convert.ToDateTime(dataGridView2.Rows[rowindex].Cells["Begin_Date"].Value.ToString())); Console.WriteLine(end.result); if (Convert.ToDateTime(dataGridView2.Rows[rowindex].Cells["Begin_Date"].Value.ToString()).Date >= end.result.Date) { a.ErrorBox("End date should be greater than start date of the session"); endSessionButton.PerformClick(); return; } dataGridView2.Rows[rowindex].Cells["End_Date"].Value = end.result; dataGridView2.Rows[rowindex].DefaultCellStyle.BackColor = Color.Coral; dataGridView2.Rows[rowindex].DefaultCellStyle.SelectionBackColor = Color.Orange; } }
private void startSessionButton_Click(object sender, EventArgs e) { setDate start = new setDate(DateTime.Now); start.set_Message("Enter Start Date"); start.ShowDialog(); if (start.values_set == false) { Console.WriteLine("ret"); return; } //check if start date is in between any previous start and end dates int open_session_index = -1; for (int i = 0; i < dataGridView2.Rows.Count; i++) { DateTime s_i = Convert.ToDateTime(dataGridView2.Rows[i].Cells["Begin_Date"].Value.ToString()); DateTime e_i; try { e_i = Convert.ToDateTime(dataGridView2.Rows[i].Cells["End_Date"].Value.ToString()); } catch { open_session_index = i; continue; } if (start.result.Date >= s_i.Date && start.result.Date <= e_i.Date) { a.ErrorBox("Start Date is in between Begin and End Dates of Session ID: " + dataGridView2.Rows[i].Cells["Session_ID"].Value.ToString()); this.startSessionButton.PerformClick(); return; } } Console.WriteLine("Open session index = " + open_session_index); if (open_session_index == -1) { DateTime last_end_date = Convert.ToDateTime(Convert.ToDateTime(dataGridView2.Rows[dataGridView2.Rows.Count - 1].Cells["End_Date"].Value.ToString())); if (start.result.Date > last_end_date.Date) { Console.WriteLine("Case 1a"); dataGridView2.Rows.Add("Session Added", start.result, "Active Session"); dataGridView2.Rows[dataGridView2.Rows.Count - 1].DefaultCellStyle.BackColor = Color.LawnGreen; dataGridView2.Rows[dataGridView2.Rows.Count - 1].DefaultCellStyle.SelectionBackColor = Color.Green; return; } else { while (true) { setDate end = new setDate(DateTime.Now); end.set_Message("Enter End Date (Start Date: " + start.result.ToString().Substring(0, 10).Replace('/', '-') + ")"); end.ShowDialog(); if (end.values_set == false) { return; } if (end.result.Date <= start.result.Date) { a.ErrorBox("End Date should greater than start date"); } for (int i = 0; i < dataGridView2.Rows.Count; i++) { DateTime s_this = Convert.ToDateTime(dataGridView2.Rows[i].Cells["Begin_Date"].Value.ToString()); if (s_this.Date >= start.result.Date && s_this.Date <= end.result.Date) { a.ErrorBox("End date should be between entered start date and start date of next session"); break; } else { Console.WriteLine("Case 2c"); dataGridView2.Rows.Add("Session Added", start.result, end.result); this.dataGridView2.Sort(this.dataGridView2.Columns["Begin_Date"], ListSortDirection.Ascending); return; } } } } } else { DateTime last_start_date = Convert.ToDateTime(Convert.ToDateTime(dataGridView2.Rows[open_session_index].Cells["Begin_Date"].Value.ToString())); if (start.result.Date == last_start_date.Date) { Console.WriteLine("Case 2a"); a.ErrorBox("Start Date cannot be equal to the Begin Date of the open session (Session ID: " + dataGridView2.Rows[dataGridView2.Rows.Count - 1].Cells["Session_ID"].Value.ToString() + ")"); this.startSessionButton.PerformClick(); return; } else if (start.result.Date > last_start_date.Date) { Console.WriteLine("Case 2b"); a.ErrorBox("Please close the last session before opening a new one after that"); this.startSessionButton.PerformClick(); return; } else { while (true) { setDate end = new setDate(DateTime.Now); end.set_Message("Enter End Date (Start Date: " + start.result.ToString().Substring(0, 10).Replace('/', '-') + ")"); end.ShowDialog(); if (end.values_set == false) { return; } if (end.result.Date <= start.result.Date) { a.ErrorBox("End Date should greater than start date"); } for (int i = 0; i < dataGridView2.Rows.Count; i++) { DateTime s_this = Convert.ToDateTime(dataGridView2.Rows[i].Cells["Begin_Date"].Value.ToString()); if (s_this.Date >= start.result.Date && s_this.Date <= end.result.Date) { a.ErrorBox("End date should be between entered start date and start date of next session"); break; } else { Console.WriteLine("Case 2c"); dataGridView2.Rows.Add("Session Added", start.result, end.result); this.dataGridView2.Sort(this.dataGridView2.Columns["Begin_Date"], ListSortDirection.Ascending); return; } } } } } }