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());
            }
        }
Ejemplo n.º 2
0
        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));
        }