private void btnSave_Click(object sender, System.EventArgs e) { string sConflictingEvent=""; if(!IsValid()) return; //check real teacher first string strOverLapMess=""; strOverLapMess = strOverLapMess.Trim(); //AutoSave=false; //GenerateEvent(IsRecurrenceFlag); //AutoSave=true; if(cmbTeacher2.Text.Trim()!="") { bool Ok=false; if(dtblDates==null) { Ok = IsCheckOverlapTime(ref sConflictingEvent, "Real", ref strOverLapMess); } else { foreach(DataRow dr in dtblDates.Rows) { Ok = IsCheckOverlapTime(ref sConflictingEvent, "Real", dr[0].ToString(), dr[1].ToString(), ref strOverLapMess); if(Ok) break; } } if(Ok) { DialogResult dlg = BusinessLayer.Message.MsgConfirmation( "<" + cmbTeacher2.Text + "> is already scheduled in <" + sConflictingEvent + ">" + strOverLapMess + "\nDo you still wish to save this event?"); if(dlg==DialogResult.No) { return; } } } else { //if real instructor is blank then check scheduled teacher bool Ok=false; if(dtblDates==null) Ok = IsCheckOverlapTime(ref sConflictingEvent, "Scheduled", ref strOverLapMess); else foreach(DataRow dr in dtblDates.Rows) { Ok = IsCheckOverlapTime(ref sConflictingEvent, "Scheduled", dr[0].ToString(), dr[1].ToString(), ref strOverLapMess); if(Ok) break; } if(Ok) { DialogResult dlg = BusinessLayer.Message.MsgConfirmation( "<" + cmbTeacher1.Text + "> is already scheduled in <" + sConflictingEvent + ">" + strOverLapMess + "\nDo you still wish to save this event?"); if(dlg==DialogResult.No) return; } } // Saving Logic /* Differentiate on the basis of current mode. For Edit mode, the event will * be updated after ensuring no conflicts arise as a result of the changes. * For Add, the event will be added after ensuring no conflicts arise. */ Boolean boolSuccess = false; if (_mode == "Edit") { //TODO:Differentiate between Class and Program if(objEvent.CalendarEventID > 0) if (!objEvent.IsConflicting(dtStart.Value, dtEnd.Value)) { SaveCalendarData(dtStart.Value, dtEnd.Value); if (_eventtype == EventType.Initial || _eventtype == EventType.MidTerm || _eventtype == EventType.Final) { objEvent.RepeatRule = ""; objEvent.NegativeException = ""; objEvent.RecurrenceText = ""; objEvent.Description = txtDescription.Text; objEvent.EventStatus = cmbEventStatus.SelectedIndex; boolSuccess = objEvent.UpdateData(); if (!boolSuccess) { Scheduler.BusinessLayer.Message.ShowException("Updating Event record.", objEvent.Message); return; } } } } else if (_mode == "Add") { //Create a new 'Event' object objEvent = new Events(); if (_eventtype == EventType.Extra) { //Add Extra Class - add record to 'CalendarEvent' table ONLY SaveCalendarEvent(dtStart.Value, dtEnd.Value); } else if (_eventtype == EventType.Final || _eventtype == EventType.Initial || _eventtype == EventType.MidTerm) { //Add Test Event - add record to 'Event' AND 'CalendarEvent' tables AND update 'Course' table string strField = ""; if (intClassID != 0 || intProgramID != 0) { switch (_eventtype) { default: case EventType.Initial: strField = "TestInitialEventID"; break; case EventType.MidTerm: strField = "TestMidtermEventID"; break; case EventType.Final: strField = "TestFinalEventID"; break; } SaveData(); SaveCalendarEvent(dtStart.Value, dtEnd.Value); if (intClassID != 0) objEvent.UpdateClassEvent(intClassID, strField); else if (intProgramID != 0) objEvent.UpdateProgramEvent(intProgramID, strField); } } } /* if(boolSaveSeries) { SaveData(); if(_mode=="Edit") objEvent.DeleteCalendarEvent(); //GenerateEvent(IsRecurrenceFlag); } else SaveCalendarData(dtStart.Value, dtEnd.Value); if(!OpenFromClsProg) { //Updating the Test Event string strField=""; if(intClassID!=0) { if(cmbEvent.SelectedIndex==0) strField="EventID"; else if(cmbEvent.SelectedIndex==1) strField="TestInitialEventID"; else if(cmbEvent.SelectedIndex==2) strField="TestMidtermEventID"; else if(cmbEvent.SelectedIndex==3) strField="TestFinalEventID"; objEvent.UpdateTestEvent("Class", strField, objEvent.EventID, intClassID); } else if(intProgramID!=0) { if(cmbEvent.SelectedIndex==0) strField="TestInitialEventID"; else if(cmbEvent.SelectedIndex==1) strField="TestMidtermEventID"; else if(cmbEvent.SelectedIndex==2) strField="TestFinalEventID"; objEvent.UpdateTestEvent("Program", strField, objEvent.EventID, intProgramID); } else { objEvent.RemoveTestEvent(objEvent.EventID, intClassID); } } */ this.DialogResult = DialogResult.OK; }