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); }
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; }
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 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); }