Exemplo n.º 1
0
        public Offer AssignOffer(OfferType offerType, IOfferValueCalculator valueCalculator)
        {
            DateTime dateExpiring = offerType.CalculateExpirationDate();
            int      value        = valueCalculator.CalculateValue(this, offerType);

            var offer = new Offer(this, offerType, dateExpiring, value);

            _assignedOffers.Add(offer);

            NumberOfActiveOffers++;

            return(offer);
        }
Exemplo n.º 2
0
        public Offer AssignOffer(OfferType offerType, IOfferValueCalculator valueCalculator)
        {
            DateTime dateExpiring = offerType.CalculateExpirationDate();
            int value = valueCalculator.CalculateValue(this, offerType);

            var offer = new Offer(this, offerType, dateExpiring, value);

            _assignedOffers.Add(offer);

            NumberOfActiveOffers++;

            return offer;
        }
Exemplo n.º 3
0
        public Offer AssignOffer(OfferType offerType,
            IOfferValueCalculator offerValueCalulator)
        {
            var value = offerValueCalulator.CalculateValue(this, offerType);

            var dateExpiring = offerType.ExpirationType.GetDateExpiring(offerType);

            var offer = new Offer(this, offerType, dateExpiring, value);

            _assignedOffers.Add(offer);
            NumberOfActiveOffers++;

            return offer;
        }
Exemplo n.º 4
0
        public Offer AssignOffer(OfferType offerType,
                                 IOfferValueCalculator offerValueCalulator)
        {
            var value = offerValueCalulator.CalculateValue(this, offerType);

            var dateExpiring = offerType.ExpirationType.GetDateExpiring(offerType);

            var offer = new Offer(this, offerType, dateExpiring, value);

            _assignedOffers.Add(offer);
            NumberOfActiveOffers++;

            return(offer);
        }
        public void AssignOffer(Guid memberId, Guid offerTypeId)
        {
            var member    = _memberRepository.GetById(memberId);
            var offerType = _offerTypeRepository.GetById(offerTypeId);

            var value = _offerValueCalculator
                        .CalculateValue(member, offerType);

            DateTime dateExpiring;

            switch (offerType.ExpirationType)
            {
            case ExpirationType.Assignment:
                dateExpiring = DateTime.Now.AddDays(offerType.DaysValid);
                break;

            case ExpirationType.Fixed:
                if (offerType.BeginDate != null)
                {
                    dateExpiring =
                        offerType.BeginDate.Value.AddDays(offerType.DaysValid);
                }
                else
                {
                    throw new InvalidOperationException();
                }
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            var offer = new Offer
            {
                MemberAssigned = member,
                Type           = offerType,
                Value          = value,
                DateExpiring   = dateExpiring
            };

            member.AssignedOffers.Add(offer);
            member.NumberOfActiveOffers++;

            _offerRepository.Save(offer);
        }