public int Add(Mission mission) { OracleCommand cmd; Sin sin = mission as Sin; Hope hope = mission as Hope; string desc = mission.Beschrijving; int lat = mission.Latitude; int lng = mission.Longitude; Boat boat = mission.Boot; if (sin != null) { int police = sin.AantalPolitie; DateTime start = sin.Datum; cmd = new OracleCommand("INSERT INTO MISSIE (TYPE, STARTTIJD, AANTALPOLITIE, LATITUDE, LONGITUDE, BOOTID, BESCHRIJVING) VALUES " + "('SIN', :tijd, :politie, :lat, :lng, :bootid, :beschrijving)"); cmd.Parameters.Add("tijd", new SimpleDate(start).OracleDate); cmd.Parameters.Add("politie", police); cmd.Parameters.Add("lat", lat); cmd.Parameters.Add("lng", lng); cmd.Parameters.Add("bootid", boat.Id); cmd.Parameters.Add("beschrijving", desc); } else if (hope != null) { DateTime eind = hope.EndDate; DateTime start = hope.StartDate; cmd = new OracleCommand( "INSERT INTO MISSIE (TYPE, STARTTIJD, EINDTIJD, APPROVED, LATITUDE, LONGITUDE, BOOTID, BESCHRIJVING) VALUES " + "('HOPE', :starttijd, :eindtijd, 0, :lat, :lng, :bootid, :beschrijving)"); cmd.Parameters.Add("starttijd", new SimpleDate(start).OracleDate); cmd.Parameters.Add("eindtijd", new SimpleDate(eind).OracleDate); cmd.Parameters.Add("lat", lat); cmd.Parameters.Add("lng", lng); cmd.Parameters.Add("bootid", boat.Id); cmd.Parameters.Add("beschrijving", desc); } else { throw new ArgumentException("Mission must be Hope or Sin"); } if (!Execute(cmd)) return 0; cmd = new OracleCommand("SELECT MAX(MISSIEID) AS ID FROM MISSIE"); return Convert.ToInt32(ExecuteQuery(cmd)[0]["ID"]); }
private void lstMissions_SelectedIndexChanged(object sender, EventArgs e) { try { string selectedItem = lstMissions.SelectedItem.ToString(); int selectedId = Convert.ToInt32(admin.GetSubstringByString("(", ")", selectedItem)); selectedMission = admin.FindMission(selectedId); } catch { selectedMission = null; } if (selectedMission != null) { txtMisDesc.Text = selectedMission.Beschrijving; numMisLat.Value = selectedMission.Latitude; numMisLng.Value = selectedMission.Longitude; Sin thisSin = selectedMission as Sin; Hope thisHope = selectedMission as Hope; if (thisSin != null) { radMisSin.Checked = true; numMisPolice.Value = thisSin.AantalPolitie; // It crashes here for some reason.. // I gues DateTimePickers don't like being told what to do //datSinDate.Value = thisSin.Datum; } else if (thisHope != null) { radMisHope.Checked = true; // It crashes here for some reason.. //datMisStart.Value = thisHope.StartDate; //datMisEnd.Value = thisHope.EndDate; comMisBoat.SelectedIndex = comMisBoat.Items.IndexOf(thisHope.Boot); } btnMisUpdate.Enabled = true; } else { btnMisUpdate.Enabled = false; } }
public int Add(Mission mission) { if(!(mission is Hope) && !(mission is Sin)) throw new ArgumentException("Mission must be either Hope or Sin"); return db.Add(mission); }