using Infrastructure.Application.Entites.Settings; using Infrastructure.Data; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; using System; using System.Linq; namespace Infrastructure.Application.Services.Settings { public class SettingService : ISettingService { private readonly ILogger _logger; private readonly IRepository _settingRepo; public SettingService(ILoggerFactory loggerFactory, IRepository settingRepo) { this._logger = loggerFactory.CreateLogger(); this._settingRepo = settingRepo; } public Setting GetSetting(string name) { return this._settingRepo.ReadOnlyTable().FirstOrDefault(o => o.Name == name); } public void AddSetting(Setting setting) { try { this._settingRepo.Add(setting); this._settingRepo.SaveChanges(); } catch (DbUpdateException ex) { this._logger.LogError(ex.Message); } } public void UpdateSetting(Setting setting) { this._settingRepo.SaveChanges(); } public void DeleteSetting(Setting setting) { this._settingRepo.Delete(setting); this._settingRepo.SaveChanges(); } public IQueryable Table() { return this._settingRepo.Table(); } public IQueryable ReadonlyTable() { return this._settingRepo.ReadOnlyTable(); } } }