using bitforum.Models; namespace bitforum.Repository { public class ConfigRepository { private readonly DefaultDbContext _context; public ConfigRepository(DefaultDbContext context) { _context = context; } // 값 추가 public void Add(Config config) { _context.Config.Add(config); _context.SaveChanges(); } // Key로 값 조회 public Config? GetByKey(string key) { return _context.Config.FirstOrDefault(c => c.Key == key); } // 모든 값 조회 public Dictionary GetAll() { return _context.Config.ToList().ToDictionary(c => c.Key, c => c.Value); } // Config 갱신 public void Update(Config config) { _context.Config.Update(config); _context.SaveChanges(); } // Replace 메서드 추가: Key가 존재하면 업데이트, 없으면 추가 public void Replace(Config config) { var existingConfig = _context.Config.FirstOrDefault(c => c.Key == config.Key); // 갱신 if (existingConfig != null) { existingConfig.Value = config.Value; existingConfig.Description = config.Description; _context.Config.Update(existingConfig); } else // 신규 추가 { Add(config); } _context.SaveChanges(); } // id로 Config 삭제 public void DeleteByID(int id) { var config = _context.Config.Find(id); if (config != null) { _context.Config.Remove(config); _context.SaveChanges(); } } // id로 Config 삭제 public void DeleteByKey(string key) { var config = _context.Config.FirstOrDefault(c => c.Key == key); if (config != null) { _context.Config.Remove(config); _context.SaveChanges(); } } } }