aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortranstrike <transtrike@gmail.com>2021-01-26 15:38:40 +0200
committertranstrike <transtrike@gmail.com>2021-01-26 15:38:40 +0200
commitbddc0b0566bc19e936ccae9d3aa16b6e0116b186 (patch)
tree54db0a9aeafda117b85086cad6d5b9136bbf94ff /src
parent93c14acb17f4b845c9e2b6781a6a3c10e23b6bf5 (diff)
downloadDevHive-bddc0b0566bc19e936ccae9d3aa16b6e0116b186.tar
DevHive-bddc0b0566bc19e936ccae9d3aa16b6e0116b186.tar.gz
DevHive-bddc0b0566bc19e936ccae9d3aa16b6e0116b186.zip
GetLanguages&GetTechnologies implmenented
Diffstat (limited to 'src')
-rw-r--r--src/DevHive.Data/Interfaces/Repositories/ILanguageRepository.cs5
-rw-r--r--src/DevHive.Data/Interfaces/Repositories/ITechnologyRepository.cs5
-rw-r--r--src/DevHive.Data/Repositories/LanguageRepository.cs7
-rw-r--r--src/DevHive.Data/Repositories/TechnologyRepository.cs7
-rw-r--r--src/DevHive.Services/Configurations/Mapping/TechnologyMappings.cs1
-rw-r--r--src/DevHive.Services/Interfaces/ILanguageService.cs2
-rw-r--r--src/DevHive.Services/Interfaces/ITechnologyService.cs2
-rw-r--r--src/DevHive.Services/Services/LanguageService.cs12
-rw-r--r--src/DevHive.Services/Services/TechnologyService.cs7
-rw-r--r--src/DevHive.Web/Controllers/LanguageController.cs12
-rw-r--r--src/DevHive.Web/Controllers/TechnologyController.cs12
11 files changed, 66 insertions, 6 deletions
diff --git a/src/DevHive.Data/Interfaces/Repositories/ILanguageRepository.cs b/src/DevHive.Data/Interfaces/Repositories/ILanguageRepository.cs
index f1d7248..db2949a 100644
--- a/src/DevHive.Data/Interfaces/Repositories/ILanguageRepository.cs
+++ b/src/DevHive.Data/Interfaces/Repositories/ILanguageRepository.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using System.Threading.Tasks;
using DevHive.Data.Models;
using DevHive.Data.Repositories.Interfaces;
@@ -7,8 +8,10 @@ namespace DevHive.Data.Interfaces.Repositories
{
public interface ILanguageRepository : IRepository<Language>
{
+ HashSet<Language> GetLanguages();
+ Task<Language> GetByNameAsync(string name);
+
Task<bool> DoesLanguageExistAsync(Guid id);
Task<bool> DoesLanguageNameExistAsync(string languageName);
- Task<Language> GetByNameAsync(string name);
}
}
diff --git a/src/DevHive.Data/Interfaces/Repositories/ITechnologyRepository.cs b/src/DevHive.Data/Interfaces/Repositories/ITechnologyRepository.cs
index fb0ba20..9126bfc 100644
--- a/src/DevHive.Data/Interfaces/Repositories/ITechnologyRepository.cs
+++ b/src/DevHive.Data/Interfaces/Repositories/ITechnologyRepository.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using System.Threading.Tasks;
using DevHive.Data.Models;
using DevHive.Data.Repositories.Interfaces;
@@ -7,8 +8,10 @@ namespace DevHive.Data.Interfaces.Repositories
{
public interface ITechnologyRepository : IRepository<Technology>
{
+ Task<Technology> GetByNameAsync(string name);
+ HashSet<Technology> GetTechnologies();
+
Task<bool> DoesTechnologyExistAsync(Guid id);
Task<bool> DoesTechnologyNameExistAsync(string technologyName);
- Task<Technology> GetByNameAsync(string name);
}
}
diff --git a/src/DevHive.Data/Repositories/LanguageRepository.cs b/src/DevHive.Data/Repositories/LanguageRepository.cs
index c28ef31..f2cc67f 100644
--- a/src/DevHive.Data/Repositories/LanguageRepository.cs
+++ b/src/DevHive.Data/Repositories/LanguageRepository.cs
@@ -1,4 +1,6 @@
using System;
+using System.Collections.Generic;
+using System.Linq;
using System.Threading.Tasks;
using DevHive.Data.Interfaces.Repositories;
using DevHive.Data.Models;
@@ -23,6 +25,11 @@ namespace DevHive.Data.Repositories
.AsNoTracking()
.FirstOrDefaultAsync(x => x.Name == languageName);
}
+
+ public HashSet<Language> GetLanguages()
+ {
+ return this._context.Languages.ToHashSet();
+ }
#endregion
#region Validations
diff --git a/src/DevHive.Data/Repositories/TechnologyRepository.cs b/src/DevHive.Data/Repositories/TechnologyRepository.cs
index 87540fb..e03291d 100644
--- a/src/DevHive.Data/Repositories/TechnologyRepository.cs
+++ b/src/DevHive.Data/Repositories/TechnologyRepository.cs
@@ -1,4 +1,6 @@
using System;
+using System.Collections.Generic;
+using System.Linq;
using System.Threading.Tasks;
using DevHive.Data.Interfaces.Repositories;
using DevHive.Data.Models;
@@ -23,6 +25,11 @@ namespace DevHive.Data.Repositories
.AsNoTracking()
.FirstOrDefaultAsync(x => x.Name == technologyName);
}
+
+ public HashSet<Technology> GetTechnologies()
+ {
+ return this._context.Technologies.ToHashSet();
+ }
#endregion
#region Validations
diff --git a/src/DevHive.Services/Configurations/Mapping/TechnologyMappings.cs b/src/DevHive.Services/Configurations/Mapping/TechnologyMappings.cs
index 0103ccf..85b57f1 100644
--- a/src/DevHive.Services/Configurations/Mapping/TechnologyMappings.cs
+++ b/src/DevHive.Services/Configurations/Mapping/TechnologyMappings.cs
@@ -14,6 +14,7 @@ namespace DevHive.Services.Configurations.Mapping
CreateMap<Technology, CreateTechnologyServiceModel>();
CreateMap<Technology, TechnologyServiceModel>();
+ CreateMap<Technology, ReadTechnologyServiceModel>();
CreateMap<Technology, UpdateTechnologyServiceModel>();
}
}
diff --git a/src/DevHive.Services/Interfaces/ILanguageService.cs b/src/DevHive.Services/Interfaces/ILanguageService.cs
index 0df9a95..fabbec2 100644
--- a/src/DevHive.Services/Interfaces/ILanguageService.cs
+++ b/src/DevHive.Services/Interfaces/ILanguageService.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using System.Threading.Tasks;
using DevHive.Services.Models.Language;
@@ -9,6 +10,7 @@ namespace DevHive.Services.Interfaces
Task<Guid> CreateLanguage(CreateLanguageServiceModel createLanguageServiceModel);
Task<ReadLanguageServiceModel> GetLanguageById(Guid id);
+ HashSet<ReadLanguageServiceModel> GetLanguages();
Task<bool> UpdateLanguage(UpdateLanguageServiceModel languageServiceModel);
diff --git a/src/DevHive.Services/Interfaces/ITechnologyService.cs b/src/DevHive.Services/Interfaces/ITechnologyService.cs
index 9c5661d..1d4fa8b 100644
--- a/src/DevHive.Services/Interfaces/ITechnologyService.cs
+++ b/src/DevHive.Services/Interfaces/ITechnologyService.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using System.Threading.Tasks;
using DevHive.Services.Models.Technology;
@@ -9,6 +10,7 @@ namespace DevHive.Services.Interfaces
Task<Guid> Create(CreateTechnologyServiceModel technologyServiceModel);
Task<CreateTechnologyServiceModel> GetTechnologyById(Guid id);
+ HashSet<ReadTechnologyServiceModel> GetTechnologies();
Task<bool> UpdateTechnology(UpdateTechnologyServiceModel updateTechnologyServiceModel);
diff --git a/src/DevHive.Services/Services/LanguageService.cs b/src/DevHive.Services/Services/LanguageService.cs
index a602d43..a6364d8 100644
--- a/src/DevHive.Services/Services/LanguageService.cs
+++ b/src/DevHive.Services/Services/LanguageService.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using System.Threading.Tasks;
using AutoMapper;
using DevHive.Data.Interfaces.Repositories;
@@ -20,7 +21,6 @@ namespace DevHive.Services.Services
}
#region Create
-
public async Task<Guid> CreateLanguage(CreateLanguageServiceModel createLanguageServiceModel)
{
if (await this._languageRepository.DoesLanguageNameExistAsync(createLanguageServiceModel.Name))
@@ -40,7 +40,6 @@ namespace DevHive.Services.Services
#endregion
#region Read
-
public async Task<ReadLanguageServiceModel> GetLanguageById(Guid id)
{
Language language = await this._languageRepository.GetByIdAsync(id);
@@ -50,10 +49,16 @@ namespace DevHive.Services.Services
return this._languageMapper.Map<ReadLanguageServiceModel>(language);
}
+
+ public HashSet<ReadLanguageServiceModel> GetLanguages()
+ {
+ HashSet<Language> languages = this._languageRepository.GetLanguages();
+
+ return this._languageMapper.Map<HashSet<ReadLanguageServiceModel>>(languages);
+ }
#endregion
#region Update
-
public async Task<bool> UpdateLanguage(UpdateLanguageServiceModel languageServiceModel)
{
bool langExists = await this._languageRepository.DoesLanguageExistAsync(languageServiceModel.Id);
@@ -71,7 +76,6 @@ namespace DevHive.Services.Services
#endregion
#region Delete
-
public async Task<bool> DeleteLanguage(Guid id)
{
if (!await this._languageRepository.DoesLanguageExistAsync(id))
diff --git a/src/DevHive.Services/Services/TechnologyService.cs b/src/DevHive.Services/Services/TechnologyService.cs
index c879ad7..039cd8a 100644
--- a/src/DevHive.Services/Services/TechnologyService.cs
+++ b/src/DevHive.Services/Services/TechnologyService.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using System.Threading.Tasks;
using AutoMapper;
using DevHive.Data.Interfaces.Repositories;
@@ -48,6 +49,12 @@ namespace DevHive.Services.Services
return this._technologyMapper.Map<CreateTechnologyServiceModel>(technology);
}
+ public HashSet<ReadTechnologyServiceModel> GetTechnologies()
+ {
+ HashSet<Technology> technologies = this._technologyRepository.GetTechnologies();
+
+ return this._technologyMapper.Map<HashSet<ReadTechnologyServiceModel>>(technologies);
+ }
#endregion
#region Update
diff --git a/src/DevHive.Web/Controllers/LanguageController.cs b/src/DevHive.Web/Controllers/LanguageController.cs
index de6bf15..85ec1e1 100644
--- a/src/DevHive.Web/Controllers/LanguageController.cs
+++ b/src/DevHive.Web/Controllers/LanguageController.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using System.Threading.Tasks;
using AutoMapper;
using DevHive.Services.Interfaces;
@@ -45,6 +46,17 @@ namespace DevHive.Web.Controllers
return new OkObjectResult(languageWebModel);
}
+ [HttpGet]
+ [Route("GetLanguages")]
+ [Authorize(Roles = "User,Admin")]
+ public IActionResult GetAllExistingLanguages()
+ {
+ HashSet<ReadLanguageServiceModel> languageServiceModels = this._languageService.GetLanguages();
+ HashSet<ReadLanguageWebModel> languageWebModels = this._languageMapper.Map<HashSet<ReadLanguageWebModel>>(languageServiceModels);
+
+ return new OkObjectResult(languageWebModels);
+ }
+
[HttpPut]
[Authorize(Roles = "Admin")]
public async Task<IActionResult> Update(Guid id, [FromBody] UpdateLanguageWebModel updateModel)
diff --git a/src/DevHive.Web/Controllers/TechnologyController.cs b/src/DevHive.Web/Controllers/TechnologyController.cs
index c107c6e..6453d12 100644
--- a/src/DevHive.Web/Controllers/TechnologyController.cs
+++ b/src/DevHive.Web/Controllers/TechnologyController.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using System.Threading.Tasks;
using AutoMapper;
using DevHive.Services.Interfaces;
@@ -45,6 +46,17 @@ namespace DevHive.Web.Controllers
return new OkObjectResult(createTechnologyWebModel);
}
+ [HttpGet]
+ [Route("GetTechnologies")]
+ [Authorize(Roles = "User,Admin")]
+ public IActionResult GetAllExistingTechnologies()
+ {
+ HashSet<ReadTechnologyServiceModel> technologyServiceModels = this._technologyService.GetTechnologies();
+ HashSet<ReadTechnologyWebModel> languageWebModels = this._technologyMapper.Map<HashSet<ReadTechnologyWebModel>>(technologyServiceModels);
+
+ return new OkObjectResult(languageWebModels);
+ }
+
[HttpPut]
[Authorize(Roles = "Admin")]
public async Task<IActionResult> Update(Guid id, [FromBody] UpdateTechnologyWebModel updateModel)