/
Airat
/
ASP.NET
Обзор
Документация
Войти
/
Airat
/
ASP.NET
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
EF/src/PromoCodeFactory.WebHost/Controllers/PromocodesController.cs
74 строки
3 KB
Айрат Измаилов
modified: EF/src/PromoCodeFactory.Core/Abstractions/Repositories/IRepository.cs
06 ноя 2024, 19:39
06 ноя 2024, 19:39
c4e3369
Код
Авторство
О чём код?
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using PromoCodeFactory.Core.Abstractions.Repositories; using PromoCodeFactory.Core.Domain.Administration; using PromoCodeFactory.Core.Domain.PromoCodeManagement; using PromoCodeFactory.WebHost.Models; namespace PromoCodeFactory.WebHost.Controllers { /// <summary> /// Промокоды /// </summary> [ApiController] [Route("api/v1/[controller]")] public class PromocodesController : ControllerBase { private readonly IRepository<PromoCode> _promoCodeRepository; public PromocodesController(IRepository<PromoCode> promoCodeRepository) { _promoCodeRepository = promoCodeRepository; } /// <summary> /// Получить все промокоды /// </summary> /// <returns></returns> [HttpGet] public async Task<ActionResult<List<PromoCodeShortResponse>>> GetPromocodesAsync() { //TODO: Получить все промокоды var promocodes = await _promoCodeRepository.GetAllAsync(); var promocodesModelList = promocodes.Select(x => new PromoCodeShortResponse() { Id = x.Id, Code = x.Code, ServiceInfo = x.ServiceInfo, BeginDate = x.BeginDate.ToString(), EndDate = x.EndDate.ToString(), PartnerName = x.PartnerName }).ToList(); return promocodesModelList; } /// <summary> /// Создать промокод и выдать его клиентам с указанным предпочтением /// </summary> /// <returns></returns> [HttpPost] public async Task<IActionResult> GivePromoCodesToCustomersWithPreferenceAsync(GivePromoCodeRequest request) { //TODO: Создать промокод и выдать его клиентам с указанным предпочтением PromoCode promo = new PromoCode(); promo.Code = request.PromoCode; promo.ServiceInfo = request.ServiceInfo; promo.PartnerName = request.PartnerName; promo.Preference = new Preference(); promo.Preference.Name = request.Preference; await _promoCodeRepository.AddAsync(promo); return Ok(promo); } } }