using Infrastructure.Application.Entites.Settings; using Infrastructure.Data; using Microsoft.Extensions.Logging; 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) { this._settingRepo.Add(setting); this._settingRepo.SaveChanges(); } 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(); } public string GetValue(string name) { return this.GetSetting(name)?.Value; } } }