ScientificReport
Helpers.cs
Go to the documentation of this file.
1 using System;
2 using System.Linq;
6 
7 namespace ScientificReport.Controllers.Utils
8 {
9  public class Helpers
10  {
11  public static bool CheckForPersonalPublication(PublicationBase publication, UserProfile user)
12  {
13  var result = false;
14  var publicationType = publication.GetType();
15  if (publicationType == typeof(Publication))
16  {
17  result = ((Publication) publication).UserProfilesPublications.Any(upp => upp.UserProfile.Id == user.Id);
18  }
19  else if (publicationType == typeof(Article))
20  {
21  result = ((Article) publication).UserProfilesArticles.Any(upp => upp.Author.Id == user.Id);
22  }
23  else if (publicationType == typeof(ScientificWork))
24  {
25  result = ((ScientificWork) publication).UserProfilesScientificWorks.Any(upp => upp.UserProfile.Id == user.Id);
26  }
27 
28  return result;
29  }
30 
31  public static bool CheckForDepartmentPublication(PublicationBase publication, Department department)
32  {
33  var result = false;
34  var publicationType = publication.GetType();
35  if (publicationType == typeof(Publication))
36  {
37  result = ((Publication) publication).UserProfilesPublications.Any(up => department.Staff.Contains(up.UserProfile));
38  }
39  else if (publicationType == typeof(Article))
40  {
41  result = ((Article) publication).UserProfilesArticles.Any(up => department.Staff.Contains(up.Author));
42  }
43  else if (publicationType == typeof(ScientificWork))
44  {
45  result = ((ScientificWork) publication).UserProfilesScientificWorks.Any(up => department.Staff.Contains(up.UserProfile));
46  }
47 
48  return result;
49  }
50 
51  public static bool CheckForPublication(PublicationBase publication, Func<UserProfile, bool> predicate)
52  {
53  var result = false;
54  var publicationType = publication.GetType();
55  if (publicationType == typeof(Publication))
56  {
57  result = ((Publication) publication).UserProfilesPublications.Any(up => predicate(up.UserProfile));
58  }
59  else if (publicationType == typeof(Article))
60  {
61  result = ((Article) publication).UserProfilesArticles.Any(up => predicate(up.Author));
62  }
63  else if (publicationType == typeof(ScientificWork))
64  {
65  result = ((ScientificWork) publication).UserProfilesScientificWorks.Any(up => predicate(up.UserProfile));
66  }
67 
68  return result;
69  }
70  }
71 }
static bool CheckForPersonalPublication(PublicationBase publication, UserProfile user)
Definition: Helpers.cs:11
virtual ICollection< UserProfile.UserProfile > Staff
Definition: Department.cs:24
static bool CheckForDepartmentPublication(PublicationBase publication, Department department)
Definition: Helpers.cs:31
static bool CheckForPublication(PublicationBase publication, Func< UserProfile, bool > predicate)
Definition: Helpers.cs:51