Добавьте файлы проекта.

This commit is contained in:
Yevgeniy Ulyantsev
2024-02-02 17:36:06 +03:00
parent e787cd8afd
commit f034e41c07
27 changed files with 495 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Services.Numbers.Extentions;
namespace Services.Tickets.Extentions;
public static class ServiceCollectionExtentions
{
public static void TyAddTicketService(this IServiceCollection services)
{
services.TyAddNumbersService();
services.TryAddScoped<ITicketService, TicketService>();
}
}

View File

@@ -0,0 +1,8 @@
using Services.Tickets.Models;
namespace Services.Tickets;
public interface ITicketRepository
{
Task<long> AddNewTicket(LotteryTicket ticket);
Task<List<LotteryTicket>> GetAllTickets();
}

View File

@@ -0,0 +1,9 @@
using Services.Tickets.Models;
namespace Services.Tickets;
public interface ITicketService
{
Task<List<LotteryTicket>> GetAllTickets();
Task<LotteryTicket> GetNewTicket();
}

View File

@@ -0,0 +1,8 @@
namespace Services.Tickets.Models;
public class LotteryTicket
{
public long? Id { get; set; }
public byte[]? Numbers { get; set; }
public string? Owner { get; set; }
public string? PhoneNumber { get; set; }
}

View File

@@ -0,0 +1,36 @@
using Microsoft.Extensions.Logging;
using Services.Numbers;
using Services.Tickets.Models;
namespace Services.Tickets;
internal class TicketService : ITicketService
{
private readonly ILogger<TicketService> _logger;
private readonly ITicketRepository _ticketRepository;
private readonly INumbersService _numbersService;
public TicketService(ILogger<TicketService> logger, ITicketRepository ticketRepository, INumbersService numbersService)
{
_logger = logger;
_ticketRepository = ticketRepository;
_numbersService = numbersService;
}
public Task<List<LotteryTicket>> GetAllTickets()
{
return _ticketRepository.GetAllTickets();
}
public async Task<LotteryTicket> GetNewTicket()
{
LotteryTicket ticket = new()
{
Numbers = _numbersService.GetNumbers(6)
};
var id = await _ticketRepository.AddNewTicket(ticket);
ticket.Id = id;
//_logger.LogInformation("New ticket created");
return ticket;
}
}