vgquotes/Src/VideoGameQuotes.Web/Services/QuoteService.cs

90 lines
2.4 KiB
C#

using System;
using System.Collections.Generic;
using Portoa.Persistence;
using VideoGameQuotes.Api;
namespace VideoGameQuotes.Web.Services {
public interface IQuoteService {
Game GetGame(int id);
IEnumerable<Game> GetAllGames();
IEnumerable<GamingSystem> GetAllSystems();
IEnumerable<Publisher> GetAllPublishers();
IEnumerable<Category> GetAllCategories();
Quote SaveQuote(Quote quote);
Quote GetQuote(int id);
Publisher GetPublisher(int id);
GamingSystem GetSystem(int systemId);
Category GetCategory(int categoryId);
}
public class QuoteService : IQuoteService {
private readonly IRepository<Quote> quoteRepository;
private readonly IRepository<Game> gameRepository;
private readonly IRepository<GamingSystem> systemRepository;
private readonly IRepository<Publisher> publisherRepository;
private readonly IRepository<Category> categoryRepository;
public QuoteService(
IRepository<Quote> quoteRepository,
IRepository<Game> gameRepository,
IRepository<GamingSystem> systemRepository,
IRepository<Publisher> publisherRepository, IRepository<Category> categoryRepository
) {
this.quoteRepository = quoteRepository;
this.categoryRepository = categoryRepository;
this.gameRepository = gameRepository;
this.systemRepository = systemRepository;
this.publisherRepository = publisherRepository;
}
[UnitOfWork]
public Game GetGame(int id) {
return gameRepository.FindById(id);
}
[UnitOfWork]
public IEnumerable<Game> GetAllGames() {
return gameRepository.Records;
}
[UnitOfWork]
public IEnumerable<GamingSystem> GetAllSystems() {
return systemRepository.Records;
}
[UnitOfWork]
public IEnumerable<Publisher> GetAllPublishers() {
return publisherRepository.Records;
}
[UnitOfWork]
public IEnumerable<Category> GetAllCategories() {
return categoryRepository.Records;
}
[UnitOfWork]
public Quote SaveQuote(Quote quote) {
return quoteRepository.Save(quote);
}
[UnitOfWork]
public Quote GetQuote(int id) {
return quoteRepository.FindById(id);
}
[UnitOfWork]
public Publisher GetPublisher(int id) {
return publisherRepository.FindById(id);
}
[UnitOfWork]
public GamingSystem GetSystem(int systemId) {
return systemRepository.FindById(systemId);
}
[UnitOfWork]
public Category GetCategory(int categoryId) {
return categoryRepository.FindById(categoryId);
}
}
}