public TViewModel MapToViewModel(InventoryMovement model)
        {
            var viewModel = new TViewModel()
            {
                No              = model.No,
                Date            = model.Date,
                ReferenceNo     = model.ReferenceNo,
                ReferenceType   = model.ReferenceType,
                ProductId       = model.ProductId,
                ProductCode     = model.ProductCode,
                ProductName     = model.ProductName,
                UomId           = model.UomId,
                UomUnit         = model.UomUnit,
                StorageId       = model.StorageId,
                StorageCode     = model.StorageCode,
                StorageName     = model.StorageName,
                StockPlanning   = model.StockPlanning,
                Before          = model.Before,
                Quantity        = model.Quantity,
                After           = model.After,
                Remark          = model.Remark,
                Type            = model.Type,
                LastModifiedUtc = model.LastModifiedUtc
            };

            PropertyCopier <InventoryMovement, TViewModel> .Copy(model, viewModel);

            return(viewModel);
        }
Пример #2
0
        public void ChangePage <TViewModel>() where TViewModel : IViewModel, new()
        {
            // If we are already on the same page as the button click, we don't change anything
            if (AppWindow.ViewModel.CurrentViewModel == null ||
                AppWindow.ViewModel.CurrentViewModel.GetType() != typeof(TViewModel))
            {
                foreach (IViewModel viewModel in ViewModels)
                {
                    // If an instance of the viewmodel already exists, we switch to that one
                    if (viewModel.GetType() == typeof(TViewModel))
                    {
                        AppWindow.ViewModel.CurrentViewModel = viewModel;
                        return;
                    }
                }

                // Else, we create a new instance of the viewmodel
                TViewModel newViewModel;
                if (_container != null)
                {
                    newViewModel = _container.Resolve <TViewModel>();
                }
                else
                {
                    newViewModel = new TViewModel();
                }
                AppWindow.ViewModel.CurrentViewModel = newViewModel;
                ViewModels.Add(newViewModel);
            }
        }
Пример #3
0
 public VVMContainer(TView View, TViewModel ViewModel)
 {
     this.View              = View;
     this.ViewModel         = ViewModel;
     this.ViewHashCode      = View.GetHashCode();
     this.ViewModelHashCode = ViewModel.GetHashCode();
 }
Пример #4
0
        public static TViewModel GetViewModel <TViewModel>()
            where TViewModel : class, IViewModel
        {
            var        viewModelType = typeof(TViewModel);
            TViewModel viewModel     = default(TViewModel);

            lock (m_creationSyncRoot)
            {
                if (m_viewModelInstanceCache.ContainsKey(viewModelType))
                {
                    viewModel = m_viewModelInstanceCache[viewModelType] as TViewModel;
                }
                else
                {
                    try
                    {
                        viewModel = Activator.CreateInstance(viewModelType) as TViewModel;
                        m_viewModelInstanceCache.Add(viewModelType, viewModel);
                    }
                    catch (Exception ex)
                    {
                        throw new Exception("Unable to create ViewModel: " + viewModelType.Name, ex);
                    }
                }
            }
            return(viewModel);
        }
        public InventoryMovement MapToModel(TViewModel viewModel)
        {
            var model = new InventoryMovement()
            {
                No            = viewModel.No,
                Date          = viewModel.Date,
                ReferenceNo   = viewModel.ReferenceNo,
                ReferenceType = viewModel.ReferenceType,
                ProductId     = viewModel.ProductId,
                ProductCode   = viewModel.ProductCode,
                ProductName   = viewModel.ProductName,
                UomId         = viewModel.UomId,
                UomUnit       = viewModel.UomUnit,
                StorageId     = viewModel.StorageId,
                StorageCode   = viewModel.StorageCode,
                StorageName   = viewModel.StorageName,
                StockPlanning = viewModel.StockPlanning,
                Before        = viewModel.Before,
                Quantity      = viewModel.Quantity,
                After         = viewModel.After,
                Remark        = viewModel.Remark,
                Type          = viewModel.Type
            };

            PropertyCopier <TViewModel, InventoryMovement> .Copy(viewModel, model);

            return(model);
        }
Пример #6
0
 this TView view,
 TViewModel viewModel,
 Expression <Func <TViewModel, TVMProp> > vmProperty,
 Expression <Func <TView, TVProp> > viewProperty,
 object conversionHint = null,
 IBindingTypeConverter vmToViewConverterOverride = null,
 IBindingTypeConverter viewToVmConverterOverride = null)
