void LoadDBTemplates() { int totalDBTEmplates = DataServices.CountAllDBTemplates(); int startingPoint = 0; int limit = 5000; int recordsFetched = 0; string query = string.Empty; while (DbTemplateRecords.Count < totalDBTEmplates) { DataTable result = DataServices.GetAllDBTemplates(startingPoint, limit, out query); recordsFetched = result.Rows.Count; //Log the Query For Debuging... Do not enable in Live version... Logger.logToFile(query, AppSettings.ErrorLogPath); foreach (DataRow row in result.Rows) { DbTemplateRecord record = new DbTemplateRecord(); record.baseDataId = Convert.ToInt32(row[0]); record.UserPrimaryCode = row[1].ToString(); record.templateId = Convert.ToInt32(row[2]); record.template = DataServices.FetchTemplateFromResultSet(row[3]); DbTemplateRecords.Add(record); } startingPoint += limit; //Stop Processing this loop once we hit out expected Template Count... if (recordsFetched == 0) { break; } //Implement Progress Bar } }