Beispiel #1
0
        //public Sample() : this(PropBagTypeSafetyMode.AllPropsMustBeRegistered, null) { }

        //public Sample(PropBagTypeSafetyMode typeSafetyMode) : this(typeSafetyMode, null) { }

        public Sample(PropBagTypeSafetyMode typeSafetyMode, PSAccessServiceCreatorInterface storeAccessCreator,
                      string fullClassName, IPropFactory propFactory)
            : base(typeSafetyMode, storeAccessCreator, propFactory, fullClassName)
        {
            AddProp <object>("PropObject");

            AddProp <string>("PropString");
            SubscribeToPropChanged <string>(GetDelegate <string>("DoWhenStringChanged"), "PropString");
            AddPropNoValue <string>("PropStringCallDoAfter", comparer: EqualityComparer <string> .Default.Equals);
            SubscribeToPropChanged <string>(GetDelegate <string>("DoWhenStringChanged"), "PropStringCallDoAfter");
            AddPropObjComp <string>("PropStringUseRefComp", extraInfo: null);
            SubscribeToPropChanged <string>(GetDelegate <string>("DoWhenStringChanged"), "PropStringUseRefComp");
            AddProp <bool>("PropBool");

            AddProp <int>("PropInt");

            AddProp <TimeSpan>("PropTimeSpan");

            AddProp <Uri>("PropUri");

            AddProp <Lazy <int> >("PropLazyInt");

            AddProp <Nullable <int> >("PropNullableInt", null, null, initialValue: -1);
            SubscribeToPropChanged <Nullable <int> >(GetDelegate <Nullable <int> >("DoWhenNullIntChanged"), "PropNullableInt");
            AddProp <ICollection <int> >("PropICollectionInt");
            SubscribeToPropChanged <ICollection <int> >(GetDelegate <ICollection <int> >("DoWhenICollectionIntChanged"), "PropICollectionInt");
        }
Beispiel #2
0
        //public ExtStoreModel() : this(PropBagTypeSafetyMode.AllPropsMustBeRegistered, null) { }

        //public ExtStoreModel(PropBagTypeSafetyMode typeSafetyMode) : this(typeSafetyMode, null) { }

        public ExtStoreModel(PropBagTypeSafetyMode typeSafetyMode, PSAccessServiceCreatorInterface storeAccessCreator,
                             IPropFactory propFactory, string fullClassName)
            : base(typeSafetyMode, storeAccessCreator, propFactory, fullClassName)
        {
            AddProp <int>("PropInt3");

            AddProp <int>("PropInt4");
        }
        static PropStoreServicesForThisApp()
        {
            _mct.Measure("Begin PropStoreServicesForThisApp");

            //Person p = new Person();
            //    _mct.MeasureAndReport("New Person");

            // Build the PropFactory Provider and the two Delegate Caches on which it depends.

            ITypeDescBasedTConverterCache typeDescBasedTConverterCache = new TypeDescBasedTConverterCache();

            _mct.MeasureAndReport("After new TypeDescBasedTConverterCache");

            IProvideDelegateCaches delegateCacheProvider = new SimpleDelegateCacheProvider(typeof(PropBag), typeof(APFGenericMethodTemplates));

            _mct.MeasureAndReport("After new SimpleDelegateCacheProvider");

            IConvertValues      valueConverter = new PropFactoryValueConverter(typeDescBasedTConverterCache);
            ResolveTypeDelegate typeResolver   = null;

            _propFactoryFactory = BuildThePropFactoryFactory(valueConverter, delegateCacheProvider, typeResolver);

            // Build the AppDomain-Wide Property Store and the EventHandler (Delegate) Dispatch cache on which it depends.
            HandlerDispatchDelegateCacheProvider = new SimpleHandlerDispatchDelegateCacheProvider();
            _mct.MeasureAndReport("After new SimpleHandlerDispatchDelegateCacheProvider");

            // This creates the global, shared, Property Store.
            _theStore = new SimplePropStoreProxy(MAX_NUMBER_OF_PROPERTIES, HandlerDispatchDelegateCacheProvider);

            // Get a reference to the PropStoreAccessService Factory that the PropertyStore provides.
            PSAccessServiceCreatorInterface psAccessServiceFactory = _theStore.PropStoreAccessServiceFactory;

            _vmActivator = new SimpleViewModelActivator();
            _mct.MeasureAndReport("After new SimpleViewModelActivator");


            IPropModelBuilder propModelBuilder = GetPropModelProvider(_propFactoryFactory);

            PropModelCache = new SimplePropModelCache(propModelBuilder);

            WrapperTypeCreator = BuildSimpleWrapperTypeCreator();
            _mct.MeasureAndReport("After GetSimpleWrapperTypeCreator");


            ViewModelFactory = new SimpleViewModelFactory(PropModelCache, _vmActivator, psAccessServiceFactory, null, WrapperTypeCreator);
            _mct.MeasureAndReport("After new ViewModelHelper");

            AutoMapperService = GetAutoMapperProvider(ViewModelFactory);
            _mct.MeasureAndReport("After GetAutoMapperProvider");

            ViewModelFactory.AutoMapperService = AutoMapperService;


            //_defaultPropFactory = BuildDefaultPropFactory(valueConverter, delegateCacheProvider, typeResolver);
            //_mct.MeasureAndReport("After new BuildDefaultPropFactory");
        }
