/
WorkerTime
/
WorkerTimeDiplom
Обзор
Документация
Войти
/
WorkerTime
/
WorkerTimeDiplom
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Services/SettingsService.cs
114 строк
3 KB
nikit
Логирование, автосохранение, восстановление пароля
05 июн 2026, 19:24
05 июн 2026, 19:24
715eb3d
Код
Авторство
О чём код?
using System.Linq; namespace WorkerTime.Services { public class SettingsService { private readonly AppDbContext _db; public SettingsService(AppDbContext db) { _db = db; } //Вернуть/создать настройки private AppSettings GetOrCreate() { AppSettings s = _db.AppSettings.FirstOrDefault(); if (s == null) { s = new AppSettings(); s.OrganizationName = "Организация"; _db.AppSettings.Add(s); _db.SaveChanges(); } return s; } public AppSettings GetSettings() { return GetOrCreate(); } public void SaveSettings(AppSettings s) { AppSettings existing = GetOrCreate(); existing.OrganizationName = s.OrganizationName; existing.Inn = s.Inn; existing.Okpo = s.Okpo; _db.SaveChanges(); } public bool HasPassword() { AppSettings s = GetOrCreate(); if (string.IsNullOrEmpty(s.Password)) { return false; } return true; } public void SetPassword(string password) { AppSettings s = GetOrCreate(); s.Password = password; _db.SaveChanges(); } public bool CheckPassword(string password) { AppSettings s = GetOrCreate(); if (s.Password == password) { return true; } return false; } public bool ChangePassword(string oldPassword, string newPassword) { AppSettings s = GetOrCreate(); if (s.Password != oldPassword) { return false; } s.Password = newPassword; _db.SaveChanges(); return true; } //Получить секретный вопрос public string GetSecretQuestion() { return GetOrCreate().SecretQuestion; } //Проверить ответ на секретный вопрос public bool CheckSecretAnswer(string answer) { AppSettings s = GetOrCreate(); return s.SecretAnswer == answer; } //Сбросить пароль на admin public void ResetPassword() { AppSettings s = GetOrCreate(); s.Password = "admin"; _db.SaveChanges(); } public void SetSecretQuestion(string question, string answer) { AppSettings s = GetOrCreate(); s.SecretQuestion = question; s.SecretAnswer = answer; _db.SaveChanges(); } } }