2 using System.Collections.Generic;
4 using System.Security.Claims;
28 public virtual IEnumerable<ReportThesis>
GetAll()
30 return _reportThesisRepository.All();
33 public virtual IEnumerable<ReportThesis>
GetAllWhere(Func<ReportThesis, bool> predicate)
35 return GetAll().Where(predicate);
38 public virtual IEnumerable<ReportThesis>
GetItemsByRole(ClaimsPrincipal userClaims)
40 IEnumerable<ReportThesis> items;
43 items = _reportThesisRepository.All();
47 var department = _departmentRepository.Get(r => r.Head.UserName == userClaims.Identity.Name);
48 items = _reportThesisRepository.AllWhere(a => GetAuthors(a.Id).Any(u => department.Staff.Contains(u)));
52 var user = _userProfileRepository.Get(u => u.UserName == userClaims.Identity.Name);
53 items = _reportThesisRepository.AllWhere(a => GetAuthors(a.Id).Any(u => u.Id == user.Id));
59 public virtual IEnumerable<ReportThesis>
GetPageByRole(
int page,
int count, ClaimsPrincipal userClaims)
61 return GetItemsByRole(userClaims).Skip((page - 1) * count).Take(count).ToList();
66 return GetItemsByRole(userClaims).Count();
71 return _reportThesisRepository.Get(
id);
76 return _reportThesisRepository.Get(predicate);
90 var reportThesis = _reportThesisRepository.Get(model.
Id);
91 if (reportThesis == null)
96 reportThesis.Thesis = model.
Thesis;
98 _reportThesisRepository.Update(reportThesis);
103 _reportThesisRepository.Delete(
id);
108 return _reportThesisRepository.Get(
id) != null;
113 var reportThesis = _reportThesisRepository.Get(
id);
114 IEnumerable<UserProfile> authors = null;
115 if (reportThesis != null)
117 authors = reportThesis.UserProfilesReportTheses.Select(u => u.UserProfile);
125 var reportThesis = _reportThesisRepository.Get(
id);
126 var author = _userProfileRepository.Get(authorId);
127 if (reportThesis.UserProfilesReportTheses.Any(u => u.UserProfile.Id == authorId))
137 _reportThesisRepository.Update(reportThesis);
142 var reportThesis = _reportThesisRepository.Get(
id);
143 if (reportThesis.UserProfilesReportTheses.All(u => u.UserProfile.Id != authorId))
148 reportThesis.UserProfilesReportTheses = reportThesis.UserProfilesReportTheses
149 .Where(u => u.UserProfile.Id != authorId).ToList();
150 _reportThesisRepository.Update(reportThesis);
void AddAuthor(Guid id, Guid authorId)
virtual IEnumerable< ReportThesis > GetItemsByRole(ClaimsPrincipal userClaims)
virtual void CreateItem(ReportThesisModel model)
virtual ReportThesis GetById(Guid id)
virtual bool Exists(Guid id)
virtual IEnumerable< ReportThesis > GetPageByRole(int page, int count, ClaimsPrincipal userClaims)
virtual int GetCountByRole(ClaimsPrincipal userClaims)
static bool IsHeadOfDepartment(ClaimsPrincipal user)
virtual void DeleteById(Guid id)
void RemoveAuthor(Guid id, Guid authorId)
virtual IEnumerable< ReportThesis > GetAllWhere(Func< ReportThesis, bool > predicate)
static bool IsAdmin(ClaimsPrincipal user)
virtual IEnumerable< UserProfile > GetAuthors(Guid id)
ReportThesisService(ScientificReportDbContext context)
virtual ReportThesis Get(Func< ReportThesis, bool > predicate)
virtual IEnumerable< ReportThesis > GetAll()
DAL.Entities.Conference Conference
virtual void UpdateItem(ReportThesisEdit model)