/// <summary>
        /// 上传到服务器指定目录
        /// </summary>
        /// <param name="ServerPath"></param>
        /// <param name="EnclouseFolderPath"></param>
        /// <returns></returns>
        private bool UpLodeEnclouseFolder(string ServerPath)
        {
            bool   isresult = false;
            string SereverAndEnclousePath = "";
            //获取文件名
            string fileName = ServerPath.Substring(ServerPath.LastIndexOf("\\") + 1);

            //string getPath = FileManageHelper.GetPath();
            //SereverAndEnclousePath = getPath + fileName;
            SereverAndEnclousePath = System.IO.Path.Combine(FileManageHelper.GetPath(), fileName);
            FileStream fs = null;

            try
            {
                WebClient web = new WebClient();
                web.Credentials = CredentialCache.DefaultCredentials;
                //初始化上传文件  打开读取
                fs = new FileStream(ServerPath, FileMode.Open, FileAccess.Read);
                if (fs.Length / 1024 / 1024 > 20)
                {
                    MessageBox.Show("上传附件不支持超过20M大小的文件。");
                    isresult = false;
                }
                else
                {
                    BinaryReader br           = new BinaryReader(fs);
                    byte[]       btArray      = br.ReadBytes((int)fs.Length);
                    Stream       uplodeStream = web.OpenWrite(SereverAndEnclousePath, "PUT");
                    if (uplodeStream.CanWrite)
                    {
                        uplodeStream.Write(btArray, 0, btArray.Length);
                        uplodeStream.Flush();
                        uplodeStream.Close();
                        rulefile = new RuleFile();
                        //将文件以二进制形式存储到数据库中
                        rulefile.FILEPATH = btArray;
                        rulefile.FILENAME = fileName.Substring(0, fileName.LastIndexOf(".")).ToString();
                        //显示文件格式
                        rulefile.FILEFORM = fileName;
                        rulefile.FILESIZE = (fs.Length).ToString();
                        rulefile.FILETYPE = "制度管理";
                        //rulefile.MAINGUID = currentRegulate.GUID;//存外键
                        currentFileList.Add(rulefile);
                        isresult = true;
                    }
                }
            }
            catch (Exception ex)
            {
            }
            finally
            {
                fs.Close();//上传成功后,关闭流
            }

            return(isresult);
        }
 /// <summary>
 /// 初始加载附件列表
 /// </summary>
 protected void BindDatGrid()
 {
     //currentFileList.Clear();
     RuleFile[] getRuleFiles = FileManageHelper.GetRuleFiles(currentRegulate.GUID);
     //if (getRuleFiles != null && getRuleFiles.Count() > 0)
     //{
     //    currentFileList = getRuleFiles.ToList();
     //}
     dgList.ItemsSource = getRuleFiles.ToList();
 }
 /// <summary>
 /// 下载文件
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void DownloadFile_Click_1(object sender, RoutedEventArgs e)
 {
     try
     {
         RuleFile summarize = (sender as System.Windows.Documents.Hyperlink).Tag as RuleFile;
         if (summarize == null)
         {
             return;
         }
         string         docstr         = summarize.FILEFORM.Substring(summarize.FILEFORM.LastIndexOf('.'));
         string         serviceDocPath = FileManageHelper.ByteConvertDocService(summarize.FILEPATH, summarize.FILEFORM);
         WebClient      webClient      = new WebClient();
         SaveFileDialog dlg            = new SaveFileDialog();
         dlg.FileName = "文件下载";
         //dlg.Reset();
         if (docstr == ".doc" || docstr == ".docx")
         {
             dlg.Filter += "Word 文件|*.doc;*.docx";
         }
         else if (docstr == ".xls" || docstr == ".xlsx")
         {
             dlg.Filter += "Excel 文件|*.xls;*.xlsx";
         }
         // dlg.Filter = "Office Files|*.doc;*.docx;*.xls;*.xlsx";
         if (dlg.ShowDialog() == true)
         {
             try
             {
                 webClient.DownloadFile(serviceDocPath, dlg.FileName);
                 MessageBox.Show("文件下载成功!");
             }
             catch (Exception)
             {
                 throw;
             }
         }
     }
     catch (Exception ex)
     {
         //MessageBox.Show(ex.GetExceptionMessage());
     }
 }
        private void dgList_MouseLeftButtonUp_1(object sender, MouseButtonEventArgs e)
        {
            #region 加载基本信息
            rulefile = new RuleFile();
            rulefile = dgList.SelectedItem as RuleFile;
            if (rulefile == null)
            {
                return;        //防止单击空白或标题等触发该事件
            }
            isAddOrUpdate = 1; //可以进行修改操作
            if (rulefile.IsChecked == true)
            {
                rulefile.IsChecked = false;
                currentFileList.Remove(rulefile);
            }
            else
            {
                rulefile.IsChecked = true;
                currentFileList.Add(rulefile);
            }
            bool checkedState = rulefile.IsChecked;

            #endregion

            #region //预览文件
            //
            string isxpsPath = FileManageHelper.GetPath() + rulefile.FILEFORM.Substring(0, rulefile.FILEFORM.LastIndexOf(".")).ToString() + ".xps";
            if (System.IO.File.Exists(isxpsPath))
            {
                //已经存xps文件,直接加载
                using (XpsDocument xpsDoc = new XpsDocument(isxpsPath, FileAccess.Read))
                {
                    var fsxps = xpsDoc.GetFixedDocumentSequence();
                    xpsDocViewr.Document = fsxps;
                }
            }
            else
            {
                //创建xps文件,启动进程耗时
                string serviceDocPathXPS = FileManageHelper.ByteConvertDocService(rulefile.FILEPATH, rulefile.FILEFORM);
                string xpsFilePath       = serviceDocPathXPS.Substring(0, serviceDocPathXPS.LastIndexOf(".")).ToString() + ".xps";
                var    convertResults    = OfficeToXps.ConvertToXps(serviceDocPathXPS, ref xpsFilePath);
                switch (convertResults.Result)
                {
                case ConversionResult.OK:
                    try
                    {
                        using (XpsDocument xpsDoc = new XpsDocument(xpsFilePath, FileAccess.Read))
                        {
                            var fsxps = xpsDoc.GetFixedDocumentSequence();
                            xpsDocViewr.Document = fsxps;
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                    break;

                case ConversionResult.InvalidFilePath:
                    // 处理文件路径错误或文件不存在
                    break;

                case ConversionResult.UnexpectedError:

                    break;

                case ConversionResult.ErrorUnableToInitializeOfficeApp:
                    // Office 未安装会出现这个异常
                    break;

                case ConversionResult.ErrorUnableToOpenOfficeFile:
                    // 文件被占用会出现这个异常
                    break;

                case ConversionResult.ErrorUnableToAccessOfficeInterop:
                    // Office 未安装会出现这个异常
                    break;

                case ConversionResult.ErrorUnableToExportToXps:
                    // 微软 OFFICE Save As PDF 或 XPS  插件未安装异常
                    break;
                }
            }
            #endregion

            #region 判断全选和保存状态
            int ischeckCount = (dgList.ItemsSource as List <RuleFile>).Count(p => p.IsChecked == true);
            if (ischeckCount == 1 || ischeckCount == 0)
            {
                btnSave.IsEnabled = true;
                isAddOrUpdate     = 1;//可以进行修改操作
            }
            else
            {
                btnSave.IsEnabled = false;
                isAddOrUpdate     = 0;
            }
            foreach (RuleFile result in dgList.ItemsSource)
            {
                if (result.IsChecked != checkedState)
                {
                    this.chkAll.IsChecked = null;
                    return;
                }
            }
            chkAll.IsChecked = checkedState;
            #endregion
        }
        /// <summary>
        /// 附件上传
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAdd_Click_1(object sender, RoutedEventArgs e)
        {
            // isAddOrUpdate = 0;//上传即新建
            RuleFile[] getRuleFiles = FileManageHelper.GetRuleFiles(currentRegulate.GUID);
            if (getRuleFiles != null && getRuleFiles.Count() > 0)
            {
                currentFileList = getRuleFiles.ToList();
            }
            upfilestr = "";
            OpenFileDialog dlg = new OpenFileDialog();

            dlg.CheckFileExists = true;  //检查文件是否存在
            dlg.Multiselect     = false; //是否允许多选,false表示单选
            dlg.CheckPathExists = true;
            //只限制上传word和excel
            dlg.Filter = "Office Files|*.doc;*.docx;*.xls;*.xlsx";
            if ((bool)dlg.ShowDialog())
            {
                string filePath = dlg.FileName;
                upfilestr = dlg.FileName;
                string xpsFilePath    = filePath.Substring(0, filePath.LastIndexOf(".")).ToString() + ".xps";
                var    convertResults = OfficeToXps.ConvertToXps(filePath, ref xpsFilePath);
                switch (convertResults.Result)
                {
                case ConversionResult.OK:
                    try
                    {
                        using (XpsDocument xpsDoc = new XpsDocument(xpsFilePath, FileAccess.Read))
                        {
                            var fsxps = xpsDoc.GetFixedDocumentSequence();
                            xpsDocViewr.Document = fsxps;
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                    break;

                case ConversionResult.InvalidFilePath:
                    // 处理文件路径错误或文件不存在
                    break;

                case ConversionResult.UnexpectedError:

                    break;

                case ConversionResult.ErrorUnableToInitializeOfficeApp:
                    // Office 未安装会出现这个异常
                    break;

                case ConversionResult.ErrorUnableToOpenOfficeFile:
                    // 文件被占用会出现这个异常
                    break;

                case ConversionResult.ErrorUnableToAccessOfficeInterop:
                    // Office 未安装会出现这个异常
                    break;

                case ConversionResult.ErrorUnableToExportToXps:
                    // 微软 OFFICE Save As PDF 或 XPS  插件未安装异常
                    break;
                }

                if (UpLodeEnclouseFolder(filePath) == true)
                {
                    MessageBox.Show("文件上传成功!");
                    dgList.ItemsSource = null;
                    dgList.ItemsSource = currentFileList;
                    btnSave.IsEnabled  = true;
                }
                else
                {
                    MessageBox.Show("请选择附件!");
                }
            }
        }
        /// <summary>
        /// 保存操作
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            //if (currentFileList == null || currentFileList.Count() == 0)
            //{
            //    MessageBox.Show("请上传附件");
            //    return;
            //}
            RegulationsInfo regulate = new RegulationsInfo();

            if (isAddOrUpdate == 0)
            {
                //新增
                regulate.GUID          = CO_IA.Client.Utility.NewGuid();
                regulate.ACTIVITY_GUID = activityId;//活动id
            }
            else
            {
                //修改
                regulate.GUID          = currentRegulate.GUID.ToString();
                regulate.ACTIVITY_GUID = currentRegulate.ACTIVITY_GUID; //活动id
            }
            regulate.RULESNAME = RuleName.Text;                         //名称
            regulate.SENDSTATE = checkresult;                           //发布状态

            regulate.DRAFTPERSON = drawupPerson.Text;                   //起草人
            if (dpDraft.SelectedDate != null)
            {
                regulate.DRAFTDATE = Convert.ToDateTime(dpDraft.SelectedDate); //起草时间
            }
            regulate.AUDITINGPERSON = Auditing.Text;                           //审核人
            if (dpAuditing.SelectedDate != null)
            {
                regulate.AUDITINGDATE = Convert.ToDateTime(dpAuditing.SelectedDate); //审核时间
            }
            regulate.ISSUEPERSON = Sender.Text;                                      //发布人
            regulate.ISSUEDATE   = Convert.ToDateTime(dpSend.SelectedDate);          //发布时间

            regulate.SUMMARY   = tbSynopsis.Text;                                    //简介
            regulate.RULETYPER = 0;                                                  //规章制度

            regulate.SENDSTATE = checkresult;                                        //发布状态
            regulate.RULESNAME = RuleName.Text;                                      //名称
            regulate.SENDSTATE = checkresult;                                        //发布状态
            regulate.RuleFiles = currentFileList;                                    //附件列表
            currentRegulate    = regulate;
            if (!ReValidate(currentRegulate))
            {
                return;
            }
            PT_BS_Service.Client.Framework.BeOperationInvoker.Invoke <I_CO_IA.RuleAndFileManage.I_CO_IA_RuleAndFile>
                (channel =>
            {
                try
                {
                    if (isAddOrUpdate == 0)
                    {
                        bool isResult = channel.SaveRegulationsInfo(currentRegulate);
                        if (isResult == true)
                        {
                            if (dgList.ItemsSource != null)
                            {
                                foreach (RuleFile rulefile in dgList.ItemsSource)
                                {
                                    rulefile.GUID     = CO_IA.Client.Utility.NewGuid();
                                    rulefile.MAINGUID = currentRegulate.GUID;
                                    bool isaddfile    = channel.SaveRulesFile(rulefile);  //添加附件
                                    if (isaddfile == false)
                                    {
                                        //删除客户端缓存的附件
                                        string savePath = FileManageHelper.GetPath() + rulefile.FILEFORM.ToString();
                                        string xpsPath  = savePath.Substring(0, savePath.LastIndexOf(".")).ToString() + ".xps";
                                        if (System.IO.File.Exists(savePath))
                                        {
                                            System.IO.File.Delete(savePath);
                                            System.IO.File.Delete(xpsPath);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        bool isupdateResutl = channel.UpdateRegulationsInfo(currentRegulate);
                        if (isupdateResutl == true)
                        {
                            RuleFile[] rulefiles = FileManageHelper.GetRuleFiles(currentRegulate.GUID);
                            //删除附件
                            if (rulefiles != null && rulefiles.Count() > 0)
                            {
                                //List<RulesFiile> OriginalrulefileList = rulefiles.Where(r => r.MAINGUID == currentRegulate.GUID).ToList();
                                bool deleteServerFils = channel.DeleteRulesFileMainID(currentRegulate.GUID);
                                if (deleteServerFils == true)
                                {
                                    foreach (RuleFile file in rulefiles)
                                    {
                                        //删除客户端缓存的附件
                                        string savePath = FileManageHelper.GetPath() + file.FILEFORM.ToString();
                                        string xpsPath  = savePath.Substring(0, savePath.LastIndexOf(".")).ToString() + ".xps";
                                        if (System.IO.File.Exists(savePath))
                                        {
                                            System.IO.File.Delete(savePath);
                                            System.IO.File.Delete(xpsPath);
                                        }
                                    }
                                }
                            }
                            if (dgList.ItemsSource != null)
                            {
                                foreach (RuleFile rulefile in dgList.ItemsSource)
                                {
                                    rulefile.GUID     = CO_IA.Client.Utility.NewGuid();
                                    rulefile.MAINGUID = currentRegulate.GUID;
                                    channel.SaveRulesFile(rulefile);     //添加附件
                                }
                            }
                            MessageBox.Show("修改成功!", "提示", MessageBoxButton.OK);
                        }
                    }
                }
                catch (Exception ex)
                {
                    //MessageBox.Show(ex.GetExceptionMessage());
                }
            });

            if (AfterSaveEvent != null)
            {
                AfterSaveEvent();
            }
            this.Close();
        }