aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/DevHive.Data/Interfaces/Models/ILanguage.cs2
-rw-r--r--src/DevHive.Data/Interfaces/Models/IRole.cs2
-rw-r--r--src/DevHive.Data/Interfaces/Models/ITechnology.cs2
-rw-r--r--src/DevHive.Data/Interfaces/Models/IUser.cs8
-rw-r--r--src/DevHive.Data/Interfaces/Repositories/IUserRepository.cs4
-rw-r--r--src/DevHive.Data/Models/Language.cs2
-rw-r--r--src/DevHive.Data/Models/Role.cs2
-rw-r--r--src/DevHive.Data/Models/Technology.cs2
-rw-r--r--src/DevHive.Data/Models/User.cs8
-rw-r--r--src/DevHive.Data/Repositories/UserRepository.cs4
-rw-r--r--src/DevHive.Services/Models/Identity/User/RegisterServiceModel.cs4
-rw-r--r--src/DevHive.Services/Models/Identity/User/UpdateUserServiceModel.cs8
-rw-r--r--src/DevHive.Services/Models/Identity/User/UserServiceModel.cs8
-rw-r--r--src/DevHive.Services/Services/PostService.cs5
-rw-r--r--src/DevHive.Services/Services/UserService.cs12
-rw-r--r--src/DevHive.Tests/DevHive.Data.Tests/UserRepositoryTests.cs18
-rw-r--r--src/DevHive.Web/Models/Identity/User/UpdateUserWebModel.cs6
-rw-r--r--src/DevHive.Web/Models/Identity/User/UserWebModel.cs8
18 files changed, 53 insertions, 52 deletions
diff --git a/src/DevHive.Data/Interfaces/Models/ILanguage.cs b/src/DevHive.Data/Interfaces/Models/ILanguage.cs
index 9549777..b77d5ae 100644
--- a/src/DevHive.Data/Interfaces/Models/ILanguage.cs
+++ b/src/DevHive.Data/Interfaces/Models/ILanguage.cs
@@ -6,7 +6,7 @@ namespace DevHive.Data.Interfaces.Models
public interface ILanguage : IModel
{
string Name { get; set; }
- List<User> Users { get; set; }
+ HashSet<User> Users { get; set; }
}
}
diff --git a/src/DevHive.Data/Interfaces/Models/IRole.cs b/src/DevHive.Data/Interfaces/Models/IRole.cs
index 0623f07..c8b7068 100644
--- a/src/DevHive.Data/Interfaces/Models/IRole.cs
+++ b/src/DevHive.Data/Interfaces/Models/IRole.cs
@@ -5,6 +5,6 @@ namespace DevHive.Data.Interfaces.Models
{
public interface IRole
{
- List<User> Users { get; set; }
+ HashSet<User> Users { get; set; }
}
}
diff --git a/src/DevHive.Data/Interfaces/Models/ITechnology.cs b/src/DevHive.Data/Interfaces/Models/ITechnology.cs
index 159a21a..153f75f 100644
--- a/src/DevHive.Data/Interfaces/Models/ITechnology.cs
+++ b/src/DevHive.Data/Interfaces/Models/ITechnology.cs
@@ -6,6 +6,6 @@ namespace DevHive.Data.Interfaces.Models
public interface ITechnology : IModel
{
string Name { get; set; }
- List<User> Users { get; set; }
+ HashSet<User> Users { get; set; }
}
}
diff --git a/src/DevHive.Data/Interfaces/Models/IUser.cs b/src/DevHive.Data/Interfaces/Models/IUser.cs
index ef8c927..08ce385 100644
--- a/src/DevHive.Data/Interfaces/Models/IUser.cs
+++ b/src/DevHive.Data/Interfaces/Models/IUser.cs
@@ -8,9 +8,9 @@ namespace DevHive.Data.Interfaces.Models
string FirstName { get; set; }
string LastName { get; set; }
string ProfilePictureUrl { get; set; }
- IList<Language> Languages { get; set; }
- IList<Technology> Technologies { get; set; }
- IList<Role> Roles { get; set; }
- IList<User> Friends { get; set; }
+ HashSet<Language> Languages { get; set; }
+ HashSet<Technology> Technologies { get; set; }
+ HashSet<Role> Roles { get; set; }
+ HashSet<User> Friends { get; set; }
}
}
diff --git a/src/DevHive.Data/Interfaces/Repositories/IUserRepository.cs b/src/DevHive.Data/Interfaces/Repositories/IUserRepository.cs
index eca6adb..456eb94 100644
--- a/src/DevHive.Data/Interfaces/Repositories/IUserRepository.cs
+++ b/src/DevHive.Data/Interfaces/Repositories/IUserRepository.cs
@@ -14,8 +14,8 @@ namespace DevHive.Data.Interfaces.Repositories
Task<User> GetByUsernameAsync(string username);
Language GetUserLanguage(User user, Language language);
- IList<Language> GetUserLanguages(User user);
- IList<Technology> GetUserTechnologies(User user);
+ HashSet<Language> GetUserLanguages(User user);
+ HashSet<Technology> GetUserTechnologies(User user);
Technology GetUserTechnology(User user, Technology technology);
IEnumerable<User> QueryAll();
diff --git a/src/DevHive.Data/Models/Language.cs b/src/DevHive.Data/Models/Language.cs
index 0db8cb6..f2b2786 100644
--- a/src/DevHive.Data/Models/Language.cs
+++ b/src/DevHive.Data/Models/Language.cs
@@ -8,6 +8,6 @@ namespace DevHive.Data.Models
{
public Guid Id { get; set; }
public string Name { get; set; }
- public List<User> Users { get; set; }
+ public HashSet<User> Users { get; set; }
}
}
diff --git a/src/DevHive.Data/Models/Role.cs b/src/DevHive.Data/Models/Role.cs
index e63f007..e0855aa 100644
--- a/src/DevHive.Data/Models/Role.cs
+++ b/src/DevHive.Data/Models/Role.cs
@@ -12,6 +12,6 @@ namespace DevHive.Data.Models
public const string DefaultRole = "User";
public const string AdminRole = "Admin";
- public List<User> Users { get; set; }
+ public HashSet<User> Users { get; set; }
}
}
diff --git a/src/DevHive.Data/Models/Technology.cs b/src/DevHive.Data/Models/Technology.cs
index 9096cbe..a0728d5 100644
--- a/src/DevHive.Data/Models/Technology.cs
+++ b/src/DevHive.Data/Models/Technology.cs
@@ -8,6 +8,6 @@ namespace DevHive.Data.Models
{
public Guid Id { get; set; }
public string Name { get; set; }
- public List<User> Users { get; set; }
+ public HashSet<User> Users { get; set; }
}
}
diff --git a/src/DevHive.Data/Models/User.cs b/src/DevHive.Data/Models/User.cs
index cf779f5..2ac7adf 100644
--- a/src/DevHive.Data/Models/User.cs
+++ b/src/DevHive.Data/Models/User.cs
@@ -19,15 +19,15 @@ namespace DevHive.Data.Models
/// Languages that the user uses or is familiar with
/// </summary>
// [Unique]
- public IList<Language> Languages { get; set; }
+ public HashSet<Language> Languages { get; set; }
/// <summary>
/// Technologies that the user uses or is familiar with
/// </summary>
- public IList<Technology> Technologies { get; set; } = new List<Technology>();
+ public HashSet<Technology> Technologies { get; set; } = new HashSet<Technology>();
- public IList<Role> Roles { get; set; } = new List<Role>();
+ public HashSet<Role> Roles { get; set; } = new HashSet<Role>();
- public IList<User> Friends { get; set; } = new List<User>();
+ public HashSet<User> Friends { get; set; } = new HashSet<User>();
}
}
diff --git a/src/DevHive.Data/Repositories/UserRepository.cs b/src/DevHive.Data/Repositories/UserRepository.cs
index 2ca8099..492d46b 100644
--- a/src/DevHive.Data/Repositories/UserRepository.cs
+++ b/src/DevHive.Data/Repositories/UserRepository.cs
@@ -82,7 +82,7 @@ namespace DevHive.Data.Repositories
.FirstOrDefaultAsync(x => x.UserName == username);
}
- public IList<Language> GetUserLanguages(User user)
+ public HashSet<Language> GetUserLanguages(User user)
{
return user.Languages;
}
@@ -93,7 +93,7 @@ namespace DevHive.Data.Repositories
.FirstOrDefault(x => x.Id == language.Id);
}
- public IList<Technology> GetUserTechnologies(User user)
+ public HashSet<Technology> GetUserTechnologies(User user)
{
return user.Technologies;
}
diff --git a/src/DevHive.Services/Models/Identity/User/RegisterServiceModel.cs b/src/DevHive.Services/Models/Identity/User/RegisterServiceModel.cs
index 74f66b4..3171ea6 100644
--- a/src/DevHive.Services/Models/Identity/User/RegisterServiceModel.cs
+++ b/src/DevHive.Services/Models/Identity/User/RegisterServiceModel.cs
@@ -6,8 +6,8 @@ namespace DevHive.Services.Models.Identity.User
{
public class RegisterServiceModel : BaseUserServiceModel
{
- public IList<LanguageServiceModel> Languages { get; set; }
- public IList<TechnologyServiceModel> Technologies { get; set; }
+ public HashSet<LanguageServiceModel> Languages { get; set; }
+ public HashSet<TechnologyServiceModel> Technologies { get; set; }
public string Password { get; set; }
}
}
diff --git a/src/DevHive.Services/Models/Identity/User/UpdateUserServiceModel.cs b/src/DevHive.Services/Models/Identity/User/UpdateUserServiceModel.cs
index 5b5a178..87af43a 100644
--- a/src/DevHive.Services/Models/Identity/User/UpdateUserServiceModel.cs
+++ b/src/DevHive.Services/Models/Identity/User/UpdateUserServiceModel.cs
@@ -7,13 +7,13 @@ namespace DevHive.Services.Models.Identity.User
{
public Guid Id { get; set; }
- public IList<UpdateUserCollectionServiceModel> Roles { get; set; } = new List<UpdateUserCollectionServiceModel>();
+ public HashSet<UpdateUserCollectionServiceModel> Roles { get; set; } = new HashSet<UpdateUserCollectionServiceModel>();
- public IList<UpdateUserCollectionServiceModel> Friends { get; set; } = new List<UpdateUserCollectionServiceModel>();
+ public HashSet<UpdateUserCollectionServiceModel> Friends { get; set; } = new HashSet<UpdateUserCollectionServiceModel>();
- public IList<UpdateUserCollectionServiceModel> Languages { get; set; } = new List<UpdateUserCollectionServiceModel>();
+ public HashSet<UpdateUserCollectionServiceModel> Languages { get; set; } = new HashSet<UpdateUserCollectionServiceModel>();
- public IList<UpdateUserCollectionServiceModel> Technologies { get; set; } = new List<UpdateUserCollectionServiceModel>();
+ public HashSet<UpdateUserCollectionServiceModel> Technologies { get; set; } = new HashSet<UpdateUserCollectionServiceModel>();
}
}
diff --git a/src/DevHive.Services/Models/Identity/User/UserServiceModel.cs b/src/DevHive.Services/Models/Identity/User/UserServiceModel.cs
index 913b5c0..5fcd494 100644
--- a/src/DevHive.Services/Models/Identity/User/UserServiceModel.cs
+++ b/src/DevHive.Services/Models/Identity/User/UserServiceModel.cs
@@ -7,12 +7,12 @@ namespace DevHive.Services.Models.Identity.User
{
public class UserServiceModel : BaseUserServiceModel
{
- public IList<RoleServiceModel> Roles { get; set; } = new List<RoleServiceModel>();
+ public HashSet<RoleServiceModel> Roles { get; set; } = new HashSet<RoleServiceModel>();
- public IList<FriendServiceModel> Friends { get; set; } = new List<FriendServiceModel>();
+ public HashSet<FriendServiceModel> Friends { get; set; } = new HashSet<FriendServiceModel>();
- public IList<LanguageServiceModel> Languages { get; set; } = new List<LanguageServiceModel>();
+ public HashSet<LanguageServiceModel> Languages { get; set; } = new HashSet<LanguageServiceModel>();
- public IList<TechnologyServiceModel> Technologies { get; set; } = new List<TechnologyServiceModel>();
+ public HashSet<TechnologyServiceModel> Technologies { get; set; } = new HashSet<TechnologyServiceModel>();
}
}
diff --git a/src/DevHive.Services/Services/PostService.cs b/src/DevHive.Services/Services/PostService.cs
index f2f60d1..9503b8a 100644
--- a/src/DevHive.Services/Services/PostService.cs
+++ b/src/DevHive.Services/Services/PostService.cs
@@ -9,6 +9,7 @@ using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using DevHive.Services.Interfaces;
using DevHive.Data.Interfaces.Repositories;
+using System.Linq;
namespace DevHive.Services.Services
{
@@ -131,8 +132,8 @@ namespace DevHive.Services.Services
{
var jwt = new JwtSecurityTokenHandler().ReadJwtToken(rawTokenData.Remove(0, 7));
- string jwtUserName = this.GetClaimTypeValues("unique_name", jwt.Claims)[0];
- //List<string> jwtRoleNames = this.GetClaimTypeValues("role", jwt.Claims);
+ string jwtUserName = this.GetClaimTypeValues("unique_name", jwt.Claims).First();
+ //HashSet<string> jwtRoleNames = this.GetClaimTypeValues("role", jwt.Claims);
User user = await this._userRepository.GetByUsernameAsync(jwtUserName)
?? throw new ArgumentException("User does not exist!");
diff --git a/src/DevHive.Services/Services/UserService.cs b/src/DevHive.Services/Services/UserService.cs
index ee4b24d..51c4432 100644
--- a/src/DevHive.Services/Services/UserService.cs
+++ b/src/DevHive.Services/Services/UserService.cs
@@ -75,7 +75,7 @@ namespace DevHive.Services.Services
// Set the default role to the user
Role defaultRole = await this._roleRepository.GetByNameAsync(Role.DefaultRole);
- user.Roles = new List<Role>() { defaultRole };
+ user.Roles = new HashSet<Role>() { defaultRole };
await this._userRepository.AddAsync(user);
@@ -144,12 +144,12 @@ namespace DevHive.Services.Services
await this.ValidateUserCollections(updateUserServiceModel);
- List<Language> languages = new();
+ HashSet<Language> languages = new();
foreach (UpdateUserCollectionServiceModel lang in updateUserServiceModel.Languages)
languages.Add(await this._languageRepository.GetByNameAsync(lang.Name) ??
throw new ArgumentException("Invalid language name!"));
- List<Technology> technologies = new();
+ HashSet<Technology> technologies = new();
foreach (UpdateUserCollectionServiceModel tech in updateUserServiceModel.Technologies)
technologies.Add(await this._technologyRepository.GetByNameAsync(tech.Name) ??
throw new ArgumentException("Invalid technology name!"));
@@ -257,7 +257,7 @@ namespace DevHive.Services.Services
// There is authorization name in the beginning, i.e. "Bearer eyJh..."
var jwt = new JwtSecurityTokenHandler().ReadJwtToken(rawTokenData.Remove(0, 7));
- Guid jwtUserID = new Guid(this.GetClaimTypeValues("ID", jwt.Claims)[0]);
+ Guid jwtUserID = new Guid(this.GetClaimTypeValues("ID", jwt.Claims).First());
List<string> jwtRoleNames = this.GetClaimTypeValues("role", jwt.Claims);
User user = await this._userRepository.GetByIdAsync(jwtUserID)
@@ -326,11 +326,11 @@ namespace DevHive.Services.Services
}
}
- private string WriteJWTSecurityToken(Guid userId, IList<Role> roles)
+ private string WriteJWTSecurityToken(Guid userId, HashSet<Role> roles)
{
byte[] signingKey = Encoding.ASCII.GetBytes(_jwtOptions.Secret);
- List<Claim> claims = new()
+ HashSet<Claim> claims = new()
{
new Claim("ID", $"{userId}"),
};
diff --git a/src/DevHive.Tests/DevHive.Data.Tests/UserRepositoryTests.cs b/src/DevHive.Tests/DevHive.Data.Tests/UserRepositoryTests.cs
index b0a5b93..be116b0 100644
--- a/src/DevHive.Tests/DevHive.Data.Tests/UserRepositoryTests.cs
+++ b/src/DevHive.Tests/DevHive.Data.Tests/UserRepositoryTests.cs
@@ -165,10 +165,10 @@ namespace DevHive.Data.Tests
//Arrange
User dummyUser = CreateDummyUser();
await this._userRepository.AddAsync(dummyUser);
- IList<Language> dummyUserLanguages = dummyUser.Languages;
+ HashSet<Language> dummyUserLanguages = dummyUser.Languages;
//Act
- IList<Language> languages = this._userRepository.GetUserLanguages(dummyUser);
+ HashSet<Language> languages = this._userRepository.GetUserLanguages(dummyUser);
//Assert
Assert.AreEqual(dummyUserLanguages, languages, "Method doesn't query languages properly");
@@ -185,7 +185,7 @@ namespace DevHive.Data.Tests
// Language dummyLang = await this._languageRepository.GetByNameAsync("csharp");
// //Act
- // IList<Language> languages = this._userRepository.GetUserLanguage(dummyUser, dummyLang);
+ // HashSet<Language> languages = this._userRepository.GetUserLanguage(dummyUser, dummyLang);
// //Assert
// Assert.AreEqual(dummyUserLanguages, languages, "Method doesn't query languages properly");
@@ -195,7 +195,7 @@ namespace DevHive.Data.Tests
#region HelperMethods
private User CreateDummyUser()
{
- List<Language> languages = new()
+ HashSet<Language> languages = new()
{
new Language()
{
@@ -204,7 +204,7 @@ namespace DevHive.Data.Tests
},
};
- List<Technology> technologies = new()
+ HashSet<Technology> technologies = new()
{
new Technology()
{
@@ -213,7 +213,7 @@ namespace DevHive.Data.Tests
},
};
- List<Role> roles = new()
+ HashSet<Role> roles = new()
{
new Role()
{
@@ -237,7 +237,7 @@ namespace DevHive.Data.Tests
private User CreateAnotherDummyUser()
{
- List<Language> languages = new()
+ HashSet<Language> languages = new()
{
new Language()
{
@@ -246,7 +246,7 @@ namespace DevHive.Data.Tests
},
};
- List<Technology> technologies = new()
+ HashSet<Technology> technologies = new()
{
new Technology()
{
@@ -255,7 +255,7 @@ namespace DevHive.Data.Tests
},
};
- List<Role> roles = new()
+ HashSet<Role> roles = new()
{
new Role()
{
diff --git a/src/DevHive.Web/Models/Identity/User/UpdateUserWebModel.cs b/src/DevHive.Web/Models/Identity/User/UpdateUserWebModel.cs
index 724930c..3c38ab6 100644
--- a/src/DevHive.Web/Models/Identity/User/UpdateUserWebModel.cs
+++ b/src/DevHive.Web/Models/Identity/User/UpdateUserWebModel.cs
@@ -16,14 +16,14 @@ namespace DevHive.Web.Models.Identity.User
[NotNull]
[Required]
- public IList<FriendWebModel> Friends { get; set; }
+ public HashSet<FriendWebModel> Friends { get; set; }
[NotNull]
[Required]
- public IList<UpdateLanguageWebModel> Languages { get; set; }
+ public HashSet<UpdateLanguageWebModel> Languages { get; set; }
[NotNull]
[Required]
- public IList<UpdateTechnologyWebModel> Technologies { get; set; }
+ public HashSet<UpdateTechnologyWebModel> Technologies { get; set; }
}
}
diff --git a/src/DevHive.Web/Models/Identity/User/UserWebModel.cs b/src/DevHive.Web/Models/Identity/User/UserWebModel.cs
index 1d2d17b..5b80ba3 100644
--- a/src/DevHive.Web/Models/Identity/User/UserWebModel.cs
+++ b/src/DevHive.Web/Models/Identity/User/UserWebModel.cs
@@ -11,18 +11,18 @@ namespace DevHive.Web.Models.Identity.User
{
[NotNull]
[Required]
- public IList<RoleWebModel> Roles { get; set; } = new List<RoleWebModel>();
+ public HashSet<RoleWebModel> Roles { get; set; } = new HashSet<RoleWebModel>();
[NotNull]
[Required]
- public IList<FriendWebModel> Friends { get; set; } = new List<FriendWebModel>();
+ public HashSet<FriendWebModel> Friends { get; set; } = new HashSet<FriendWebModel>();
[NotNull]
[Required]
- public IList<LanguageWebModel> Languages { get; set; } = new List<LanguageWebModel>();
+ public HashSet<LanguageWebModel> Languages { get; set; } = new HashSet<LanguageWebModel>();
[NotNull]
[Required]
- public IList<TechnologyWebModel> Technologies { get; set; } = new List<TechnologyWebModel>();
+ public HashSet<TechnologyWebModel> Technologies { get; set; } = new HashSet<TechnologyWebModel>();
}
}