public override async Task <GetByKeyReply> GetPublicByKey(GetByKeyRequest request, ServerCallContext context) { try { var appRequest = new ResourceRequestDto { WithKey = request.Key, LanguageCode = request.LanguageCode, MustBePublic = true }; var appResponse = await _resourcesAppService.GetAsync(appRequest); var response = new GetByKeyReply { Value = appResponse.Value }; return(response); } catch (Exception ex) { _logger.LogError(ex, ex.Message); return(null); } }
public async Task <IActionResult> GetByKeyAsync( string key, [FromQuery] string languageCode = null) { try { var appRequest = new ResourceRequestDto { WithKey = key, LanguageCode = languageCode }; var appResponse = await _resourcesAppService.GetAsync(appRequest); var response = appResponse.ToResponseModel <ResourceModel, ResourceDto>(); return(Ok(response)); } catch (Exception ex) { _logger.LogError(ex, ex.Message); return(StatusCode((int)HttpStatusCode.InternalServerError)); } }
public async Task <ResourceDto> GetAsync(ResourceRequestDto request) { using (var uow = UowManager.Begin()) using (UowManager.Current.OverrideCurrentLanguageCode(request.LanguageCode ?? Session.LanguageCode)) { var dto = await _resourceRepository.FirstOrDefaultAsync( x => (!request.WithId.HasValue || (request.WithId.HasValue && request.WithId.Value == x.Id)) && (string.IsNullOrEmpty(request.WithKey) || (!string.IsNullOrEmpty(request.WithKey) && request.WithKey == x.Key)) && (!request.MustBePublic.HasValue || (request.MustBePublic.HasValue && request.MustBePublic == !x.ResourceGroup.IsPrivate)) , new GetProjectedOptions <Resource, int, ResourceDto> { Projection = ResourceDto.Projection }); if (dto is null) { throw new AppException(); } return(dto); } }