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); }