using System; using System.Collections.Generic; using System.Linq; using Portoa.Persistence; using VideoGameQuotes.Api; namespace VideoGameQuotes.Web.Services { public interface ISystemService { IEnumerable FindByNameOrAbbreviation(string name, string abbreviation); GamingSystem Save(GamingSystem system); GamingSystem FindById(int id); } public class SystemService : ISystemService { private readonly IRepository repository; public SystemService(IRepository repository) { this.repository = repository; } [UnitOfWork] public IEnumerable FindByNameOrAbbreviation(string name, string abbreviation) { return repository .Records .Where(system => system.Abbreviation == abbreviation || system.Name == name); } [UnitOfWork] public GamingSystem Save(GamingSystem system) { return repository.Save(system); } [UnitOfWork] public GamingSystem FindById(int id) { return repository.FindById(id); } } }