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, }; }
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, }; }