private void InitData()
 {
     PreferenceStockLists               = new ObservableCollection <PreferenceStockModel>();
     PreferenceStockSelectedItem        = new PreferenceStockModel();
     HugeAmountFocusedStockLists        = new ObservableCollection <HugeAmountFocusedStockModel>();
     HugeAmountFocusedStockSelectedItem = new HugeAmountFocusedStockModel();
     CustomIndicatorLists               = new ObservableCollection <CustomIndicatorModel>(_customIndicatorService.GetLists());
     CustomIndicatorSelectedItem        = new CustomIndicatorModel();
     CustomIndicatorResultLists         = new ObservableCollection <StockBaseModel>();
     CustomIndicatorResultSelectedItem  = new StockBaseModel();
 }
        private void InitCommand()
        {
            PreferenceStockQueryCommand                   = new DelegateCommand((obj) => { });
            HugeAmountAutoSyncCommand                     = new DelegateCommand((obj) => { });
            PreferenceStockSelectionChangedCommand        = new DelegateCommand((obj) => { });
            HugeAmountFocusedStockSelectionChangedCommand = new DelegateCommand((obj) => { });
            RecommendedStockQueryCommmand                 = new DelegateCommand((obj) => { });

            CustomIndicatorMouseLeftClickCommand = new DelegateCommand((obj) =>
            {
                CustomIndicatorSelectedItem           = (obj as DataGridRow).Item as CustomIndicatorModel;
                CustomIndicatorSelectedItem.IsChecked = !CustomIndicatorSelectedItem.IsChecked;
            });


            CustomIndicatorAddCommand = new DelegateCommand((obj) =>
            {
                //MD5 md5 = MD5.Create(); var inputBytes = Encoding.Unicode.GetBytes("000001PAYH"); var hash = md5.ComputeHash(inputBytes);
                //StringBuilder sb = new StringBuilder();

                CustomIndicatorModel inputEntity = new CustomIndicatorModel();
                CustomIndicatorCreateView view   = new CustomIndicatorCreateView();

                (view.DataContext as CustomIndicatorCreateViewModel).WithParam(inputEntity, (type, outputEntity) =>
                {
                    view.Close();

                    if (type == 1)
                    {
                        outputEntity.Id = _customIndicatorService.GetContinuousId();
                        if (_customIndicatorService.Insert(outputEntity))
                        {
                            CustomIndicatorLists.Add(outputEntity);
                        }
                    }
                });
                view.ShowDialog();
            });

            CustomIndicatorModifyCommand = new DelegateCommand((obj) =>
            {
                CustomIndicatorCreateView view = new CustomIndicatorCreateView();
                var clone = ObjectDeepCopy <CustomIndicatorModel, CustomIndicatorModel> .Trans(CustomIndicatorSelectedItem);
                (view.DataContext as CustomIndicatorCreateViewModel).WithParam(clone, (type, outputEntity) =>
                {
                    view.Close();

                    if (type == 1)
                    {
                        if (_customIndicatorService.Update(outputEntity))
                        {
                            ModelTypeHelper.PropertyMapper(CustomIndicatorSelectedItem, outputEntity);
                        }
                    }
                });
                view.ShowDialog();
            });

            CustomIndicatorSelectedAllCommand            = new DelegateCommand((obj) => { });
            CustomIndicatorUnSelectedAllCommand          = new DelegateCommand((obj) => { });
            CustomIndicatorResultSelectionChangedCommand = new DelegateCommand((obj) => { });
        }