Esempio n. 1
0
        public virtual CommonEEVMBuilder <TEntity> MakeByType()
        {
            if (parameters.AutofacScope == null)
            {
                throw new NullReferenceException($"{nameof(parameters.AutofacScope)} не задан для билдера. Без него использование {nameof(MakeByType)} невозможно.");
            }
            var resolver = parameters.AutofacScope.Resolve <IViewModelResolver>();

            var journalViewModelType = resolver.GetTypeOfViewModel(typeof(TEntity), TypeOfViewModel.Journal);

            if (journalViewModelType != null)
            {
                var entitySelectorType = typeof(JournalViewModelSelector <,>).MakeGenericType(typeof(TEntity), journalViewModelType);
                EntitySelector = (IEntitySelector)Activator.CreateInstance(entitySelectorType, parameters.DialogViewModel, parameters.UnitOfWork, parameters.NavigationManager);

                var entityAutocompleteSelectorType = typeof(JournalViewModelAutocompleteSelector <,>).MakeGenericType(typeof(TEntity), journalViewModelType);
                EntityAutocompleteSelector = (IEntityAutocompleteSelector <TEntity>)Activator.CreateInstance(entityAutocompleteSelectorType, parameters.UnitOfWork, parameters.AutofacScope);
            }

            var dialogViewModelType = resolver.GetTypeOfViewModel(typeof(TEntity), TypeOfViewModel.EditDialog);

            if (dialogViewModelType != null)
            {
                var entityDlgOpenerType = typeof(EntityViewModelOpener <>).MakeGenericType(dialogViewModelType);
                EntityDlgOpener = (IEntityDlgOpener)Activator.CreateInstance(entityDlgOpenerType, parameters.NavigationManager, parameters.DialogViewModel);
            }
            return(this);
        }
Esempio n. 2
0
        public EntityEntryViewModel(
            IPropertyBinder <TEntity> binder = null,
            IEntitySelector entitySelector   = null,
            IEntityDlgOpener dlgOpener       = null,
            IEntityAutocompleteSelector <TEntity> autocompleteSelector = null,
            IEntityAdapter <TEntity> entityAdapter = null
            )
        {
            if (binder != null)
            {
                this.EntityBinder = binder;
            }
            if (entitySelector != null)
            {
                this.EntitySelector = entitySelector;
            }
            if (dlgOpener != null)
            {
                this.DlgOpener = dlgOpener;
            }
            if (autocompleteSelector != null)
            {
                this.AutocompleteSelector = autocompleteSelector;
            }

            if (entityAdapter != null)
            {
                this.EntityAdapter = entityAdapter;
            }
        }
Esempio n. 3
0
 public virtual CommonEEVMBuilder <TEntity> UseViewModelDialog <TEntityViewModel>()
     where TEntityViewModel : DialogViewModelBase
 {
     EntityDlgOpener = new EntityViewModelOpener <TEntityViewModel>(parameters.NavigationManager, parameters.DialogViewModel);
     return(this);
 }