public async Task <PagedResponse <PatientModel> > GetDetailsAsync(int pageSize = 10, int pageNumber = 1) { Logger?.LogDebug("'{0}' has been invoked", nameof(GetDetailsAsync)); var response = new PagedResponse <PatientModel>(); List <PatientModel> patientData = null; try { var query = DbContext.GetPatientDetails(); // Set paging values response.PageSize = pageSize; response.PageNumber = pageNumber; // Get the total rows response.ItemsCount = await query.CountAsync(); // Get the specific page from database var temp = await query.Paging(pageSize, pageNumber).ToListAsync(); patientData = temp.Select(t => new PatientModel { Forename = t.Forename, Surname = t.Surname, DateOfBirth = t.DateOfBirth, Gender = t.Gender, PatientId = t.PatientId, TelephoneNumber = !string.IsNullOrEmpty(t.TelephoneNumber) ? JsonConvert.DeserializeObject <PatientTelephoneNumber>(t.TelephoneNumber) : new PatientTelephoneNumber() }).ToList(); response.Model = patientData; response.Message = string.Format("Page {0} of {1}, Total of records: {2}.", pageNumber, response.PageCount, response.ItemsCount); Logger?.LogInformation("The records have been retrieved successfully."); } catch (Exception ex) { response.DidError = true; response.ErrorMessage = "There was an internal error, please contact to technical support."; Logger?.LogCritical("There was an error on '{0}' invocation: {1}", nameof(GetDetailsAsync), ex); } return(response); }