Пример #1
0
        public void Handle(GrouponParticipatedEvent evnt)
        {
            var eventSource = evnt.Source as GrouponParticipation;

            var activity = _grouponActivityRepository.Get(eventSource.GrouponActivityId);

            if (activity == null)
            {
                throw new Exception("找不到指定的活动记录。");
            }

            var buyCount = _grouponParticipationRepository.GetFiltered(o => o.GrouponActivityId == eventSource.GrouponActivityId).Sum(g => g.BuyCount);


            if (buyCount >= activity.Count)
            {
                activity.SetCompleted();
            }

            _grouponActivityRepository.Update(activity);
            _dbUnitOfWork.Commit();

            _bus.Publish(evnt);
        }