public async Task <IEnumerable <Spielerabrechnung> > RechneAbAsync(DateTime begda, DateTime endda, VolleMoehre.Contracts.Interfaces.IDBAdapter store) { List <Spielerabrechnung> abrechnungsListe = new List <Spielerabrechnung>(); List <Spieler> alleSpieler = (await store.GetAllAsync <Spieler>()).Where(s => s.Aktiv).ToList(); List <Auftrittstermin> termine = (await store.GetAllAsync <Auftrittstermin>(t => begda <= t.Datum && t.Datum <= endda)).ToList(); foreach (Spieler spieler in alleSpieler) { Spielerabrechnung abrechnung = new Spielerabrechnung(); abrechnung.Spielername = spieler.Name; //Termine lesen termine = termine.OrderBy(t => t.Datum).ToList(); foreach (Auftrittstermin termin in termine) { var ort = await store.GetAsync <Ort>(termin.OrtId.ToString()); if (termin.Helfer.Contains(spieler.Id)) { abrechnung.Abrechnungszeilen.Add(termin.Showtyp + " - " + ort.Bezeichnung + " - " + termin.Datum.Date.ToShortDateString() + " - Helfer - " + termin.BezahlungHelfer + "€"); abrechnung.Endergebnis += termin.BezahlungHelfer; } else if (termin.Spieler.Contains(spieler.Id)) { abrechnung.Abrechnungszeilen.Add(termin.Showtyp + " - " + ort.Bezeichnung + " - " + termin.Datum.Date.ToShortDateString() + " - Spieler - " + termin.BezahlungSpieler + "€"); abrechnung.Endergebnis += termin.BezahlungSpieler; } else if (termin.Moderator.Contains(spieler.Id)) { abrechnung.Abrechnungszeilen.Add(termin.Showtyp + " - " + ort.Bezeichnung + " - " + termin.Datum.Date.ToShortDateString() + " - Moderation - " + termin.BezahlungModerator + "€"); abrechnung.Endergebnis += termin.BezahlungModerator; } foreach (Auslagen auslage in termin.Auslagen.Where(a => a.SpielerId == spieler.Id)) { if (auslage.GefahreneKilometer != 0) { double KMWert = ((float)auslage.GefahreneKilometer) * 0.16d; KMWert = Math.Round(KMWert, 2); abrechnung.Abrechnungszeilen.Add(" + Gefahrene Kilometer: " + auslage.GefahreneKilometer + " - " + KMWert + "€"); abrechnung.Endergebnis += KMWert; } if (auslage.AuslagenBetrag != 0) { abrechnung.Abrechnungszeilen.Add(" + " + auslage.AuslagenBezeichnung + ": " + auslage.AuslagenBetrag + "€"); abrechnung.Endergebnis += auslage.AuslagenBetrag; } } } abrechnungsListe.Add(abrechnung); } return(abrechnungsListe); }
public Public_AuftritteController() { _store = new VolleMoehre.Adapter.LiteDB.LiteDBStore(); }
public InternalControllerBase() { _store = new VolleMoehre.Adapter.LiteDB.LiteDBStore(); }
public KalenderController() { _store = new VolleMoehre.Adapter.LiteDB.LiteDBStore(); _calenderExporter = new Adapter.Calender.CalenderExportService(); }