feat: DTOs, Result Type
This commit is contained in:
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user