Beispiel #4
0
 public DestinationModel1(PropBagTypeSafetyMode typeSafetyMode, PSAccessServiceCreatorInterface storeAccessCreator,
                          IPropFactory propFactory, string fullClassName)
     : base(typeSafetyMode, storeAccessCreator, propFactory, fullClassName)
 {
     AddProp <int>("Id", null, null, initialValue: 0);
     AddProp <string>("FirstName", null, null, null);
     AddProp <string>("LastName", null, null, null);
     AddProp <string>("CityOfResidence", null, null, null);
     AddProp <Profession>("Profession", null, null, Profession.Default);
 }
Beispiel #5
0
        public MainWindowViewModel(PropModel pm, PSAccessServiceCreatorInterface storeAccessCreator, IPropFactory propFactory, string fullClassName)
            : base(pm, storeAccessCreator, propFactory, fullClassName)
        {
            //System.Diagnostics.Debug.WriteLine("Beginning to construct MainWindowViewModel -- From PropModel.");

            //IHaveADbContext dBActivator = new DBActivator<PersonDB>(System.Environment.SpecialFolder.CommonApplicationData);
            //PersonDB personDb = (PersonDB)dBActivator.DbContext;
            //PersonDAL b = new PersonDAL(personDb);
            //SetIt(b, "Business");

            //System.Diagnostics.Debug.WriteLine("Completed Constructing MainWindowViewModel -- From PropModel.");
        }
 /// <summary>
 /// Full service, all arguments must have a non-null value.
 /// </summary>
 /// <param name="propModelCache"></param>
 /// <param name="viewModelActivator"></param>
 /// <param name="storeAccessCreator"></param>
 /// <param name="autoMapperService"></param>
 /// <param name="wrapperTypeCreator"></param>
 public SimpleViewModelFactory
 (
     PropModelCacheInterface propModelCache,
     ViewModelActivatorInterface viewModelActivator,
     PSAccessServiceCreatorInterface storeAccessCreator,
     object autoMapperService,
     ICreateWrapperTypes wrapperTypeCreator
 )
     : this(propModelCache, viewModelActivator, storeAccessCreator)
 {
     AutoMapperService   = autoMapperService; // ?? throw new ArgumentNullException(nameof(autoMapperService));
     _wrapperTypeCreator = wrapperTypeCreator ?? throw new ArgumentNullException(nameof(wrapperTypeCreator));
 }
        /// <summary>
        /// This is provided for use by clients that require no loading of PropModels by FullClassName,
        /// or will otherwise retrieve PropModels using some other mechanisim.
        /// </summary>
        /// <param name="viewModelActivator"></param>
        /// <param name="storeAccessCreator"></param>
        public SimpleViewModelFactory
        (
            ViewModelActivatorInterface viewModelActivator,
            PSAccessServiceCreatorInterface storeAccessCreator
        )
        {
            _propModelCache     = null;
            _viewModelActivator = viewModelActivator ?? throw new ArgumentNullException(nameof(viewModelActivator));
            _storeAccessCreator = storeAccessCreator ?? throw new ArgumentNullException(nameof(storeAccessCreator));

            AutoMapperService   = null;
            _wrapperTypeCreator = null;
        }
Beispiel #8
0
        public LooseModel(PropBagTypeSafetyMode typeSafetyMode, PSAccessServiceCreatorInterface storeAccessCreator, IPropFactory propFactory)
            : base(typeSafetyMode, storeAccessCreator, propFactory, fullClassName: "PropBagLib.Tests.LooseModel")
        {
            AddProp <object>("PropObject");
            AddProp <string>("PropString");
            AddProp <string>("PropString2", null, null, "12");
            AddProp <bool>("PropBool", initialValue: false);
            AddProp <int>("PropInt");
            AddProp <TimeSpan>("PropTimeSpan");
            AddProp <Uri>("PropUri");
            AddProp <Lazy <int> >("PropLazyInt");

            //AddBinding<string>("PropString2", "PropString", FF);
        }
