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); } 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); } } }