示例#1
0
        private bool Dialog_SpotSecu_SaveData(object sender, object data)
        {
            bool ret = false;

            if (sender == null || data == null)
            {
                throw new Exception("Fail to get the setting from dialog");
            }

            PortfolioSecurityDialog dialog = sender as PortfolioSecurityDialog;

            if (dialog == null)
            {
                return(ret);
            }

            if (data is TemplateStock)
            {
                TemplateStock stock = data as TemplateStock;
                switch (dialog.DialogType)
                {
                case DialogType.New:
                {
                    TemplateStock findStock = _spotDataSource.SingleOrDefault(p => p.SecuCode.Equals(stock.SecuCode));
                    if (findStock != null)
                    {
                        ret = false;
                        MessageDialog.Warn(this, msgCannotAddSameSecurity);
                    }
                    else
                    {
                        _spotDataSource.Add(stock);
                        ret = true;
                    }
                }
                break;

                case DialogType.Modify:
                {
                    int findIndex = _spotDataSource.ToList().FindIndex(p => p.SecuCode.Equals(stock.SecuCode));
                    if (findIndex >= 0 && findIndex < _spotDataSource.Count)
                    {
                        ret = true;
                        _spotDataSource[findIndex] = stock;
                    }
                }
                break;

                default:
                    break;
                }

                if (ret)
                {
                    var template = _tempDataSource.Single(p => p.TemplateId == stock.TemplateNo);
                    CalculateAmount(template);

                    SwitchTemplateStockSave(true);

                    this.secuGridView.Invalidate();
                }
            }

            return(ret);
        }