feat: DTOs, Result Type

This commit is contained in:
2026-03-16 19:37:11 +01:00
parent 4b1152614e
commit 4b99e238ca
5 changed files with 147 additions and 13 deletions

View File

@@ -1,4 +1,6 @@
using System.Runtime.CompilerServices;
using Microsoft.AspNetCore.Http.HttpResults;
using TicketAppIncrArchi.Application.DTO;
using TicketAppIncrArchi.Application.Interfaces;
using TicketAppIncrArchi.Domain.Entities;
@@ -8,18 +10,49 @@ public class TicketService : ITicketService
{
private readonly List<Ticket> _tickets = new();
public IEnumerable<Ticket> GetAll() => _tickets;
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 Ticket Create(Ticket ticket)
public Result<CreateTicketResponse> Create(CreateTicketRequest request)
{
ticket.Id = Guid.NewGuid();
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);
return ticket;
var response = new CreateTicketResponse
{
Id = ticket.Id,
Title = ticket.Title,
Description = ticket.Description
};
return Result<CreateTicketResponse>.Ok(response);
}
}