Beispiel #9
0
        public void Create()
        {
            upCntr = 0;

            object stuff = new object();

            AutoMapperSupport.AutoMapperHelpers mapperHelpers = new AutoMapperSupport.AutoMapperHelpers();

            IPropFactory standardPropFactory = mapperHelpers.PropFactory_V1;

            IPropFactory factory = mapperHelpers.PropFactoryExt_V1;

            PSAccessServiceCreatorInterface storeAccessCreator = mapperHelpers.StoreAccessCreator;

            mod1 = ExtStoreModel.Create(storeAccessCreator, factory);
        }
Beispiel #10
0
        static public ExtStoreModel Create(PSAccessServiceCreatorInterface storeAccessCreator, IPropFactory factory)
        {
            // TODO: AAA,
            ExtStoreModel esm = new ExtStoreModel(PropBagTypeSafetyMode.AllPropsMustBeRegistered, storeAccessCreator, factory, null);

            PropExternStore <int>    pi = (PropExternStore <int>)esm.AddPropNoStore <int>("PropInt", null);
            PropExternStore <string> ps = (PropExternStore <string>)esm.AddPropNoStore <string>("PropString", null);

            ExtData ed = new ExtData();

            pi.Getter = (x) => ed.PropIntStandard;
            pi.Setter = (x, v) => ed.PropIntStandard = v;

            ps.Getter = (x) => ed.PropStringStandard;
            ps.Setter = (x, v) => ed.PropStringStandard = v;

            return(esm);
        }
Beispiel #11
0
 public PubPropBag(PropBagTypeSafetyMode typeSafetyMode, PSAccessServiceCreatorInterface storeAccessCreator,
                   IPropFactory propFactory, string fullClassName)
     : base(typeSafetyMode, storeAccessCreator, propFactory, fullClassName)
 {
 }
Beispiel #12
0
 // Starting with an empty PropItemSet
 public PubPropBag(PropBagTypeSafetyMode typeSafetyMode, PSAccessServiceCreatorInterface storeAccessCreator,
                   IPropFactory propFactory)
     : this(typeSafetyMode, storeAccessCreator, propFactory, fullClassName : null)
 {
 }
Beispiel #13
0
 public DestinationModel5(PropBagTypeSafetyMode typeSafetyMode, PSAccessServiceCreatorInterface storeAccessCreator,
                          string fullClassName, IPropFactory propFactory)
     : base(typeSafetyMode, storeAccessCreator, propFactory, fullClassName)
 {
     AddProp <Guid>("ProductId", null, null, Guid.NewGuid());
 }
        //int ITEMS_PER_PAGE = 10;

        public PersonCollectionViewModel(PropModel pm, PSAccessServiceCreatorInterface storeAccessCreator, IPropFactory propFactory, string fullClassName)
            : base(pm, storeAccessCreator, propFactory, fullClassName)
        {
            System.Diagnostics.Debug.WriteLine("Constructing PersonCollectionViewModel -- with PropModel.");
        }
Beispiel #15
0
 public PersonVM(PropModel pm, PSAccessServiceCreatorInterface storeAccessCreator, IPropFactory propFactory, string fullClassName)
     : base(pm, storeAccessCreator, propFactory, fullClassName)
 {
 }
        private static IProvideAutoMappers GetAutoMapperProvider(IViewModelActivator viewModelActivator, PSAccessServiceCreatorInterface storeAccessCreator)
        {
            // TODO: Expose the creation of wrapperTypeCreator (ICreateWrapperTypes).
            IPropBagMapperBuilderProvider propBagMapperBuilderProvider = new SimplePropBagMapperBuilderProvider
                                                                         (
                wrapperTypesCreator: null,
                viewModelActivator: viewModelActivator,
                storeAccessCreator: storeAccessCreator
                                                                         );

            IMapTypeDefinitionProvider mapTypeDefinitionProvider = new SimpleMapTypeDefinitionProvider();

            ICachePropBagMappers mappersCachingService = new SimplePropBagMapperCache();

            // TODO: Remove the dependency on IProvidePropModels. (See TODO note in SimpleAutoMapperProvider.)
            SimpleAutoMapperProvider autoMapperProvider = new SimpleAutoMapperProvider
                                                          (
                mapTypeDefinitionProvider: mapTypeDefinitionProvider,
                mappersCachingService: mappersCachingService,
                mapperBuilderProvider: propBagMapperBuilderProvider,
                propModelProvider: null
                                                          );

            return(autoMapperProvider);
        }