Пример #7
0
        public TViewModel ToViewModel <TViewModel>() where TViewModel : class, new()
        {
            var vm = new TViewModel();

            vm = Helper.AutoMapper.Map <TViewModel>(this);
            return(vm);
        }
Пример #8
0
        public TViewModel ShowWindow <TViewModel>() where TViewModel : IViewModel
        {
            TViewModel viewModel = _unityContainer.Resolve <TViewModel>();

            _windowsDisplayRegistry.ShowWindow(viewModel);
            return(viewModel);
        }
Пример #9
0
        /// <summary>
        /// ウィンドウを取得します。
        /// </summary>
        /// <typeparam name="TWindow">ウィンドウの型</typeparam>
        /// <typeparam name="TViewModel">ViewModelの型</typeparam>
        /// <returns>ウィンドウのインスタンス</returns>
        private TWindow GetWindow <TWindow, TViewModel>()
            where TWindow : Window, new()
            where TViewModel : WindowViewModel, new()
        {
            var windowName = typeof(TWindow).Name;

            if (!this.container.ContainsKey(windowName))
            {
                var viewModel = new TViewModel();
                var window    = new TWindow()
                {
                    DataContext = viewModel
                };

                Observable.FromEventPattern(window, nameof(window.Closed))
                .Subscribe(x => this.container.Remove(windowName))
                .AddTo(this);
                Observable.FromEventPattern(window, nameof(window.ContentRendered))
                .Subscribe(x => (x.Sender as TWindow).Activate())
                .AddTo(this);

                Observable.FromEventPattern(window, nameof(window.Activated))
                .Select(x => (x.Sender as TWindow).DataContext as TViewModel)
                .Where(x => x.IsInitialized)
                .Subscribe(_ => viewModel.Initialize())
                .AddTo(this);

                this.container.Add(windowName, window);
            }

            return(this.container[windowName] as TWindow);
        }
Пример #10
0
 this TView view,
 TViewModel viewModel,
 Expression <Func <TViewModel, TVMProp> > vmProperty,
 Expression <Func <TView, TVProp> > viewProperty,
 IObservable <TDontCare> signalViewUpdate,
 Func <TVMProp, TVProp> vmToViewConverter,
 Func <TVProp, TVMProp> viewToVmConverter)
Пример #11
0
        public async Task <TViewModel> GetCurrentHeroHealthViewModel <TViewModel>()
        {
            Health health = await this.GetHealth();

            TViewModel viewModel = this.mapper.Map <TViewModel>(health);

            return(viewModel);
        }
Пример #12
0
        public async Task <TViewModel> GetCurrentHeroChronometerViewModel <TViewModel>()
        {
            Chronometer chronometer = await this.GetChronometer();

            TViewModel viewModel = this.mapper.Map <TViewModel>(chronometer);

            return(viewModel);
        }
        public async Task <TViewModel> GetCurrentHeroResourcesViewModel <TViewModel>()
        {
            ResourcePouch resourcePouch = await this.GetResourcePouch();

            TViewModel viewModel = this.mapper.Map <TViewModel>(resourcePouch);

            return(viewModel);
        }
Пример #14
0
        private static Page GetPageFor <TViewModel>() where TViewModel : MvvmNanoViewModel
        {
            TViewModel viewModel = MvvmNanoIoC.Resolve <TViewModel>();

            viewModel.Initialize();

            return(ResolvePage(viewModel));
        }
        protected TViewModel CreateViewModel <TViewModel>() where TViewModel : ViewModelBase, new()
        {
            var viewModel = new TViewModel();

            viewModel.PropertyChanged += (sender, args) => savedChangedPropertyNames.Add(args.PropertyName);

            return(viewModel);
        }
Пример #16
0
        protected TViewModel GetViewModel <TViewModel>() where TViewModel : BaseCyanielViewModel, new()
        {
            var viewModel = new TViewModel();

            viewModel.CurrentUser = CurrentUser;

            return(viewModel);
        }
Пример #17
0
        public async Task <TViewModel> GetCurrentHeroStatisticsViewModel <TViewModel>()
        {
            Statistics statistics = await this.GetStatistcs();

            TViewModel viewModel = this.mapper.Map <TViewModel>(statistics);

            return(viewModel);
        }
        public TViewModel InvokeQuery <TViewModel>() where TViewModel : new()
        {
            var viewmodel = new TViewModel();
            var handler   = _objectResolver.Resolve <IQueryHandler <TViewModel> >();

            handler.Handle(viewmodel);
            return(viewmodel);
        }
Пример #19
0
        public async Task <TViewModel> GetOpponentsViewModel <TViewModel>()
        {
            Hero[] opponents = await this.GetOpponents();

            TViewModel viewModel = this.mapper.Map <TViewModel>(opponents);

            return(viewModel);
        }
