public async Task <Unit> Handle(AddNewLanguageCommand request, CancellationToken cancellationToken)
        {
            var user = await _context.Users.Include(x => x.Languages)
                       .FirstOrDefaultAsync(x => x.Id == request.UserId, cancellationToken);

            if (user == null)
            {
                throw new NotFoundException(request.UserId.ToString(), request);
            }

            var language = ListOfLanguages.GetLanguageByCode(request.LanguageCode);

            var languageToAdd = new Language

            {
                LanguageCode       = language.LanguageCode,
                LanguageName       = language.LanguageName,
                LanguageNativeName = language.LanguageNativeName
            };

            user.Languages.Add(languageToAdd);

            await _context.SaveChangesAsync(cancellationToken);

            return(Unit.Value);
        }
示例#2
0
        public async Task Handle(CreateRequestCommand request, CancellationToken cancellationToken)
        {
            var languageOrigin = ListOfLanguages.GetLanguageById(request.LanguageOriginId);

            var languageTarget = ListOfLanguages.GetLanguageById(request.LanguageTargetId);

            if (languageTarget == null)
            {
                throw new NotFoundException($"{request.LanguageTargetId}", languageOrigin);
            }

            switch (languageOrigin)
            {
            case null:
            {
                const string emptyLanguage = "Not set";
                var          entity        = new Request
                {
                    LanguageTarget  = languageTarget.LanguageCode,
                    LanguageOrigin  = emptyLanguage,
                    TextToTranslate = Regex.Replace(request.TextToTranslate, @"\s+", " ").Trim(),
                    UserId          = request.UserId
                };
                _context.Requests.Add(entity);
                break;
            }

            default:
            {
                var entity = new Request
                {
                    LanguageTarget  = languageTarget.LanguageCode,
                    LanguageOrigin  = languageOrigin.LanguageCode,
                    TextToTranslate = Regex.Replace(request.TextToTranslate, @"\s+", " ").Trim(),
                    UserId          = request.UserId
                };

                _context.Requests.Add(entity);
                break;
            }
            }

            await _context.SaveChangesAsync(cancellationToken).ConfigureAwait(false);
        }
示例#3
0
        public static bool BeALanguageByCode(string arg)
        {
            var language = ListOfLanguages.GetLanguageByCode(arg);

            return(language != null);
        }
示例#4
0
        public static bool BeALanguageById(int id)
        {
            var language = ListOfLanguages.GetLanguageById(id);

            return(language != null);
        }
 public IActionResult GetAllLanguages()
 {
     return(Ok(ListOfLanguages.GetList()));
 }