예제 #1
0
        /// <summary>
        /// Gets the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns><c>GetLanguageResponse</c> with language data.</returns>
        public GetLanguageResponse Get(GetLanguageRequest request)
        {
            var query = repository.AsQueryable<Module.Root.Models.Language>();

            if (request.LanguageId.HasValue)
            {
                query = query.Where(language => language.Id == request.LanguageId);
            }
            else
            {
                query = query.Where(language => language.Code == request.LanguageCode);
            }

            var model = query
                .Select(language => new LanguageModel
                    {
                        Id = language.Id,
                        Version = language.Version,
                        CreatedBy = language.CreatedByUser,
                        CreatedOn = language.CreatedOn,
                        LastModifiedBy = language.ModifiedByUser,
                        LastModifiedOn = language.ModifiedOn,

                        Name = language.Name,
                        Code = language.Code
                    })
                .FirstOne();

            return new GetLanguageResponse
                       {
                           Data = model
                       };
        }
예제 #2
0
        public GetLanguageResponse GetLanguage(GetLanguageRequest request)
        {
            var response      = new GetLanguageResponse();
            var isValidFormat = Regex.IsMatch(request.LanguageCode, "[a-z]{2}(-[a-z]{2})?", RegexOptions.IgnoreCase);

            if (!isValidFormat)
            {
                response.Message = "The language code is in the wrong format.";
                return(response);
            }

            try
            {
                var cultures = CultureInfo.GetCultures(CultureTypes.AllCultures);
                var culture  = cultures.FirstOrDefault(x => x.Name.Equals(request.LanguageCode, StringComparison.InvariantCultureIgnoreCase));
                var language = new LanguageDto();

                if (culture != null)
                {
                    language.IsoCode    = culture.IetfLanguageTag;
                    language.Name       = culture.EnglishName;
                    language.NativeName = culture.NativeName;
                }

                response.Language = language;
                response.Success  = true;
            }
            catch (Exception ex)
            {
                this.exceptionHandler.HandleException(ex);
                response.Message = Resources.Common.InternalServerError;
            }

            return(response);
        }
예제 #3
0
        public override Task <GetLanguageResponse> GetLanguage(GetLanguageRequest request,
                                                               ServerCallContext context)
        {
            var function = functionStore.GetObject(request.Function.Id);

            GetLanguageResponse.Types.LanguageType languageType;
            switch (function.GetLanguage())
            {
            case LanguageType.C:
                languageType = GetLanguageResponse.Types.LanguageType.C;
                break;

            case LanguageType.C11:
                languageType = GetLanguageResponse.Types.LanguageType.C11;
                break;

            case LanguageType.C89:
                languageType = GetLanguageResponse.Types.LanguageType.C89;
                break;

            case LanguageType.C99:
                languageType = GetLanguageResponse.Types.LanguageType.C99;
                break;

            case LanguageType.C_PLUS_PLUS:
                languageType = GetLanguageResponse.Types.LanguageType.CPlusPlus;
                break;

            case LanguageType.C_PLUS_PLUS_03:
                languageType = GetLanguageResponse.Types.LanguageType.CPlusPlus03;
                break;

            case LanguageType.C_PLUS_PLUS_11:
                languageType = GetLanguageResponse.Types.LanguageType.CPlusPlus11;
                break;

            case LanguageType.C_PLUS_PLUS_14:
                languageType = GetLanguageResponse.Types.LanguageType.CPlusPlus14;
                break;

            case LanguageType.UNKNOWN:
            // fall through
            default:
                languageType = GetLanguageResponse.Types.LanguageType.Unknown;
                break;
            }
            return(Task.FromResult(new GetLanguageResponse {
                LanguageType = languageType
            }));
        }
예제 #4
0
        private Guid?GetLanguageId(IApiFacade api, string languageCode)
        {
            if (string.IsNullOrEmpty(languageCode))
            {
                return(null);
            }

            try
            {
                var request = new GetLanguageRequest {
                    LanguageCode = languageCode
                };
                var response = api.Root.Language.Get(request);
                return(response.Data.Id);
            }
            catch
            {
            }

            return(Guid.Empty);
        }
예제 #5
0
        private Guid? GetLanguageId(IApiFacade api, string languageCode)
        {
            if (string.IsNullOrEmpty(languageCode))
            {
                return null;
            }

            try
            {
                var request = new GetLanguageRequest { LanguageCode = languageCode };
                var response = api.Root.Language.Get(request);
                return response.Data.Id;
            }
            catch
            {
            }

            return Guid.Empty;
        }
예제 #6
0
        public override async Task <Language> GetLanguage(GetLanguageRequest getLanguageRequest, ServerCallContext context)
        {
            var getLanguage = _mapper.Map <GetLanguageRequest, GetLanguage>(getLanguageRequest);

            return(_mapper.Map <LanguageModel, Language>(await _mediator.Send(getLanguage)));
        }