Пример #20
0
 this TView view,
 TViewModel viewModel,
 Expression <Func <TViewModel, TVMProp> > vmProperty,
 Expression <Func <TView, TVProp> > viewProperty,
 IObservable <TDontCare> signalViewUpdate,
 object conversionHint = null,
 IBindingTypeConverter vmToViewConverterOverride = null,
 IBindingTypeConverter viewToVmConverterOverride = null)
        public Page Resolve <TViewModel>()
            where TViewModel : BaseVM
        {
            TViewModel viewModel = _componentContext.Resolve <TViewModel>();
            Page       view      = GetPage <TViewModel>();

            view.BindingContext = viewModel;
            return(view);
        }
Пример #22
0
        public Page Resolve <TViewModel>() where TViewModel : class, IViewModel
        {
            TViewModel viewModel = _componentContext.Resolve <TViewModel>();
            var        viewType  = _map[typeof(TViewModel)];
            var        view      = _componentContext.Resolve(viewType) as Page;

            view.BindingContext = viewModel;
            return(view);
        }
        public async Task <TViewModel> GetCurrentHeroCharacteristicsViewModel <TViewModel>()
        {
            Hero hero = await this.heroService.GetHero();

            Characteristics characteristics = hero.Characteristics;

            TViewModel viewModel = this.mapper.Map <TViewModel>(characteristics);

            return(viewModel);
        }
Пример #24
0
            public void ViewWillAppear(bool animated)
            {
                ViewModel = ViewModel ?? (TViewModel)Activator.CreateInstance(typeof(TViewModel)); //todo
                ViewModel.ViewWillAppearing();

                if (SetContextOrder == UpdateOrder.BeforeAppear)
                {
                    BindingStorage.SetContext(owner, ViewModel);
                }
            }
Пример #25
0
        Page IViewFactory.Resolve <TViewModel>()
        {
            TViewModel viewModel = _componentContext.Resolve <TViewModel>();

            var viewType = _map[typeof(TViewModel)];
            var view     = _componentContext.Resolve(viewType) as Page;

            view.BindingContext = viewModel;

            return(view);
        }
Пример #26
0
            internal void RemoveSelectedIndex(TViewModel viewModel)
            {
                if (ReferenceEquals(viewModel, null))
                {
                    return;
                }

                var index = _findIndex(viewModel);

                _remove(index);
            }
Пример #27
0
        protected static void Navigate <TWindow, TViewModel>()
            where TWindow : Window, new()
            where TViewModel : class
        {
            TWindow w = new TWindow();

            w.Show();
            TViewModel vm = Activator.CreateInstance(typeof(TViewModel)) as TViewModel;

            w.DataContext = vm;
        }
Пример #28
0
        /// <summary>
        /// Create new component, fill default commands and view properties.
        /// </summary>
        private TViewModel CreateComponent <TViewModel, TView>()
            where TViewModel : ComponentVM, new()
            where TView : FrameworkElement, new()
        {
            var vm = new TViewModel();
            var v  = new TView();

            vm.CloseCommand = CloseComponentCommand;
            v.DataContext   = vm;
            vm.View         = v;
            return(vm);
        }
        /// <summary>
        /// Creates or updates a ViewModel and adds values to some of the
        /// stock properties of the Controller.
        ///
        /// This default implementation initializes the ErrorDisplay and UserState
        /// objects after creation.
        /// </summary>
        /// <typeparam name="TViewModel"></typeparam>
        /// <returns></returns>
        protected virtual TViewModel CreateViewModel <TViewModel>()
            where TViewModel : class, new()
        {
            var model = new TViewModel();

            if (model is BaseViewModel)
            {
                BaseViewModel baseModel = model as BaseViewModel;
                baseModel.ErrorDisplay = ErrorDisplay;
            }

            return(model);
        }
Пример #30
0
        /// <summary>
        /// Creates or updates a ViewModel and adds values to some of the
        /// stock properties of the Controller.
        ///
        /// This default implementation initializes the ErrorDisplay and UserState
        /// objects after creation.
        /// </summary>
        /// <typeparam name="TViewModel"></typeparam>
        /// <returns></returns>
        public virtual TViewModel CreateViewModel <TViewModel>()
            where TViewModel : class, new()
        {
            var model = new TViewModel();

            if (model is BaseViewModel)
            {
                BaseViewModel baseModel = model as BaseViewModel;
                baseModel.ErrorDisplay = ErrorDisplay;
                baseModel.UserState    = UserState;
            }

            return(model);
        }