private void createButton_Click(object sender, EventArgs e) { if (eventNameTextBox.Text == "" && sizeTextBox.Text == "") { MessageBox.Show("Please fill in the event details. Thank you.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else if (eventNameTextBox.Text == "") { MessageBox.Show("Please enter an event name. Thank you.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else if (sizeTextBox.Text == "") { MessageBox.Show("Please enter the particpatiant size. Thank you.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else if (startTimePicker.Value > endTimePicker.Value) { MessageBox.Show("The event's start date cannot be after its end date.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else if (startTimePicker.Value == endTimePicker.Value) { MessageBox.Show("The event cannot have the same start and end time.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else if (int.Parse(sizeTextBox.Text) < 1) { MessageBox.Show("You cannot create an event with 0 participant size.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else if (listOfActivity.Count == 0 && scheduleEventView.Items.Count == 0) { MessageBox.Show("Please add your schedule. Thank you.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { string path = "events.xml"; int neweventId = 1; int newscheduleId = 1; if (File.Exists(path)) { neweventId = Organiser.getNewEventId(); newscheduleId = Organiser.getNewScheduleId(); } List<Participant> participantList = new List<Participant>(); List<int> facilitatorList = new List<int>(); Organiser org = new Organiser(currentUser); // Delete event Activity currentActivity; for (int i = 0; i < listOfActivity.Count; i++) { currentActivity = listOfActivity[i]; if (currentActivity.getDate().Year == Convert.ToDateTime(dateCombobox.Text).Year && currentActivity.getDate().Month == Convert.ToDateTime(dateCombobox.Text).Month && currentActivity.getDate().Day == Convert.ToDateTime(dateCombobox.Text).Day) { listOfActivity.Remove(currentActivity); i--; } } //Readd the current date event Activity currAct; Venue ven; DateTime time; for (int i = 0; i < scheduleEventView.Items.Count; i++) { time = returnTime(scheduleEventView.Items[i].SubItems[0].Text, Convert.ToDateTime(dateCombobox.Text)); int newVenueID = org.getCheckVenueId(scheduleEventView.Items[i].SubItems[2].Text); ven = new Venue(newVenueID, scheduleEventView.Items[i].SubItems[2].Text, Venue.getVenueCapacityfromID(newVenueID)); if (listOfActivity.Count == 0) newActivityID = org.getNewActivityId(); else newActivityID = getNewActIDFromActList(listOfActivity); currAct = new Activity(newActivityID, time, scheduleEventView.Items[i].SubItems[1].Text, ven); listOfActivity.Add(currAct); } listOfActivity = sortActivityList(listOfActivity); foreach (Activity newAct in listOfActivity) { org.addNewActivity(newAct); } List<string> listOfItems = new List<string>(); Schedule newSchedule = new Schedule(newscheduleId, listOfItems, listOfActivity); int newItemID = 0; List<int> listOfBudgetID = new List<int>(); List<Budget> listOfBudget = new List<Budget>(); Budget currBudget; for (int i = 0; i < budgetListListView.Items.Count; i++) { if (i == 0) newItemID = org.getNewItemID(); else newItemID++; listOfBudgetID.Add(newItemID); currBudget = new Budget(newItemID, double.Parse(budgetListListView.Items[i].SubItems[1].Text), budgetListListView.Items[i].SubItems[0].Text); listOfBudget.Add(currBudget); } org.addSchedule(newSchedule); org.addBudget(listOfBudget); EventEntity events = new EventEntity(neweventId, eventNameTextBox.Text, startTimePicker.Value, endTimePicker.Value, newscheduleId, int.Parse(sizeTextBox.Text), participantList, facilitatorList, listOfBudgetID, double.Parse(totalPriceTextBox.Text), currentUser.getUserId(), false, false, false, false); org.createEvent(events); if (MessageBox.Show(events.getEventName() + " has been created. Do you want to advertise?", "Registration", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { Advertise newAdvForm = new Advertise(this.eventNameTextBox.Text.ToString()); newAdvForm.Show(); } this.Close(); } }
private void dateCombobox_SelectedIndexChanged(object sender, EventArgs e) { Activity currentActivity; for (int i = 0; i < listOfActivity.Count; i++) { currentActivity = listOfActivity[i]; if (Convert.ToDateTime(dateCombobox.Text).Year == previousScheudleDate.Year && Convert.ToDateTime(dateCombobox.Text).Month == previousScheudleDate.Month && Convert.ToDateTime(dateCombobox.Text).Day == previousScheudleDate.Day) previousScheudleDate = Convert.ToDateTime(dateCombobox.Text); if (currentActivity.getDate().Year == previousScheudleDate.Year && currentActivity.getDate().Month == previousScheudleDate.Month && currentActivity.getDate().Day == previousScheudleDate.Day) { listOfActivity.Remove(currentActivity); i--; } } DateTime time; Activity newAct; Organiser org = new Organiser(currentUser); Venue ven; for (int i = 0; i < scheduleEventView.Items.Count; i++) { time = returnTime(scheduleEventView.Items[i].SubItems[0].Text, previousScheudleDate); int newVenueID = org.getCheckVenueId(scheduleEventView.Items[i].SubItems[2].Text); ven = new Venue(newVenueID, scheduleEventView.Items[i].SubItems[2].Text, Venue.getVenueCapacityfromID(newVenueID)); if (listOfActivity.Count == 0) newActivityID = org.getNewActivityId(); else newActivityID = getNewActIDFromActList(listOfActivity); newAct = new Activity(newActivityID, time, scheduleEventView.Items[i].SubItems[1].Text, ven); listOfActivity.Add(newAct); } scheduleEventView.Clear(); initMainEventList(); foreach (Activity currAct in listOfActivity) { DateTime currTime = currAct.getDate(); if (currAct.getDate().Year == Convert.ToDateTime(dateCombobox.SelectedItem.ToString()).Year && currAct.getDate().Month == Convert.ToDateTime(dateCombobox.SelectedItem.ToString()).Month && currAct.getDate().Day == Convert.ToDateTime(dateCombobox.SelectedItem.ToString()).Day) { if (listOfActivity.Count != 0) { ListViewItem newevent = new ListViewItem(String.Format("{0:t}", currAct.getDate())); newevent.SubItems.Add(currAct.getDescription().ToString()); newevent.SubItems.Add(currAct.getVenue().getlocation()); scheduleEventView.Items.Add(newevent); } } } }
//Activities Database Interaction Implementation public List<Activity> getListOfActivities() { List<Activity> listToPop = new List<Activity>(); XmlReaderSettings settings = new XmlReaderSettings(); settings.IgnoreWhitespace = true; using (XmlReader scanner = XmlReader.Create("activities.xml", settings)) { scanner.MoveToContent(); scanner.ReadToDescendant("Activity"); do { scanner.ReadToDescendant("activityId"); int activityId = scanner.ReadElementContentAsInt(); DateTime time = scanner.ReadElementContentAsDateTime(); string activityDescription = scanner.ReadElementContentAsString("description", ""); scanner.ReadToFollowing("venueId"); int i_venueId = scanner.ReadElementContentAsInt(); string i_location = scanner.ReadElementContentAsString("location", ""); int i_capacity = scanner.ReadElementContentAsInt(); Venue newVenue = new Venue(i_venueId, i_location, i_capacity); Activity newActivity = new Activity(activityId, time, activityDescription, newVenue); listToPop.Add(newActivity); //Skip end element till /activity end tag scanner.Skip(); scanner.Skip(); } while (scanner.ReadToNextSibling("Activity")); } return listToPop; }
//Schedules Database Interaction Implementation public List<Schedule> getListOfSchedule() { List<Schedule> listToPop = new List<Schedule>(); List<string> scheduleItems = new List<string>(); List<Activity> scheduleActivities = new List<Activity>(); XmlReaderSettings settings = new XmlReaderSettings(); settings.IgnoreWhitespace = true; using (XmlReader scanner = XmlReader.Create("schedules.xml", settings)) { scanner.MoveToContent(); scanner.ReadToDescendant("Schedule"); do { scanner.ReadToDescendant("scheduleId"); int scheduleId = scanner.ReadElementContentAsInt(); scanner.ReadToDescendant("item"); //GetAllItems while (scanner.Name!="listOfItems") { scheduleItems.Add(scanner.ReadElementContentAsString("item","")); } scanner.Skip(); scanner.ReadToDescendant("Activity"); do { scanner.ReadToDescendant("activityId"); int activityId = scanner.ReadElementContentAsInt(); DateTime time = scanner.ReadElementContentAsDateTime(); string activityDescription = scanner.ReadElementContentAsString("description", ""); scanner.ReadToFollowing("venueId"); int i_venueId = scanner.ReadElementContentAsInt(); string i_location = scanner.ReadElementContentAsString("location", ""); int i_capacity = scanner.ReadElementContentAsInt(); // int i_capacity = scanner.ReadElementContentAsInt(); Venue newVenue = new Venue(i_venueId, i_location, i_capacity); Activity newActivity = new Activity(activityId, time, activityDescription, newVenue); scheduleActivities.Add(newActivity); //Skip end element till /activity end tag scanner.Skip(); scanner.Skip(); } while (scanner.ReadToNextSibling("Activity")); //Clone Two new list List<string> clonedItemList = new List<string>(scheduleItems); List<Activity> clonedActivityList = new List<Activity>(scheduleActivities); Schedule newSchedule = new Schedule(scheduleId, clonedItemList,clonedActivityList); listToPop.Add(newSchedule); //Skip /activity end tag scanner.Skip(); //Clear both list scheduleItems.Clear(); scheduleActivities.Clear(); }while(scanner.ReadToNextSibling("Schedule")); } return listToPop; }
public bool addNewActivity(Activity newAct) { Database db = Database.CreateDatabase(DatabaseToken); List<Activity> activityList = db.getListOfActivities(); activityList.Add(newAct); db.saveListOfActivities(activityList); return true; }
private void updateForm_Load(object sender, EventArgs e) { EventEntity newEve = Facilitator.getEventEntity(currentEventID); titleLabel.Text = newEve.getEventName(); int organiserID = newEve.getOrganiserID(); organiserTextBox.Text = User.getNamefromID(organiserID); participantTextbox.Text = EventEntity.getParticipantSize(currentEventID).ToString(); DateTime dateValue = EventEntity.getStartTime(currentEventID); dateTextBox.Text = String.Format("{0:f}", dateValue); listOfDateTime = EventEntity.getListOfTimeFromEventID(currentEventID); listofDescription = EventEntity.getListOfDescriptionFromEventID(currentEventID); listOfVenue = EventEntity.getListOfVenueFromEventID(currentEventID); venueTextBox.Text = listOfVenue.Peek(); Activity currentAct; Venue ven; Organiser pub = new Organiser(currentUser); int newActID = pub.getNewActivityId(); newActID++; while (listOfDateTime.Count != 0) { string curlocation = listOfVenue.Dequeue(); ven = new Venue(Venue.getVenueIdfromLocation(curlocation), curlocation, Venue.getVenueCapacityfromID(Venue.getVenueIdfromLocation(curlocation))); currentAct = new Activity(newActID, listOfDateTime.Dequeue(), listofDescription.Dequeue(), ven); listOfActivity.Add(currentAct); newActID++; } setScheduleDay(dateValue, endTime); dateCombobox.Text = dateValue.ToLongDateString(); }
private void saveButton_Click(object sender, EventArgs e) { int numParticipant = int.Parse(participantTextbox.Text); if (numParticipant < EventEntity.getParticipantSize(currentEventID)) // Prohibit decrease in participant size { MessageBox.Show("You are not allowed to decrease the participant size", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else if (timeListBox.Items.Count != descriptionListBox.Items.Count || timeListBox.Items.Count != venueListBox.Items.Count) { MessageBox.Show("At least one activity is missing in the schedule!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { EventEntity.setParticipantNumFromEventID(currentEventID, numParticipant); // delete schedule Activity currentActivity; for (int i = 0; i < listOfActivity.Count; i++) { currentActivity = listOfActivity[i]; if (currentActivity.getDate().Year == Convert.ToDateTime(dateCombobox.Text).Year && currentActivity.getDate().Month == Convert.ToDateTime(dateCombobox.Text).Month && currentActivity.getDate().Day == Convert.ToDateTime(dateCombobox.Text).Day) { listOfActivity.Remove(currentActivity); i--; } } //set schedule Organiser org = new Organiser(currentUser); Activity currAct; Venue ven; DateTime time; for (int i = 0; i < timeListBox.Items.Count; i++) { time = returnTime(timeListBox.Items[i].ToString(), Convert.ToDateTime(dateCombobox.Text)); int newVenueID = org.getCheckVenueId(venueListBox.Items[i].ToString()); ven = new Venue(newVenueID, venueListBox.Items[i].ToString(), Venue.getVenueCapacityfromID(newVenueID)); if (listOfActivity.Count == 0) newActivityID = org.getNewActivityId(); else newActivityID = getNewActIDFromActList(listOfActivity); currAct = new Activity(newActivityID, time, descriptionListBox.Items[i].ToString(), ven); listOfActivity.Add(currAct); } listOfActivity = sortActivityListByID(listOfActivity); foreach(Activity act in listOfActivity) org.addNewActivity(act); listOfActivity = sortActivityListByTime(listOfActivity); // EventEntity.setSchedule(currentEventID, listOfDateTime, listOfdescription, listOfVenue); EventEntity.replaceSchedule(currentEventID, listOfActivity); //Set Alert Flag EventEntity eve = new EventEntity(); eve.setEventUpdatedFlag(currentEventID); // MessageBox.Show("Save successfully.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); } }