コード例 #1
0
        private void AddDataSource(IDocumentDataSource dataSource, bool isInplaceDataSource)
        {
            CriteriaOperator criteria = isInplaceDataSource ? inPlaceCriteria : null;

            if (!String.IsNullOrEmpty(dataSource.Criteria))
            {
                CriteriaOperator dataSourceCriteria = CriteriaEditorHelper.GetCriteriaOperator(dataSource.Criteria, dataSource.DataType, objectSpace);
                if (ReferenceEquals(criteria, null))
                {
                    criteria = dataSourceCriteria;
                }
                else
                {
                    criteria = new GroupOperator(GroupOperatorType.And, criteria, dataSourceCriteria);
                }
            }
            CollectionSource collectionSource = new CollectionSource(objectSpace, dataSource.DataType, CollectionSourceDataAccessMode.Client, CollectionSourceMode.Proxy);

            collectionSource.Criteria["SnapDataSourceFiler"] = criteria;
            if (document.DataSources[dataSource.Name] != null)
            {
                document.DataSources[dataSource.Name].DataSource = collectionSource.Collection;
            }
            else
            {
                document.DataSources.Add(dataSource.Name, collectionSource.Collection);
            }
        }
コード例 #2
0
        public DocumentViewModel(
            IDocumentDataSource dataSource,
            IErrorInfoService errorService)
        {
            _dataSource   = dataSource;
            _errorService = errorService;

            if (_errorService == null)
            {
                throw new ArgumentNullException(nameof(errorService), "Не найден обработчик ошибок.");
            }

            if (dataSource == null)
            {
                throw new ArgumentNullException(nameof(dataSource), "Не найден источник данных.");
            }

            NextCommand = new WindowCommand(ProcessDocument, () => !HasErrors);

            ValidateQtyCommand = new WindowCommand(ProcessValidate);
        }
コード例 #3
0
        internal void ShowNewDataSourceDialog()
        {
            IObjectSpace        newDataSourceObjectSpace = objectSpace.CreateNestedObjectSpace();
            Type                dataSourceType           = XafTypesInfo.Instance.FindTypeInfo(documentData.GetType()).FindMember("DataSources").ListElementType;
            IDocumentDataSource dataSource           = (IDocumentDataSource)newDataSourceObjectSpace.CreateObject(dataSourceType);
            DetailView          dataSourceDetailView = application.CreateDetailView(newDataSourceObjectSpace, dataSource);
            ShowViewParameters  svp = new ShowViewParameters(dataSourceDetailView);

            svp.TargetWindow = TargetWindow.NewModalWindow;
            svp.Context      = TemplateContext.PopupWindow;
            DialogController dc = application.CreateController <DialogController>();

            svp.Controllers.Add(dc);
            dc.Accepting += delegate {
                newDataSourceObjectSpace.CommitChanges();
                IDocumentDataSource newDataSource = (IDocumentDataSource)objectSpace.GetObject(dataSource);
                documentData.DataSources.Add(newDataSource);
                AddDataSource(newDataSource, false);
            };
            application.ShowViewStrategy.ShowView(svp, new ShowViewSource(null, null));
        }