private IEnumerable <IRecord> GetRecordsToProcess(bool selectedOnly) { IEnumerable <IRecord> recordsToUpdate = null; var fieldsToGet = new List <string>(); fieldsToGet.Add(RecordService.GetPrimaryKey(QueryViewModel.RecordType)); var primaryField = RecordService.GetPrimaryField(QueryViewModel.RecordType); if (!string.IsNullOrWhiteSpace(primaryField)) { fieldsToGet.Add(primaryField); } if (selectedOnly) { var ids = QueryViewModel.DynamicGridViewModel.SelectedRows.Select(r => r.Record.Id).ToArray(); recordsToUpdate = RecordService.RetrieveAllOrClauses(QueryViewModel.RecordType, ids.Select(i => new Condition(RecordService.GetPrimaryKey(QueryViewModel.RecordType), ConditionType.Equal, i)), fieldsToGet); } else { var query = QueryViewModel.GenerateQuery(); query.Fields = fieldsToGet; query.Top = -1; recordsToUpdate = RecordService.RetreiveAll(query); } return(recordsToUpdate); }