Exemple #1
0
        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);
            }
        }