public GetImageUrlResponseWrapper GetImageUrl(GetImageUrlRequestWrapper getImageUrlRequestWrapper) { return(this.integrationService.GetImageUrl(getImageUrlRequestWrapper)); }
public GetImageUrlResponseWrapper GetImageUrl(GetImageUrlRequestWrapper getImageUrlRequestWrapper) { var returnResponse = new GetImageUrlResponseWrapper { GetImageUrlResponse = new List <GetImageUrlResponse>(), RepositoryFound = false }; this._supportedRespository = ReturnSupportedRespository(getImageUrlRequestWrapper.Repository); if (getImageUrlRequestWrapper?.GetImageUrlRequest == null || this._supportedRespository == null || !getImageUrlRequestWrapper.GetImageUrlRequest.Any()) { return(returnResponse); } returnResponse.RepositoryFound = true; var amendedRequest = new List <GetImageUrlRequest>(); getImageUrlRequestWrapper.GetImageUrlRequest = getImageUrlRequestWrapper.GetImageUrlRequest.DistinctBy(x => x.CombinedKey).ToList(); if (this._progressConfiguration.InforIdmUseCache && !getImageUrlRequestWrapper.IgnoreCache) { foreach (var request in getImageUrlRequestWrapper.GetImageUrlRequest) { var key = $"{this._supportedRespository.IdmRepository}|{request.CombinedKey}"; var appHit = this._appCache.Get <string>(Majorbucket, key); if (appHit != null) { returnResponse.GetImageUrlResponse.Add(new GetImageUrlResponse { Key = request.Key, ImageType = request.ImageType, Url = appHit, ValidMinutes = this._tokenObject.InforIdmCacheExpirationAbsolute / 2 }); } else { amendedRequest.Add(request); } } } else { amendedRequest = getImageUrlRequestWrapper.GetImageUrlRequest; } if (!amendedRequest.Any()) { return(returnResponse); } var responseFromCall = this.ReturnUrlFromCall(amendedRequest, out var inError); if (inError) { returnResponse.InError = true; return(returnResponse); } foreach (var response in responseFromCall) { returnResponse.GetImageUrlResponse.Add(response); if (!this._progressConfiguration.InforIdmUseCache || getImageUrlRequestWrapper.IgnoreCache) { continue; } var key = $"{this._supportedRespository.IdmRepository}|{response.CombinedKey}"; var appHit = this._appCache.Get <string>(Majorbucket, key); if (appHit != null) { continue; } if (this._tokenObject.InforIdmCacheExpirationAbsolute == 0) { this._tokenObject.InforIdmCacheExpirationAbsolute = 60; } this._appCache.Add(Majorbucket, key, response.Url, new CacheItemPolicy { AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(this._tokenObject.InforIdmCacheExpirationAbsolute) }); } return(returnResponse); }