private ProduktlisteEx Handle(QueryEnvelope queryEnvelope, ProduktlisteExAbfrage abfrage)
 {
     var produkte = AlleProduktInfos()
         .Select(_ => new ProduktInfoEx
         {
             Id = _.Id,
             Bezeichnung = _.Bezeichnung,
             Verfuegbar = _lagerbestand.Verfuegbar_fuer(_.Id) - _auftraege.OffeneMenge_fuer(_.Id),
             LagerBestand = _lagerbestand.LagerBestand_fuer(_.Id)
         })
         .ToList();
     return new ProduktlisteEx { Produkte = produkte };
 }
Exemplo n.º 2
0
        /*
        private ProduktlisteEx Handle(QueryEnvelope queryEnvelope, ProduktlisteExAbfrage abfrage)
        {
            using (var db = ReadAccess())
            {
                var lagerbestand =
                    new LagerbestandRepository(db).RetrieveAlleStandorte()
                    .Bestand.GroupBy(_=>_.Produkt).ToDictionary(_=>_.Key, _=>
                    new
                    {
                        Bestand = _.Sum(x=>x.LagerBestand),
                        Zulauf = _.Sum(x => x.MengeImZulauf)
                    });

                return new ProduktlisteEx {Produkte = new ProduktRepository(db).Retrieve().Produkte.Select(
                    p => new ProduktInfoEx
                    {
                        Id = p.Id,
                        Bezeichnung = p.Bezeichnung,
                        LagerBestand = lagerbestand.ContainsKey(p.Id) ? lagerbestand[p.Id].Bestand : 0,
                        Verfuegbar = lagerbestand.ContainsKey(p.Id) ? lagerbestand[p.Id].Bestand+lagerbestand[p.Id].Zulauf : 0,
                    }
                    ).ToList()};
            }
        }*/
        private ProduktlisteEx Handle(QueryEnvelope queryEnvelope, ProduktlisteExAbfrage abfrage)
        {
            using (var db = ReadAccess())
            {
                return new ProduktlisteEx
                {
                    Produkte =
                        db.Query(
                            @"SELECT [Id], [Bezeichnung], [bestand], [verfuegbar] from [produkteex]",
                            null,
                            dr => new ProduktInfoEx
                            {
                                Id = dr.GetGuid(0),
                                Bezeichnung = dr.GetString(1),
                                LagerBestand = dr.GetInt32(2),
                                Verfuegbar = dr.GetInt32(3)
                            }
                            ).ToList()
                };
            }
        }