diff options
| author | transtrike <transtrike@gmail.com> | 2021-01-12 13:16:39 +0200 |
|---|---|---|
| committer | transtrike <transtrike@gmail.com> | 2021-01-12 13:16:39 +0200 |
| commit | 11bd1d9a9760c7bc6a601d78b3d89ec9028647a2 (patch) | |
| tree | 4e74a8fc10a07f58e11d3612373b17a246ec2868 /src/DevHive.Services/Services/LanguageService.cs | |
| parent | b14dc0fe3e5ecfca3a7e780a17627f823d59246c (diff) | |
| download | DevHive-11bd1d9a9760c7bc6a601d78b3d89ec9028647a2.tar DevHive-11bd1d9a9760c7bc6a601d78b3d89ec9028647a2.tar.gz DevHive-11bd1d9a9760c7bc6a601d78b3d89ec9028647a2.zip | |
Language layers refactored; User implements adding & removing Languages; Migrations added
Diffstat (limited to 'src/DevHive.Services/Services/LanguageService.cs')
| -rw-r--r-- | src/DevHive.Services/Services/LanguageService.cs | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/src/DevHive.Services/Services/LanguageService.cs b/src/DevHive.Services/Services/LanguageService.cs index 3c011c6..127bde4 100644 --- a/src/DevHive.Services/Services/LanguageService.cs +++ b/src/DevHive.Services/Services/LanguageService.cs @@ -2,25 +2,25 @@ using System; using System.Threading.Tasks; using AutoMapper; using DevHive.Data.Models; -using DevHive.Data.Repositories.Contracts; +using DevHive.Data.Repositories; using DevHive.Services.Models.Language; namespace DevHive.Services.Services { public class LanguageService { - private readonly ILanguageRepository _languageRepository; + private readonly LanguageRepository _languageRepository; private readonly IMapper _languageMapper; - public LanguageService(ILanguageRepository languageRepository, IMapper mapper) + public LanguageService(LanguageRepository languageRepository, IMapper mapper) { this._languageRepository = languageRepository; this._languageMapper = mapper; } - public async Task<bool> CreateLanguage(LanguageServiceModel languageServiceModel) + public async Task<bool> CreateLanguage(CreateLanguageServiceModel languageServiceModel) { - if (await this._languageRepository.DoesLanguageNameExist(languageServiceModel.Name)) + if (await this._languageRepository.DoesLanguageNameExistAsync(languageServiceModel.Name)) throw new ArgumentException("Language already exists!"); Language language = this._languageMapper.Map<Language>(languageServiceModel); @@ -33,7 +33,7 @@ namespace DevHive.Services.Services { Language language = await this._languageRepository.GetByIdAsync(id); - if(language == null) + if (language == null) throw new ArgumentException("The language does not exist"); return this._languageMapper.Map<LanguageServiceModel>(language); @@ -41,28 +41,28 @@ namespace DevHive.Services.Services public async Task<bool> UpdateLanguage(UpdateLanguageServiceModel languageServiceModel) { - if (!await this._languageRepository.DoesLanguageExist(languageServiceModel.Id)) - throw new ArgumentException("Language does not exist!"); + Task<bool> langExist = this._languageRepository.DoesLanguageExistAsync(languageServiceModel.Id); + Task<bool> newLangNameExists = this._languageRepository.DoesLanguageNameExistAsync(languageServiceModel.Name); - if (await this._languageRepository.DoesLanguageNameExist(languageServiceModel.Name)) - throw new ArgumentException("Language name already exists!"); + await Task.WhenAny(langExist, newLangNameExists); - Language language = this._languageMapper.Map<Language>(languageServiceModel); - //language.Id = languageServiceModel.Id; - bool result = await this._languageRepository.EditAsync(language); + if (!langExist.Result) + throw new ArgumentException("Language already exists!"); - return result; + if (newLangNameExists.Result) + throw new ArgumentException("This name is already in our datbase!"); + + Language lang = this._languageMapper.Map<Language>(languageServiceModel); + return await this._languageRepository.EditAsync(lang); } - + public async Task<bool> DeleteLanguage(Guid id) { - if (!await this._languageRepository.DoesLanguageExist(id)) + if (!await this._languageRepository.DoesLanguageExistAsync(id)) throw new ArgumentException("Language does not exist!"); Language language = await this._languageRepository.GetByIdAsync(id); - bool result = await this._languageRepository.DeleteAsync(language); - - return result; + return await this._languageRepository.DeleteAsync(language); } } }
\ No newline at end of file |
