//Constructor public Intervention() { this.resourceList = new List <Resource>(); this.interventionNumber = ++lastIntervention; this.timeOfCall = DateTime.Now; this.additionalInfo = new InterventionAdditionalInfo[10]; this.abc = new ABC(this); this.isConcludedBool = false; this.firstTeamArrivalTime = DateTime.MinValue; this.callID = -1; activeInterventionList.Add(this); ClassModifiedNotification(typeof(Intervention)); if (Operation.currentOperation != null) { this.operationID = Operation.currentOperation.getID(); } this.interventionID = StaticDBConnection.NonQueryDatabaseWithID("INSERT INTO [Interventions] (Operation_ID, Intervention_Number, Time_Of_Call) VALUES (" + operationID + ", " + interventionNumber + ", '" + StaticDBConnection.DateTimeSQLite(timeOfCall) + "')"); }
//Set first responder arrival time public void setFirstResponderArrivalTime(DateTime firstResponderArrivalTime) { this.firstResponderArrivalTime = firstResponderArrivalTime; StaticDBConnection.NonQueryDatabase("UPDATE [Calls] SET Ambulance_Time='" + StaticDBConnection.DateTimeSQLite(firstResponderArrivalTime) + "' WHERE Call_ID=" + callID + ";"); }
//Set ambulance arrival time public void setAmbulanceArrivalTime(DateTime ambulanceArrivalTime) { this.ambulanceArrivalTime = ambulanceArrivalTime; StaticDBConnection.NonQueryDatabase("UPDATE [Calls] SET Ambulance_Time='" + StaticDBConnection.DateTimeSQLite(ambulanceArrivalTime) + "' WHERE Call_ID=" + callID + ";"); }
//Set conclusion time public void setConclusionTime(DateTime conclusionTime) { this.conclusionTime = conclusionTime; StaticDBConnection.NonQueryDatabase("UPDATE [Interventions] SET Conclusion_Time='" + StaticDBConnection.DateTimeSQLite(conclusionTime) + "' WHERE Intervention_ID=" + interventionID + ";"); }
//Set 911 call time public void setCall911Time(DateTime call911Time) { this.callID = StaticDBConnection.NonQueryDatabaseWithID("INSERT INTO [Calls] (Intervention_ID) VALUES (" + this.interventionID + ");"); this.call911Time = call911Time; StaticDBConnection.NonQueryDatabase("UPDATE [Calls] SET Call_Time='" + StaticDBConnection.DateTimeSQLite(call911Time) + "' WHERE Call_ID=" + callID + ";"); }
//Add intervening teams public void AddInterveningTeam(Team team) { foreach (Resource resource in resourceList) { if (resource.getTeam() == team) { resource.setIntervening(true); InstanceModifiedNotification(); if (team.getStatus().ToString().Equals("intervening")) { team.setStatus("moving"); } return; } } //Set up arrival time if (firstTeamArrivalTime == DateTime.MinValue) { firstTeamArrivalTime = DateTime.Now; } team.incrementInterventionCount(); resourceList.Add(new Resource(this, team)); StaticDBConnection.NonQueryDatabase("INSERT INTO [Intervening_Teams] (Intervention_ID, Team_ID, Started_Intervening) VALUES (" + interventionID + ", " + team.getID() + ", '" + StaticDBConnection.DateTimeSQLite(DateTime.Now) + "');"); InstanceModifiedNotification(); }
//Remove a team from an intervention public void RemoveInterveningTeam(Team team) { Resource resourceToRemove = null; foreach (Resource resource in resourceList) { if (resource.getTeam() == team) { if (!resource.hasArrived()) { resourceToRemove = resource; } else { resource.setIntervening(false); } StaticDBConnection.NonQueryDatabase("UPDATE [Intervening_Teams] SET Stopped_Intervening='" + StaticDBConnection.DateTimeSQLite(DateTime.Now) + "' WHERE Intervention_ID=" + interventionID + " AND Team_ID=" + team.getID() + ";"); } } if (resourceToRemove != null) { resourceList.Remove(resourceToRemove); } InstanceModifiedNotification(); }
public InterventionAdditionalInfo(Intervention intervention, String information, DateTime timestamp) { this.information = information; this.timestamp = timestamp; this.interventionID = intervention.getID(); this.additionalInfoID = StaticDBConnection.NonQueryDatabaseWithID("INSERT INTO [Additional_Informations] (Intervention_ID, Information, Timestamp) VALUES (" + interventionID + ", '" + information.Replace("'", "''") + "', '" + StaticDBConnection.DateTimeSQLite(timestamp) + "')"); }
//Creates a new operation public Operation(String operationName, String acronym, DateTime shiftStart, DateTime shiftEnd, String dispatcherName) { this.operationName = operationName; this.acronym = acronym; this.shiftStart = shiftStart; this.shiftEnd = shiftEnd; this.dispatcherName = dispatcherName; this.operationID = StaticDBConnection.NonQueryDatabaseWithID("INSERT INTO [Operations] (Name, Acronym, Shift_Start, Shift_End, Dispatcher) VALUES ('" + operationName.Replace("'", "''") + "', '" + acronym.Replace("'", "''") + "', '" + StaticDBConnection.DateTimeSQLite(shiftStart) + "', '" + StaticDBConnection.DateTimeSQLite(shiftEnd) + "', '" + dispatcherName.Replace("'", "''") + "')"); currentOperation = this; }
//Removing equipment from the team list public void RemoveEquipment(Equipment equipment) { if (equipmentList.Contains(equipment)) { equipmentList.Remove(equipment); StaticDBConnection.NonQueryDatabase("UPDATE [Assigned_Equipment] SET Removed_Time='" + StaticDBConnection.DateTimeSQLite(DateTime.Now) + "' WHERE Equipment_ID=" + equipment.getID() + " AND Team_ID=" + teamID + ";"); InstanceModifiedNotification(); } }
//Deletes a team from the team list private static void DeleteTeam(Team team, List <Team> list) { list.Remove(team); while (team.memberList.Count > 0) { StaticDBConnection.NonQueryDatabase("UPDATE [Team_Members] SET Disbanded='" + StaticDBConnection.DateTimeSQLite(DateTime.Now) + "' WHERE Volunteer_ID=" + team.getMember(0).getID() + " AND Team_ID=" + team.getID() + ";"); team.memberList.RemoveAt(0); } ClassModifiedNotification(typeof(Team)); }
//Adds a maximum of 3 equipments to the team public bool AddEquipment(Equipment equipment) { if (equipmentList.Count < 3) { equipmentList.Add(equipment); StaticDBConnection.NonQueryDatabase("INSERT INTO [Assigned_Equipment] (Equipment_ID, Team_ID, Assigned_Time) VALUES (" + equipment.getID() + ", " + teamID + ", '" + StaticDBConnection.DateTimeSQLite(DateTime.Now) + "');"); InstanceModifiedNotification(); return(true); } MessageBox.Show(ETD.Properties.Resources.MessageBox_Notification_EquipmentLimit); return(false); }
//Adds a maximum of 3 new member to the team public bool AddMember(TeamMember member) { if (memberList.Count <= 2) { memberList.Add(member); StaticDBConnection.NonQueryDatabase("INSERT INTO [Team_Members] (Team_ID, Volunteer_ID, Departure, Joined) VALUES (" + teamID + ", " + member.getID() + ", '" + StaticDBConnection.DateTimeSQLite(member.getDeparture()) + "', '" + StaticDBConnection.DateTimeSQLite(DateTime.Now) + "');"); if ((int)highestLevelOfTraining < (int)member.getTrainingLevel()) { highestLevelOfTraining = member.getTrainingLevel(); } InstanceModifiedNotification(); return(true); } return(false); }
//Constructors public Resource(String resourceName, Team team, bool intervening, DateTime moving, DateTime arrival) { this.resourceName = resourceName; this.team = team; this.intervening = intervening; this.moving = moving; this.arrival = arrival; this.resourceID = StaticDBConnection.NonQueryDatabaseWithID("INSERT INTO [Resources] (Intervention_ID, Name, Team_ID, Intervening, Moving, Arrival) VALUES (" + interventionID + ", '" + resourceName.Replace("'", "''") + "', " + team.getID() + ", " + intervening + "', '" + StaticDBConnection.DateTimeSQLite(moving) + "', '" + StaticDBConnection.DateTimeSQLite(arrival) + ")"); }
//Set arrival time public void setArrival(DateTime arrival) { this.arrival = arrival; this.arrivedBool = true; StaticDBConnection.NonQueryDatabase("UPDATE [Resources] SET Arrival='" + StaticDBConnection.DateTimeSQLite(arrival) + "', HasArrived='TRUE' WHERE Resource_ID=" + resourceID + ";"); }
//Set status of moving public void setMoving(DateTime moving) { this.moving = moving; this.movingBool = true; StaticDBConnection.NonQueryDatabase("UPDATE [Resources] SET Moving='" + StaticDBConnection.DateTimeSQLite(moving) + "', HasArrived='TRUE' WHERE Resource_ID=" + resourceID + ";"); }