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