Пример #1
0
 public LookupGridViewModel(IReferenceFieldViewModel referenceField,
                            Action <IRecord> onRecordSelected)
     : base(referenceField.RecordEntryViewModel.ApplicationController)
 {
     OnRecordSelected     = onRecordSelected;
     DynamicGridViewModel = new DynamicGridViewModel(ApplicationController)
     {
         OnDoubleClick  = OnDoubleClick,
         ViewType       = ViewType.LookupView,
         RecordService  = referenceField.LookupService,
         FormController = new FormController(referenceField.LookupService, null, referenceField.RecordEntryViewModel.ApplicationController),
         RecordType     = referenceField.RecordTypeToLookup,
         IsReadOnly     = true,
     };
 }
Пример #2
0
        public LookupGridViewModel(IReferenceFieldViewModel referenceField,
                                   Action <IRecord> onRecordSelected)
            : base(referenceField.RecordEntryViewModel.ApplicationController)
        {
            OnRecordSelected = onRecordSelected;

            Func <bool, GetGridRecordsResponse> getGridRecords = (ignorePages) =>
            {
                var query = new QueryDefinition(referenceField.RecordTypeToLookup);
                query.IsQuickFind   = true;
                query.QuickFindText = referenceField.EnteredText;
                if (!string.IsNullOrWhiteSpace(referenceField.EnteredText))
                {
                    var quickFindFields = DynamicGridViewModel.RecordService.GetStringQuickfindFields(referenceField.RecordTypeToLookup);
                    query.RootFilter.ConditionOperator = FilterOperator.Or;
                    query.RootFilter.Conditions.AddRange(quickFindFields.Select(f => new Condition(f, ConditionType.BeginsWith, referenceField.EnteredText)));
                }

                if (!DynamicGridViewModel.HasPaging || ignorePages)
                {
                    var records = DynamicGridViewModel.RecordService.RetreiveAll(query);
                    return(new GetGridRecordsResponse(records));
                }
                else
                {
                    return(DynamicGridViewModel.GetGridRecordPage(query));
                }
            };

            DynamicGridViewModel = new DynamicGridViewModel(ApplicationController)
            {
                PageSize       = MaxRecordsForLookup,
                GetGridRecords = getGridRecords,
                OnDoubleClick  = OnDoubleClick,
                ViewType       = ViewType.LookupView,
                RecordService  = referenceField.LookupService,
                FormController = new FormController(referenceField.LookupService, null, referenceField.RecordEntryViewModel.ApplicationController),
                RecordType     = referenceField.RecordTypeToLookup,
                IsReadOnly     = true,
            };
        }