public async Task <IActionResult> GetPartnerPromoCodeAsync(Guid id, Guid promoCodeId) { var partner = await _partnersRepository.GetByIdAsync(id); if (partner == null) { return(NotFound("Партнер не найден")); } var promoCode = partner.PromoCodes.FirstOrDefault(x => x.Id == promoCodeId); if (promoCode == null) { return(NotFound("Партнер не найден")); } var response = new PromoCodeShortResponse() { Id = promoCode.Id, Code = promoCode.Code, BeginDate = promoCode.BeginDate.ToString("yyyy-MM-dd"), EndDate = promoCode.EndDate.ToString("yyyy-MM-dd"), PartnerName = promoCode.Partner.Name, PartnerId = promoCode.PartnerId, ServiceInfo = promoCode.ServiceInfo }; return(Ok(response)); }
public async Task <ActionResult <PromoCodeShortResponse> > GivePromoCodesToCustomersWithPreferenceAsync( GivePromoCodeRequest request) { if (request == null) { return(BadRequest()); } //предпочтение по имени var preference = await _preferenceRepository.GetFirstWhere( x => x.Name == request.Preference); if (preference == null) { return(BadRequest()); } //Клиенты с указанными предпочтениями var customers = await _customerRepository .GetWhere(c => c.Preferences.Any(x => x.Preference.Id == preference.Id)); var promoCode = PromoCodeMapper.MapFromModel(request, preference, customers); await _promoCodeRepository.CreateAsync(promoCode); var response = new PromoCodeShortResponse(promoCode); return(CreatedAtRoute(null, response)); }