summaryrefslogtreecommitdiff
path: root/Services/TicketService.cs
blob: 3ac96603b8e447ef31e077914375972278c69006 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using Microsoft.EntityFrameworkCore;
using BackendPIA.Models;

namespace BackendPIA.Services {
    public class TicketService : ITicketService {
        private readonly ApplicationDbContext _context;

        public TicketService(ApplicationDbContext context) {
            _context = context;
        }

        public async Task<Ticket> CreateTicket(Ticket to_create) {
            await _context.AddAsync(to_create);
            await _context.SaveChangesAsync();

            return to_create;
        }

        public async Task<IEnumerable<Ticket>> GetTickets(long raffle_id) {
            return await _context.Tickets.Where(t => t.RaffleId == raffle_id).ToListAsync();
        }

        public async Task<Ticket> GetTicket(long raffle_id, long id) {
            return await _context.Tickets.Where(t => t.RaffleId == raffle_id).FirstOrDefaultAsync(t => t.Id == id);
        }

        public async Task<bool> DeleteTicket(long raffle_id, long id) {
            var to_delete = await _context.Tickets.Where(t => t.RaffleId == raffle_id).FirstOrDefaultAsync(t => t.Id == id);

            if(to_delete == null)
                return false;

            _context.Tickets.Remove(to_delete);
            await _context.SaveChangesAsync();

            return true;
        }
    }
}