public async Task <List <Rezerwacja> > GetList(Guid przedsiebiorstwoId) { var sql = "select R.Id as RezerwacjaId, PrzedsiebiorstwoId, " + "UzytkownikRezerwujacyId, DataWaznosci, DataRezerwacji, Opis, DokumentWydaniaId, PR.Id as PozycjaId, PR.ProduktId, PR.Ilosc " + "FROM Rezerwacja R INNER JOIN PozycjaRezerwacji PR on R.Id = PR.RezerwacjaId " + "WHERE PrzedsiebiorstwoId = @PrzedsiebiorstwoId"; using (var conn = _dbConnectionSource.GetConnection()) { var list = await conn.QueryAsync(sql, new { PrzedsiebiorstwoId = przedsiebiorstwoId }); return(list.GroupBy(x => x.RezerwacjaId).Select(x => { var r = new Rezerwacja(x.Key) { PrzedsiebiorstwoId = x.First().PrzedsiebiorstwoId, UzytkownikRezerwujacyId = x.First().UzytkownikRezerwujacyId, DataWaznosci = x.First().DataWaznosci, DataRezerwacji = x.First().DataRezerwacji, Opis = x.First().Opis, DokumentWydaniaId = x.First().DokumentWydaniaId }; foreach (var pozycja in x) { r.DodajPozycjeRezerwacji(new PozycjaRezerwacji(pozycja.PozycjaId, pozycja.ProduktId, pozycja.Ilosc)); } return r; }).ToList()); } }
public async Task <Guid> Handle(RezerwujCommand request, CancellationToken cancellationToken) { var rezerwacja = new Rezerwacja() { PrzedsiebiorstwoId = request.PrzedsiebiorstwoId, UzytkownikRezerwujacyId = request.UserId, DataWaznosci = request.Model.DataWaznosci, DataRezerwacji = request.Model.DataRezerwacji, Opis = request.Model.Opis }; foreach (var pozycja in request.Model.Pozycje) { rezerwacja.DodajPozycjeRezerwacji(new PozycjaRezerwacji(pozycja.ProduktId, pozycja.Ilosc)); } return(await _rezerwacjaRepository.Save(rezerwacja)); }