public async Task <IActionResult> GetCachedObject(string key)
        {
            if (string.IsNullOrEmpty(key))
            {
                throw new ArgumentException($"Cannot be null or empty : {nameof(key)}");
            }
            try
            {
                var oneOfResponse = await _cachingService.GetCachedObject(key);

                return(oneOfResponse.Match <IActionResult>(
                           DataObject => new OkObjectResult(DataObject),
                           NotFoundCacheObject => new NotFoundObjectResult(NotFoundCacheObject)));
            }
            catch (CachingServiceException csex)
            {
                _logger.LogError($"Error {nameof(CachingServiceException)}", csex);
                return(StatusCode(500));
            }
            catch (Exception ex)
            {
                _logger.LogError($"Error {nameof(Exception)}", ex);
                return(StatusCode(500));
            }
        }