/// <summary>
 /// 添加汇率和水信息到信息列表
 /// </summary>
 /// <param name="rateWaterInfo">要添加的汇率和水信息</param>
 private void AddRateWaterInfo(ExchangeRateWaterInformation rateWaterInfo)
 {
     if (_dpObj.CheckAccess())
         RateWaterInfoes.Add(rateWaterInfo);
     else
         _dpObj.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
             new RateWaterInfoDelegate(item => RateWaterInfoes.Add(item)),
             rateWaterInfo);
 }
        /// <summary>
        /// 显示汇率和水的信息
        /// </summary>
        /// <param name="rateWaterInfo">选中的某个汇率和水信息</param>
        public void ShowRateWaterInfo(ExchangeRateWaterInformation rateWaterInfo)
        {
            ExchangeRateWaterInformation clone = (ExchangeRateWaterInformation)rateWaterInfo.Clone();
            RateWaterInfoWindow wnd = new RateWaterInfoWindow
            {
                Owner = Application.Current.MainWindow,
                DataContext = clone,
            };

            if (wnd.ShowDialog() == true)
            {
                ErrType err = _businessService.ModifyRateWaterInfo(_loginID, clone);
                if (err == GeneralErr.Success)
                    rateWaterInfo.Sync(clone);
                else
                    MessageBox.Show(err.ErrMsg, err.ErrTitle, MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        }
 /// <summary>
 /// 同步汇率和水的数据
 /// </summary>
 /// <param name="clone">同步数据源</param>
 public void Sync( ExchangeRateWaterInformation clone ) {
     Rate = clone.Rate;
     Water = clone.Water;
 }
 /// <summary>
 /// 修改指定的汇率和水的信息
 /// </summary>
 /// <param name="loginID"></param>
 /// <param name="rateWaterInfo"></param>
 /// <returns></returns>
 public ErrType ModifyRateWaterInfo(string loginID, ExchangeRateWaterInformation rateWaterInfo)
 {
     try
     {
         TradeRate rate = MyConverter.ToTradeRate(rateWaterInfo);
         ResultDesc result = ManagerService.ModifyTradeRate(rate, loginID);
         return result.Result ? GeneralErr.Success : new ErrType(ERR.SERVICE, result.Desc);
     }
     catch (TimeoutException te)
     {
         FileLog.WriteLog("", Assembly.GetExecutingAssembly().GetName().Name, this.GetType().Name, new StackTrace().GetFrame(0).GetMethod().Name, te.Message);
         return new ErrType(ERR.EXEPTION, ErrorText.TimeoutException);
     }
     catch (Exception ex)
     {
         FileLog.WriteLog("", Assembly.GetExecutingAssembly().GetName().Name, this.GetType().Name,
       new StackTrace().GetFrame(0).GetMethod().Name, ex.Message);
         return new ErrType(ERR.EXEPTION, ErrorText.OperationError);
     }
 }
 public static TradeRate ToTradeRate(ExchangeRateWaterInformation rateWaterInfo)
 {
     return new TradeRate
     {
         PriceCode = rateWaterInfo.StockCode,
         Rate = rateWaterInfo.Rate,
         Water = rateWaterInfo.Water,
     };
 }
 /// <summary>
 /// 同步汇率和水的数据
 /// </summary>
 /// <param name="clone">同步数据源</param>
 public void Sync(ExchangeRateWaterInformation clone)
 {
     Rate  = clone.Rate;
     Water = clone.Water;
 }