internal Keg AttachEntities(Keg kegItem)
 {
     if (kegItem != null && kegItem.kegSizeId != null)
     {
         var kegSize = KegSizes.Find(ks => ks.id == kegItem.kegSizeId).FirstOrDefault();
         kegItem.kegSize = kegSize;
     }
     if (kegItem != null && kegItem.beerId != null)
     {
         var beer = Beers.Find(b => b.id == kegItem.beerId).FirstOrDefault();
         beer         = AttachEntities(beer);
         kegItem.beer = beer;
     }
     return(kegItem);
 }
        internal IEnumerable <Keg> AttachEntities(IEnumerable <Keg> kegList)
        {
            //Load KegSizes
            var kegSizeIdsToLoad = kegList.Select(k => k.kegSizeId).Distinct().ToList();
            var kegSizes         = KegSizes.Find(ks => kegSizeIdsToLoad.Contains(ks.id)).ToList();
            //Load Beers
            var beerIdsToLoad = kegList.Select(k => k.beerId).Distinct().ToList();
            var beers         = Beers.Find(b => beerIdsToLoad.Contains(b.id)).ToList();

            beers = AttachEntities(beers).ToList();

            kegList.ToList().ForEach(k => {
                if (k.beerId != null)
                {
                    var beer = beers.FirstOrDefault(b => b.id == k.beerId);
                    k.beer   = beer;
                }
                if (k.kegSizeId != null)
                {
                    k.kegSize = kegSizes.FirstOrDefault(ks => ks.id == k.kegSizeId);
                }
            });
            return(kegList);
        }
 public KegSize Update(KegSize item)
 {
     //UpdateOne if need performance
     KegSizes.ReplaceOne(b => b.id == item.id, item);
     return(item);
 }
        public KegSize GetById(string id)
        {
            var KegSizeItem = KegSizes.Find(b => b.id == id).FirstOrDefault();

            return(KegSizeItem);
        }
        public IEnumerable <KegSize> GetAll()
        {
            var KegSizeList = KegSizes.Find(b => true).ToList();

            return(KegSizeList);
        }
 public string Delete(KegSize item)
 {
     KegSizes.DeleteOne(b => b.id == item.id);
     return(item.id);
 }
 public KegSize Create(KegSize item)
 {
     item.id = Guid.NewGuid().ToString();
     KegSizes.InsertOne(item);
     return(item);
 }