using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using RdtClient.Data.Models.Data; namespace RdtClient.Data.Data { public interface ISettingData { Task> GetAll(); Task Update(IList settings); Task Get(String key); } public class SettingData : ISettingData { private readonly DataContext _dataContext; public SettingData(DataContext dataContext) { _dataContext = dataContext; } public async Task> GetAll() { return await _dataContext.Settings.AsNoTracking().ToListAsync(); } public async Task Update(IList settings) { var dbSettings = await _dataContext.Settings.ToListAsync(); foreach (var dbSetting in dbSettings) { var setting = settings.FirstOrDefault(m => m.SettingId == dbSetting.SettingId); if (setting != null) { dbSetting.Value = setting.Value; } } await _dataContext.SaveChangesAsync(); } public async Task Get(String key) { return await _dataContext.Settings.AsNoTracking().FirstOrDefaultAsync(m => m.SettingId == key); } } }