public Tap GetBeer(int tapId, Glass glass) { //Get Keg by TapId KegEntity kegEntity = _unitOfWork.KegRepository.GetFirst(k => k.TapId == tapId); if (kegEntity.Remaining < glass.AmountToPour) { throw new Exception("Not enough beer in this Tap!!!!!"); } if (kegEntity != null) { using (var scope = new TransactionScope()) { kegEntity.Remaining -= glass.AmountToPour; _unitOfWork.KegRepository.Update(kegEntity); Mapper.CreateMap <Glass, GlassEntity>(); var glassModel = Mapper.Map <Glass, GlassEntity>(glass); _unitOfWork.GlassRepository.Insert(glassModel); _unitOfWork.Save(); scope.Complete(); } } var tap = _unitOfWork.TapRepository.GetByID(tapId); return(GetTapById(tapId)); }
private static KegState GetKegState(KegEntity keg) { if (keg.Capacity == keg.Remaining) { return(KegState.New); } else if (keg.Remaining < 0.1) //ml { return(KegState.SheIsDryMate); } else if (keg.Remaining < 500) //ml { return(KegState.AlmostEmpty); } else { return(KegState.GoingDown); } }