public DraftId Choose(string offerIdString, string tenantIdString, DateTime from, DateTime to) { var offerId = OfferId.From(offerIdString); var offer = _offerRepository.Get(offerId); var tenantId = TenantId.From(tenantIdString); var period = Period.From(from, to); var discount = _discountService.CalculateDiscount(tenantIdString, offerIdString, from, to); var draftFactory = new DraftFactory(discount, new DefaultDraftNumberGenerator()); var draft = offer.Choose(tenantId, period, draftFactory); _draftRepository.Save(draft); return(draft.Id); }
public async Task Save(Draft draft, string body) { draft.Uri.Check(nameof(draft.Uri)); draft.Picture.Check(nameof(draft.Title)); draft.Paragraphs.CheckIfNull(nameof(draft.Paragraphs)); draft.Title.CheckIfNull(nameof(draft.Title)); draft.User.CheckIfNull(nameof(draft.User)); body.CheckIfNull(nameof(body)); var content = new Content { Id = draft.Id, Body = body }; await _draftRepository.Save(draft); await _contentRepository.Save(content); }