public void should_Get_Extract()
        {
            var getExtract = new GetExtract("dwh", "Patients", 1, 5);

            var result = _mediator.Send(getExtract).Result;

            Assert.True(result.IsSuccess);
            var top5 = result.Value;

            Assert.AreEqual(1, top5.PageNumber);
            Assert.AreEqual(5, top5.PageSize);
            Assert.AreEqual(2, top5.PageCount);
            Assert.AreEqual(5, top5.TotalItemCount);
            Log.Debug(top5.ToString());
            Log.Debug(JsonConvert.SerializeObject(top5.Extract.First()));
        }
        public async Task <ActionResult> Get(string code, string name, int pageNumber, int pageSize)
        {
            #region Move to middleware

            try
            {
                var client = User.Claims.FirstOrDefault(c => c.Type == "client_id")?.Value;
                var ip     = _accessor.HttpContext?.Connection?.RemoteIpAddress?.ToString();

                Log.Warning($"Client:{client}");
                Log.Warning($"ClientIp:{ip}");
                Log.Warning($"Request:{Request.Path}");
                Log.Warning($"Query:{Request.QueryString}");
                Log.Warning(new string('-', 50));
            }
            catch (Exception e)
            {
                Log.Error(e, "Request error");
            }

            #endregion


            try
            {
                var request = new GetExtract(code, name, pageNumber, pageSize);

                var results = await _mediator.Send(request);

                if (results.IsSuccess)
                {
                    return(Ok(results.Value));
                }

                throw new Exception(results.Error);
            }
            catch (Exception e)
            {
                var msg = $"Error loading Dataset ";
                Log.Error(e, msg);
                return(StatusCode(500, $"{msg} {e.Message}"));
            }
        }