public void Refresh(Rekening[] rekeningen) { if (table != null) { Remove(table); } // Bereken afmetingen van de tabel int aantalRekeningen = rekeningen.Length; uint columns = (uint)Math.Ceiling(Math.Sqrt((double)aantalRekeningen)); uint rows = (uint)Math.Floor(Math.Sqrt((double)aantalRekeningen)); table = new Table(rows, columns, true); uint index = 0; foreach(var rekening in rekeningen) { RekeningWidget rekeningWidget = new RekeningWidget(rekening); rekeningWidget.Clicked += handleRekeningWidgetClicked; // Bereken rekening widget posities uint thisColumn = index % columns; uint thisRow = (index - thisColumn) / columns; table.Attach(rekeningWidget, thisColumn, thisColumn + 1, thisRow, thisRow + 1); index++; } Add(table); }
public void BestellingToevoegen(Rekening rekening, Consumptie consumptie) { Bestelling bestelling = findBestelling(rekening, consumptie); if (bestelling == null) { bestelling = new Bestelling(rekening, consumptie); ((ListStore)Model).AppendValues(bestelling.ToString(), bestelling); } else { bestelling.Aantal++; Model.SetValue(find(bestelling), 0, bestelling.ToString()); } }
public void ConsumptieAfrekenen(Rekening rekening, Consumptie consumptie) { rekening.Waarde += consumptie.Prijs; IDbTransaction transaction = connection.BeginTransaction(); try { save(rekening); logAfrekening(rekening, consumptie); transaction.Commit(); Commit(); } catch(Exception ex) { transaction.Rollback(); rekening.Waarde -= consumptie.Prijs; throw new RepositoryException("Kan consumptie '" + consumptie.Naam + "' niet afrekenen voor '" + rekening.Naam + "'.", ex); } }
public void Create(Rekening rekening) { if (rekening == null) { throw new ArgumentNullException("Rekening kan niet null zijn."); } if (FindByNaam(rekening.Naam) != null) { throw new RepositoryException("Er bestaat al een rekening met naam '" + rekening.Naam + "'."); } IDbCommand command = connection.CreateCommand(); command.CommandText = "INSERT INTO rekening (naam, waarde) VALUES (@naam, @waarde)"; command.AddParameter("@naam", rekening.Naam); command.AddParameter("@waarde", rekening.Waarde); command.Prepare(); if (command.ExecuteNonQuery() != 1) { throw new RepositoryException("Kan rekening niet maken."); } Commit(); }
private void save(Rekening rekening) { if (!rekening.Validate()) { throw new RepositoryException("De rekening '" + rekening.Naam + "' is niet valide."); } if (rekening.Id == 0) { // Bestaat nog niet, dus nieuw aanmaken Create(rekening); } else { // Bestaat al, dus updaten IDbCommand command = connection.CreateCommand(); command.CommandText = "UPDATE rekening SET Naam = @naam, Waarde = @waarde WHERE rowid = @id"; command.AddParameter("@id", rekening.Id); command.AddParameter("@naam", rekening.Naam); command.AddParameter("@waarde", rekening.Waarde); command.Prepare(); if (command.ExecuteNonQuery() != 1) { throw new RepositoryException("Kan rekening '" + rekening.Naam + "' niet opslaan."); } } }
private Rekening readRekening(IDataReader dataReader) { Rekening rekening = new Rekening(); rekening.Id = dataReader.GetInt32("rowid"); rekening.Naam = dataReader.GetString("Naam"); rekening.Waarde = dataReader.GetDecimal("Waarde"); return rekening; }
private void logAfrekening(Rekening rekening, Consumptie consumptie) { IDbCommand command = connection.CreateCommand(); command.CommandText = "INSERT INTO consumptielog (rekeningid, rekeningnaam, consumptieid, consumptienaam, datum) VALUES (@rekeningId, @rekeningNaam, @consumptieId, @consumptieNaam, current_timestamp)"; command.AddParameter("@rekeningId", rekening.Id); command.AddParameter("@rekeningNaam", rekening.Naam); command.AddParameter("@consumptieId", consumptie.Id); command.AddParameter("@consumptieNaam", consumptie.Naam); command.Prepare(); if (command.ExecuteNonQuery() != 1) { throw new RepositoryException("Kan consumptie afrekening van '" + consumptie.Naam + "' niet loggen voor rekening '" + rekening.Naam + "'."); } }
public void Update(Rekening rekening) { if (rekening.Id == 0) { throw new RepositoryException("Ongeldige rekening."); } IDbCommand command = connection.CreateCommand(); command.CommandText = "UPDATE rekening SET Naam = @naam, Waarde = @waarde WHERE rowid = @id"; command.AddParameter("@naam", rekening.Naam); command.AddParameter("@waarde", rekening.Waarde); command.AddParameter("@id", rekening.Id); command.Prepare(); command.ExecuteNonQuery(); Commit(); }
public RekeningWidget(Rekening rekening) : base() { this.rekening = rekening; initialize(); }
void handleRekeningClicked(object sender, Rekening rekening) { huidigeRekening = rekening; ConsumptieOverzichtWidget consumptieOverzichtWidget = new ConsumptieOverzichtWidget(this); consumptieOverzichtWidget.Refresh(consumptieRepository.GetAll()); consumptieOverzichtWidget.Destroyed += handleConsumptieOverzichtWidgetClosed; consumptieOverzichtWidget.ShowAll(); }
private Bestelling findBestelling(Rekening rekening, Consumptie consumptie) { TreeIter iter; Model.GetIterFirst(out iter); do { Bestelling bestelling = (Bestelling)Model.GetValue(iter, 1); if (bestelling != null && bestelling.Rekening.Equals(rekening) && bestelling.Consumptie.Equals(consumptie)) { return bestelling; } } while(Model.IterNext(ref iter)); return null; }
public Bestelling(Rekening rekening, Consumptie consumptie) { Rekening = rekening; Consumptie = consumptie; Aantal = 1; }