public void TestAddAngebot() { Angebot a = new Angebot(); a.Chance = 65; a.Titel = "Angebot 5"; a.Datum = DateTime.Parse("16-04-2013"); a.Dauer = 98; a.Kundenid = 1; a.Projektid = 2; a.Summe = 334; a.Status = ObjectStates.New; int oldlength = BL.getAngebote().Count; BL.saveAngebot(a); int index = BL.getAngebote().Count; Assert.That(BL.getAngebot(index).Angebotid, Is.EqualTo(index)); Assert.That(BL.getAngebote().Count, Is.EqualTo(oldlength + 1)); Assert.That(BL.getAngebot(index).Titel, Is.EqualTo("Angebot 5")); Assert.That(BL.getAngebot(index).Dauer, Is.EqualTo(98)); Assert.That(BL.getAngebot(index).Chance, Is.EqualTo(65)); Assert.That(BL.getAngebot(index).Kundenid, Is.EqualTo(1)); Assert.That(BL.getAngebot(index).Projektid, Is.EqualTo(2)); Assert.That(BL.getAngebot(index).Summe, Is.EqualTo(334)); Assert.That(BL.getAngebot(index).Datum, Is.EqualTo(DateTime.Parse("16-04-2013"))); Assert.That(BL.getAngebot(index).Status, Is.EqualTo(ObjectStates.Modified)); }
public void TestGetAngeboteByProjektid() { Angebot a = new Angebot(15, "test", -0.4, DateTime.Now, 5, 2, 1, 1, ObjectStates.New); BL.saveAngebot(a); Assert.That(BL.getAngeboteByProjektId(1).Count, Is.EqualTo(2)); BL.deleteAngebot(a); }
public static void deleteAngebot(Angebot a) { var tmp = new List<Angebot>(); try { if (a.Projektid != null) { tmp = DALFactory.getDAL().getAngebotViewListByProjektId(a.Projektid.Value); } if (tmp.Count == 1) { Logger.Warn("Angebot mit ID " + a.Angebotid + " kann nicht gelöscht werden, da das Projekt mit ID " + a.Projektid.Value + " sonst kein Angebot zugeordnet hat!"); throw new BLException("Angebot kann nicht gelöscht werden, da das Projekt " + DALFactory.getDAL().getProjekt(a.Projektid.Value).Name + " sonst kein Angebot mehr zugeordnet hat!"); } else { DALFactory.getDAL().deleteAngebot(a); Logger.Info("Angebot mit ID " + a.Angebotid + " gelöscht!"); } } catch (DALException ex) { Logger.Error("Angebot mit ID " + a.Angebotid + " konnte nicht gelöscht werden!", ex); throw new BLException("Angebot konnte nicht gelöscht werden!"); } }
public void TestDeleteAngebot() { Angebot a = new Angebot(); a = BL.getAngebot(4); int oldlength = BL.getAngebote().Count; BL.deleteAngebot(a); Assert.That(BL.getAngebote().Count, Is.EqualTo(oldlength - 1)); Assert.That(BL.getAngebote().Last(), Is.Not.EqualTo(a)); }
public void TestAddAngebotMin() { Angebot a = new Angebot(15, "test", -0.4, DateTime.Now, 5, 2, 1, 1, ObjectStates.New); BL.saveAngebot(a); Assert.That(BL.getAngebotByProjektId(1).Titel, Is.EqualTo("test")); Assert.That(BL.getAngebotByProjektId(1).Dauer, Is.EqualTo(5)); Assert.That(BL.getAngebotByProjektId(1).Kundenid, Is.Not.EqualTo(-1)); BL.deleteAngebot(a); }
public void deleteAngebot(Angebot a) { buildconnection(); NpgsqlCommand comm = null; try { string sql = "Delete from angebote where angebotid = @angebotid"; comm = new NpgsqlCommand(sql, conn); comm.Parameters.AddWithValue("@angebotid", a.Angebotid); comm.Prepare(); comm.ExecuteNonQuery(); a.Status = ObjectStates.Deleted; } catch (NpgsqlException exp) { throw new DALException("DAL: Angebot konnte nicht gelöscht werden!", exp); } finally { comm.Dispose(); conn.Close(); } }
public void saveAngebot(Angebot a) { if (a.Status == ObjectStates.New) { a.Status = ObjectStates.Unmodified; a.Angebotid = angebote.Count + 1; angebote.Add(a); } else if (a.Status == ObjectStates.Modified) { int index = angebote.IndexOf(a); angebote[index].Angebotid = a.Angebotid; angebote[index].Titel = a.Titel; angebote[index].Chance = a.Chance; angebote[index].Datum = a.Datum; angebote[index].Dauer = a.Dauer; angebote[index].Kundenid = a.Kundenid; angebote[index].Projektid = a.Projektid; angebote[index].Summe = a.Summe; angebote[index].Status = ObjectStates.Unmodified; } }
public Angebot getAngebotByProjektId(int projektid) { Angebot a = new Angebot(); foreach (var item in angebote) { if (item.Projektid == projektid) a = item; } return a; }
public Angebot getAngebot(int angebotid) { var tmp = new Angebot(); foreach (var item in angebote) { if (item.Angebotid == angebotid) { tmp = item; break; } } return tmp; }
public void deleteAngebot(Angebot a) { angebote.Remove(a); }
public static void saveAngebot(Angebot a) { try { if (a.Chance < 0 || a.Chance > 100) { Logger.Warn("Wert von Chance außerhalb der Grenzen!"); throw new BLException("Angebot: Wert von Chance außerhalb der Grenzen!"); } var tmpang = DALFactory.getDAL().getAngebot(a.Angebotid); if (!a.Projektid.HasValue) { DALFactory.getDAL().saveAngebot(a); Logger.Info("Angebot mit ID " + a.Angebotid + " gespeichert!"); } else { if (!tmpang.Projektid.HasValue) tmpang.Projektid = a.Projektid; if (DALFactory.getDAL().getAngebotViewListByProjektId(tmpang.Projektid.Value).Count <= 1 && a.Status == ObjectStates.Modified && tmpang.Projektid != a.Projektid) { Logger.Warn("Angebot mit ID " + a.Angebotid + " kann nicht gespeichert werden, da ein Projekt sonst kein Angebot hat"); throw new BLException("Angebot kann nicht gespeichert werden, da ein Projekt sonst kein Angebot hat!"); } else { DALFactory.getDAL().saveAngebot(a); Logger.Info("Angebot mit ID " + a.Angebotid + " gespeichert!"); } } } catch (DALException ex) { Logger.Error("Angebot mit ID " + a.Angebotid + " konnte nicht gespeichert werden!", ex); throw new BLException("Angebot konnte nicht gespeichert werden!"); } }
public static Angebot getAngebotByProjektId(int projektid) { var tmp = new Angebot(); try { tmp = DALFactory.getDAL().getAngebotByProjektId(projektid); } catch (DALException ex) { throw; } return tmp; }
public List<Angebot> getAngebotViewListByProjektId(int projektid) { buildconnection(); List<Angebot> alist = new List<Angebot>(); NpgsqlCommand comm = null; NpgsqlDataReader reader = null; try { string sql = @"Select angebotid, summe, datum, dauer, chance, kundenid, projektid, titel from angebote where projektid = @projektid;"; comm = new NpgsqlCommand(sql, conn); comm.Parameters.AddWithValue("@projektid", projektid); reader = comm.ExecuteReader(); while (reader.Read()) { Angebot a = new Angebot(); a.Angebotid = reader.GetInt32(0); a.Summe = reader.GetDouble(1); a.Datum = reader.GetDateTime(2); a.Dauer = reader.GetInt32(3); a.Chance = reader.GetInt32(4); a.Kundenid = reader.GetInt32(5); a.Projektid = reader.ReadNullableInt(6); a.Titel = reader.GetString(7).Trim(); a.Status = ObjectStates.Unmodified; alist.Add(a); } return alist; } catch (NpgsqlException exp) { throw new DALException("DAL: Angebot konnte nicht gefunden werden!", exp); } finally { comm.Dispose(); conn.Close(); reader.Close(); } }
public List<Angebot> getAngebote() { buildconnection(); List<Angebot> alist = new List<Angebot>(); NpgsqlCommand comm = null; NpgsqlDataReader reader = null; try { string sql = "Select angebotid,summe,datum,dauer,chance,kundenid,projektid,titel from angebote;"; comm = new NpgsqlCommand(sql, conn); reader = comm.ExecuteReader(); while (reader.Read()) { Angebot a = new Angebot(); a.Angebotid = reader.GetInt32(0); a.Summe = reader.GetDouble(1); a.Datum = reader.GetDateTime(2); a.Dauer = reader.GetInt32(3); a.Chance = reader.GetInt32(4); a.Kundenid = reader.GetInt32(5); a.Projektid = reader.ReadNullableInt(6); a.Titel = reader.GetString(7).Trim(); a.Status = ObjectStates.Unmodified; if (a.Chance > 0 && !a.Projektid.HasValue) { alist.Add(a); } } } catch (NpgsqlException exp) { throw new DALException("DAL: Angebotliste konnte aus der Datenbank nicht geladen werden!", exp); } finally { reader.Close(); comm.Dispose(); conn.Close(); } return alist; }
public void saveAngebot(Angebot a) { buildconnection(); NpgsqlCommand comm = null; try { string sql = ""; if (a.Status == ObjectStates.New) { sql = @"Insert into angebote (titel,summe,datum,dauer,chance,kundenid, projektid) values (@titel,@summe,@datum,@dauer,@chance,@kundenid, @projektid)"; comm = new NpgsqlCommand(sql, conn); } else if (a.Status == ObjectStates.Modified) { sql = @"Update angebote set titel = @titel, summe = @summe, datum = @datum, dauer=@dauer,chance = @chance, kundenid = @kundenid, projektid = @projektid where angebotid = @angebotid"; comm = new NpgsqlCommand(sql, conn); comm.Parameters.AddWithValue("@angebotid", a.Angebotid); } comm.Parameters.AddWithValue("@titel", a.Titel); comm.Parameters.AddWithValue("@summe", a.Summe); comm.Parameters.AddWithValue("@datum", a.Datum); comm.Parameters.AddWithValue("@dauer", a.Dauer); comm.Parameters.AddWithValue("@chance", a.Chance); comm.Parameters.AddWithValue("@kundenid", a.Kundenid); comm.Parameters.AddWithValue("@projektid", a.Projektid); comm.Prepare(); comm.ExecuteNonQuery(); a.Status = ObjectStates.Unmodified; } catch (NpgsqlException exp) { throw new DALException("DAL: Angebot konnte nicht gepspeichert werden!", exp); } finally { comm.Dispose(); conn.Close(); } }