/
WorkerTime
/
WorkerTimeDiplom
Обзор
Документация
Войти
/
WorkerTime
/
WorkerTimeDiplom
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Services/EmployeeService.cs
81 строка
3 KB
nikit
Логирование, автосохранение, восстановление пароля
05 июн 2026, 19:24
05 июн 2026, 19:24
715eb3d
Код
Авторство
О чём код?
using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; namespace WorkerTime.Services { public class EmployeeService { private readonly AppDbContext _db; public EmployeeService(AppDbContext db) { _db = db; } public List<Employee> GetAll() { //Сотрудники+подразделения, сортировка по фамилии return _db.Employees .Include(e => e.Department) .OrderBy(e => e.LastName) .ToList(); } public Employee GetById(int id) { return _db.Employees.Find(id); } public void Add(Employee employee) { bool exists = false; foreach (Employee e in _db.Employees) { if (e.PersonnelNumber == employee.PersonnelNumber) { exists = true; break; } } if (exists) { throw new Exception("Сотрудник с таким табельным номером уже существует."); } _db.Employees.Add(employee); _db.SaveChanges(); Logger.Log("Добавлен сотрудник", employee.LastName + " " + employee.FirstName + ", таб. № " + employee.PersonnelNumber); } public void Update(Employee employee) { Employee existing = _db.Employees.Find(employee.Id); if (existing != null) { existing.PersonnelNumber = employee.PersonnelNumber; existing.LastName = employee.LastName; existing.FirstName = employee.FirstName; existing.MiddleName = employee.MiddleName; existing.Position = employee.Position; existing.DepartmentId = employee.DepartmentId; _db.SaveChanges(); Logger.Log("Обновлён сотрудник", existing.LastName + " " + existing.FirstName + ", таб. № " + existing.PersonnelNumber); } } public void Delete(int id) { Employee employee = _db.Employees.Find(id); if (employee != null) { _db.Employees.Remove(employee); _db.SaveChanges(); Logger.Log("Удалён сотрудник", employee.LastName + " " + employee.FirstName + ", таб. № " + employee.PersonnelNumber); } } } }