62 lines
1.4 KiB
C#
62 lines
1.4 KiB
C#
using System.Runtime.CompilerServices;
|
|
using Microsoft.AspNetCore.Http.HttpResults;
|
|
using TicketAppIncrArchi.Application.DTO;
|
|
using TicketAppIncrArchi.Application.Interfaces;
|
|
using TicketAppIncrArchi.Domain.Entities;
|
|
|
|
namespace TicketAppIncrArchi.Application.Services;
|
|
|
|
public class TicketService : ITicketService
|
|
{
|
|
|
|
private readonly List<Ticket> _tickets = new();
|
|
public IEnumerable<TicketResponse> GetAll()
|
|
{
|
|
var result =_tickets.Select(t => new TicketResponse
|
|
{
|
|
Id = t.Id,
|
|
Title = t.Title,
|
|
Description =t.Description,
|
|
});
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
public Ticket? GetById(Guid id)
|
|
{
|
|
return _tickets.FirstOrDefault(ticket => ticket.Id == id);
|
|
}
|
|
|
|
public Result<CreateTicketResponse> Create(CreateTicketRequest request)
|
|
{
|
|
|
|
if (string.IsNullOrWhiteSpace(request.Title))
|
|
return Result<CreateTicketResponse>.Fail("Title is Required");
|
|
|
|
var ticket = new Ticket
|
|
{
|
|
Id = Guid.NewGuid(),
|
|
Title = request.Title,
|
|
Description = request.Description
|
|
};
|
|
|
|
//send creation to repo
|
|
_tickets.Add(ticket);
|
|
|
|
var response = new CreateTicketResponse
|
|
{
|
|
Id = ticket.Id,
|
|
Title = ticket.Title,
|
|
Description = ticket.Description
|
|
};
|
|
|
|
return Result<CreateTicketResponse>.Ok(response);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|