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 _tickets = new(); public IEnumerable 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 Create(CreateTicketRequest request) { if (string.IsNullOrWhiteSpace(request.Title)) return Result.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.Ok(response); } }