2 using System.Collections.Generic;
27 return _departmentRepository.All().Count();
30 public virtual IEnumerable<Department>
GetPage(
int page,
int count)
32 return _departmentRepository.All().Skip((page - 1) * count).Take(count).ToList();
35 public virtual IEnumerable<Department>
GetAll()
37 return _departmentRepository.All();
42 IEnumerable<Department> departments;
47 else if (model.
SortBy != null)
59 public virtual IEnumerable<Department>
GetAllWhere(Func<Department, bool> predicate)
61 return GetAll().Where(predicate);
66 return _departmentRepository.Get(
id);
71 return _departmentRepository.Get(predicate);
76 _departmentRepository.Create(department);
81 _departmentRepository.Update(department);
86 _departmentRepository.Delete(
id);
91 return _departmentRepository.Get(
id) != null;
96 var department = _departmentRepository.Get(
id);
97 if (department.ScientificWorks.Any(sw => sw.Id == scientificWork.
Id))
102 department.ScientificWorks.Add(scientificWork);
103 _departmentRepository.Update(department);
108 var department = _departmentRepository.Get(
id);
109 if (department.ScientificWorks.All(sw => sw.Id != scientificWork.
Id))
114 department.ScientificWorks.Remove(scientificWork);
115 _departmentRepository.Update(department);
120 var department = _departmentRepository.Get(
id);
121 if (department.Staff.Any(u => u.Id == user.Id))
126 department.Staff.Add(user);
127 _departmentRepository.Update(department);
132 var department = _departmentRepository.Get(
id);
133 if (department.Staff.All(u => u.Id != user.Id))
138 department.Staff.Remove(user);
139 _departmentRepository.Update(department);
144 return _departmentRepository.All().Any(d => d.Staff.Contains(user));
149 var userDepartment = _departmentRepository.Get(d => d.Head.Id == headOfDepartment.Id);
150 return userDepartment.Staff.Contains(_userProfileRepository.Get(userId));
155 var departments = GetPage(page, count);
159 departments = departments.OrderByDescending(d => d.Title);
162 departments = departments.OrderByDescending(d => d.Staff.Count);
165 departments = departments.OrderByDescending(d => d.ScientificWorks.Count);
168 return new List<Department>();
virtual bool UserIsHired(UserProfile user)
virtual void RemoveUser(Guid id, UserProfile user)
DAL.Entities.Department.SortByOption SortBy
virtual void UpdateItem(Department department)
DepartmentService(ScientificReportDbContext context)
virtual bool Exists(Guid id)
virtual IEnumerable< Department > GetAll()
virtual IEnumerable< Department > Filter(DepartmentIndexModel model)
virtual void CreateItem(Department department)
virtual bool UserWorksInDepartment(UserProfile headOfDepartment, Guid userId)
virtual void DeleteById(Guid id)
virtual Department Get(Func< Department, bool > predicate)
virtual IEnumerable< Department > SortDepartmentsBy(Department.SortByOption option, int page, int count)
virtual Department GetById(Guid id)
virtual void RemoveScientificWork(Guid id, ScientificWork scientificWork)
virtual IEnumerable< Department > GetPage(int page, int count)
virtual void AddScientificWork(Guid id, ScientificWork scientificWork)
virtual IEnumerable< Department > GetAllWhere(Func< Department, bool > predicate)
virtual void AddUser(Guid id, UserProfile user)