public async Task <DomainValidationResult <Promotion> > CreatePromotionAsync( string promotionalCode, Currency currency, TimeSpan duration, DateTime expiredAt ) { var result = new DomainValidationResult <Promotion>(); if (!await _promotionRepository.IsPromotionalCodeAvailableAsync(promotionalCode)) { result.AddFailedPreconditionError("The promotional code isn't available"); } if (result.IsValid) { var promotion = new Promotion( promotionalCode, currency, duration, new DateTimeProvider(expiredAt)); _promotionRepository.Create(promotion); await _promotionRepository.CommitAsync(); return(promotion); } return(result); }
public bool Create(PromotionCreateRequest entity) { string description = entity.Description; DateTime beginDate = entity.BeginDate; DateTime expiredDate = entity.ExpiredDate; if (!util.ValidRangeLengthInput(description, 1, 250) || beginDate == null || expiredDate == null || beginDate.CompareTo(expiredDate) >= 0) { return(false); } Promotion existed = _proRepo.GetAll() .FirstOrDefault(e => e.Description.Trim().ToLower().Equals(description.Trim().ToLower())); if (existed != null) { return(false); } Promotion newEntity = new Promotion(); newEntity.Description = description.Trim(); newEntity.BeginDate = beginDate; newEntity.BrandId = entity.BrandId; return(_proRepo.Create(newEntity)); }
public int Post([FromBody] Promotion value) { return(_promotionRepository.Create(value)); }