/// <summary>
 /// 同步节假日信息
 /// </summary>
 /// <param name="clone">同步数据源</param>
 public void Sync( HolidayInformation clone ) {
     HolidayName = clone.HolidayName;
     StartTime = clone.StartTime;
     EndTime = clone.EndTime;
     DescMsg = clone.DescMsg;
     StockCode = clone.StockCode;
 }
 /// <summary>
 /// 将一个节假日从节假日信息列表中移除
 /// </summary>
 /// <param name="holidayInfo">要移除的节假日信息</param>
 private void RemoveHolidayInfo(HolidayInformation holidayInfo)
 {
     if (_dpObj.CheckAccess())
         HolidayInfoes.Remove(holidayInfo);
     else
         _dpObj.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
             new HolidayInfoDelegate(item => HolidayInfoes.Remove(item)),
             holidayInfo);
 }
 /// <summary>
 /// 删除指定的节假日
 /// </summary>
 /// <param name="selectedHoliday">要删除的节假日</param>
 public void DeleteHolidayInfo(HolidayInformation selectedHoliday)
 {
     MessageBoxResult mbResult = MessageBox.Show("确定删除该节假日吗?", "删除确认", MessageBoxButton.YesNo, MessageBoxImage.Question);
     if (mbResult == MessageBoxResult.Yes)
     {
         ErrType err = _businessService.DeleteHoliday(_loginID, selectedHoliday.HolidayID);
         if (err == GeneralErr.Success)
             RemoveHolidayInfo(selectedHoliday);
         else
             MessageBox.Show(err.ErrMsg, err.ErrTitle, MessageBoxButton.OK, MessageBoxImage.Warning);
     }
 }
        /// <summary>
        /// 显示节假日信息
        /// </summary>
        /// <param name="selectedHoliday">选中的节假日</param>
        public void ShowHolidayInfo(HolidayInformation selectedHoliday)
        {
            HolidayInformation clone = (HolidayInformation)selectedHoliday.Clone();
            List<string> Stockcodes = new List<string>();
            foreach (var item in ProductInfoes)
            {
                if (Stockcodes.Contains(item.StockCode))
                {
                    continue;
                }
                Stockcodes.Add(item.StockCode);
            }
            HolidayInfoWindow wnd = new HolidayInfoWindow
            {
                Owner = Application.Current.MainWindow,
                DataContext = clone,
                Codes = Stockcodes,
            };

            if (wnd.ShowDialog() == true)
            {
                ErrType err = _businessService.ModifyHolidayInfo(_loginID, clone);
                if (err == GeneralErr.Success)
                    selectedHoliday.Sync(clone);
                else
                    MessageBox.Show(err.ErrMsg, err.ErrTitle, MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        }
        /// <summary>
        /// 执行添加节假日信息命令的方法
        /// </summary>
        public void AddHolidayInfoExecute()
        {
            HolidayInformation holidayInfo = new HolidayInformation();
            List<string> Stockcodes = new List<string>();
            foreach (var item in ProductInfoes)
            {
                if (Stockcodes.Contains(item.StockCode))
                {
                    continue;
                }
                Stockcodes.Add(item.StockCode);
            }
            HolidayInfoWindow wnd = new HolidayInfoWindow
            {
                Owner = Application.Current.MainWindow,
                DataContext = holidayInfo,
                Codes = Stockcodes,
               
            };

            if (wnd.ShowDialog() == true)
            {
                ErrType err = _businessService.AddHolidayInfo(_loginID, holidayInfo);
                if (err == GeneralErr.Success)
                    AddHolidayInfo(holidayInfo);
                else
                    MessageBox.Show(err.ErrMsg, err.ErrTitle, MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        }
 /// <summary>
 /// 修改
 /// </summary>
 /// <param name="loginID"></param>
 /// <param name="holidayInfo"></param>
 /// <returns></returns>
 public ErrType ModifyHolidayInfo(string loginID, HolidayInformation holidayInfo)
 {
     try
     {
         DateHoliday holiday = MyConverter.ToDateHoliday(holidayInfo);
         ResultDesc result = ManagerService.ModifyHoliday(holiday, 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);
     }
 }
 internal static DateHoliday ToDateHoliday(HolidayInformation info)
 {
     return new DateHoliday
     {
         HoliName = info.HolidayName,
         Starttime = info.StartTime,
         Endtime = info.EndTime,
         Desc = info.DescMsg,
         ID = info.HolidayID,
         PriceCode = info.StockCode,
     };
 }