示例#1
0
        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);
        }