private string GenerateSql(UrlQuery urlQuery, string tableName, pagedPatientData data) { var provider = _configuration.GetSection("TraumaRegistrySettings")["dbProvider"]; switch (provider) { case "sqlserver": return(sqlserver(urlQuery, tableName)); case "postgres": return(postgres(urlQuery, tableName)); case "mysql": return(mysql(urlQuery, tableName)); default: throw new Exception(string.Format("DB Provider {0} not supported.", provider)); } }
public ActionResult <pagedPatientData> GetPatients(UrlQuery urlQuery) { string tableName = "Patients"; _databasename = _context.Database.GetDbConnection().Database; tableName = AdjustDBEntityNameForProvider(tableName); pagedPatientData data = new pagedPatientData(); var pageNumber = Convert.ToInt32(urlQuery.PageNumber); data.recordCount = _context.Patients.Count(); string sql = GenerateSql(urlQuery, tableName, data); data.records = _context.Patients.FromSqlRaw(sql).ToList(); foreach (var item in data.records) { item.EventCount = _context.Events.Where(e => e.Patient.Id == item.Id).Count(); } return(data); }