Ejemplo n.º 1
0
 /// <summary>
 /// 更新状态栏
 /// </summary>
 private void UpdateStatus(Model.DoState doState)
 {
     this.toolStripStatusLabel2.Text  = doState.ToString();
     this.toolStripProgressBar1.Value = (int)doState.DoPercent;
     if (doState.CurrentCount == doState.SumCount)
     {
         this.btnSave.Enabled = true;
         this.txtLog.AppendText("文件已全部处理完毕!" + Environment.NewLine);
         this.dgFiles.DataSource = XCLNetTools.DataSource.DataTableHelper.ToDataTable(this.v_fileBLL.GetAllList());
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 处理文件回调函数
        /// </summary>
        private void GetResultCallBack(IAsyncResult asyncResult)
        {
            lock (this.lockObject)
            {
                Model.DoState doState      = asyncResult.AsyncState as Model.DoState;
                AsyncResult   result       = (AsyncResult)asyncResult;
                Delegate_DoIt delegateDoit = (Delegate_DoIt)result.AsyncDelegate;
                var           model        = delegateDoit.EndInvoke(asyncResult);

                switch (model.ProcessState)
                {
                case (int)DataLayer.Common.DataEnum.FileReplace_File_ProcessStateEnum.处理失败:
                    doState.FailCount += 1;
                    break;

                case (int)DataLayer.Common.DataEnum.FileReplace_File_ProcessStateEnum.处理成功:
                    doState.SuccessCount += 1;
                    break;

                case (int)DataLayer.Common.DataEnum.FileReplace_File_ProcessStateEnum.无需处理:
                    doState.IgnoreCount += 1;
                    break;
                }
                //更新model
                this.fileBLL.Update(model);

                if (this.InvokeRequired)
                {
                    this.Invoke(new Delegate_UpdateStatus(this.UpdateStatus), new object[] { doState });
                }
                else
                {
                    this.UpdateStatus(doState);
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 执行
        /// </summary>
        private void btnSave_Click(object sender, EventArgs e)
        {
            var lst = this.fileBLL.GetAllList();

            #region 合法性验证

            if (null == lst || lst.Count == 0)
            {
                DevExpress.XtraEditors.XtraMessageBox.Show("请先选择待处理的文件!", "系统提示");
                return;
            }

            if ((null == this.dataGridRuleConfig.Rows || this.dataGridRuleConfig.Rows.Count == 0) && string.IsNullOrEmpty(this.txtFileFirstName.Text) && string.IsNullOrEmpty(this.txtFileLastName.Text))
            {
                DevExpress.XtraEditors.XtraMessageBox.Show("当前不需要处理任何文件,请先配置相关信息!", "系统提示");
                return;
            }

            if (!string.IsNullOrEmpty(this.txtOutPutPath.Text))
            {
                if (XCLNetTools.FileHandler.FileDirectory.DirectoryExists(this.txtOutPutPath.Text))
                {
                    //检查是否有文件
                    if (!XCLNetTools.FileHandler.FileDirectory.IsEmpty(this.txtOutPutPath.Text))
                    {
                        if (DevExpress.XtraEditors.XtraMessageBox.Show("您指定的输出目录不是空目录,是否继续?", "系统提示", MessageBoxButtons.YesNo) == DialogResult.No)
                        {
                            return;
                        }
                    }
                }
                else
                {
                    if (!XCLNetTools.FileHandler.FileDirectory.MakeDirectory(this.txtOutPutPath.Text))
                    {
                        DevExpress.XtraEditors.XtraMessageBox.Show("输出目录不存在,请选择有效的输出目录!", "系统提示");
                        return;
                    }
                }
            }

            if (!lst.Exists(k => !k.IsDone))
            {
                DevExpress.XtraEditors.XtraMessageBox.Show("文件都已处理,请重新打开要处理的文件!", "系统提示");
                return;
            }

            #endregion 合法性验证

            #region 将选项保存至配置文件中

            var ruleIdLst = new List <int>();
            var config    = this.userSettingBLL.GetFirstModel() ?? new DataLayer.Model.UserSetting();
            if (null != this.dataGridRuleConfig.Rows && this.dataGridRuleConfig.Rows.Count > 0)
            {
                for (var i = 0; i < this.dataGridRuleConfig.Rows.Count; i++)
                {
                    ruleIdLst.Add(XCLNetTools.Common.DataTypeConvert.ToInt(this.dataGridRuleConfig.Rows[i].Cells["grid_RuleConfigID"].Value));
                }
            }

            this.replaceSetting.OutPutPath       = this.txtOutPutPath.Text;
            this.replaceSetting.PrefixName       = this.txtFileFirstName.Text;
            this.replaceSetting.SuffixName       = this.txtFileLastName.Text;
            this.replaceSetting.IsKeepDataFormat = this.ckExcelOptionIsKeepDataFormat.Checked;
            this.replaceSetting.IsKeepFormula    = this.ckExcelOptionIsKeepFormula.Checked;
            this.replaceSetting.RuleConfigIds    = ruleIdLst;

            config.FileReplaceSetting = XCLNetTools.Serialize.JSON.Serialize(this.replaceSetting);

            this.userSettingBLL.Add(config);

            #endregion 将选项保存至配置文件中

            #region 任务处理

            this.btnSave.Enabled = false;
            Model.DoState doState = new Model.DoState();
            doState.SumCount = lst.Count;
            foreach (var m in lst)
            {
                this.SetTextLogValue(string.Format("正在处理文件:{0}", m.FileName));
                Delegate_DoIt dg     = new Delegate_DoIt(this.DoIt);
                IAsyncResult  result = dg.BeginInvoke(m, new AsyncCallback(this.GetResultCallBack), doState);
            }

            #endregion 任务处理
        }
Ejemplo n.º 4
0
 /// <summary>
 /// 初始化状态栏
 /// </summary>
 private void InitStatus()
 {
     Model.DoState doState = new Model.DoState();
     this.toolStripStatusLabel2.Text  = doState.ToString();
     this.toolStripProgressBar1.Value = (int)doState.DoPercent;
 }
Ejemplo n.º 5
0
 /// <summary>
 /// 初始化状态栏
 /// </summary>
 private void InitStatus()
 {
     Model.DoState doState = new Model.DoState();
     this.toolStripStatusLabel2.Text = doState.ToString();
     this.toolStripProgressBar1.Value = (int)doState.DoPercent;
 }
Ejemplo n.º 6
0
        /// <summary>
        /// 执行
        /// </summary>
        private void btnSave_Click(object sender, EventArgs e)
        {
            bool isRegexp = this.ckIsRegexp.Checked;
            bool isContent = this.ckIsContent.Checked;
            bool isFileName = this.ckIsFileName.Checked;
            bool isNotIgnoreLowerCase = this.ckIsNotIgnoreLowerCase.Checked;
            bool isWhole = this.ckIsWhole.Checked;

            #region 合法性验证
            if (null == this.dgFiles.DataSource)
            {
                MessageBox.Show("请先选择待处理的文件!");
                return;
            }
            if (!isFileName && !isContent)
            {
                MessageBox.Show("查找内容中的【文件名】和【文件内容】至少选一个!");
                return;
            }
            if (string.IsNullOrEmpty(this.txtOldValue.Text))
            {
                MessageBox.Show("查找内容不能为空!");
                return;
            }
            if (!XCLNetTools.FileHandler.FileDirectory.DirectoryExists(this.txtOutPutPath.Text))
            {
                if (!XCLNetTools.FileHandler.FileDirectory.MakeDirectory(this.txtOutPutPath.Text))
                {
                    MessageBox.Show("输出目录不存在,请选择有效的输出目录!");
                    return;
                }
            }
            List<Model.FileInfo> lstFiles = this.dgFiles.DataSource as List<Model.FileInfo>;
            if (null != lstFiles && lstFiles.Count > 0)
            {
                if (!lstFiles.Exists(k => k.是否已处理 == "否"))
                {
                    MessageBox.Show("文件都已处理,请重新打开要处理的文件!");
                    return;
                }
            }
            #endregion

            #region 将选项保存至配置文件中
            List<string> searchOptions = new List<string>();
            if (this.ckIsRegexp.Checked)
            {
                searchOptions.Add(this.ckIsRegexp.Text);
            }
            if (this.ckIsContent.Checked)
            {
                searchOptions.Add(this.ckIsContent.Text);
            }
            if (this.ckIsFileName.Checked)
            {
                searchOptions.Add(this.ckIsFileName.Text);
            }
            if (this.ckIsNotIgnoreLowerCase.Checked)
            {
                searchOptions.Add(this.ckIsNotIgnoreLowerCase.Text);
            }
            if (this.ckIsWhole.Checked)
            {
                searchOptions.Add(this.ckIsWhole.Text);
            }
            CommonHelper.ConfigHelper.SetBaseConfigValue(this.SubAssemblyName, "SearchOptions", string.Join(",", searchOptions.ToArray()));
            CommonHelper.ConfigHelper.SetBaseConfigValue(this.SubAssemblyName, "OutPutPath", this.txtOutPutPath.Text);
            #endregion

            #region 任务处理
            this.SetControlEnable(false);
            Model.DoState doState = new Model.DoState();
            doState.SumCount = this.dgFiles.Rows.Count;
            for (int i = 0; i < this.dgFiles.Rows.Count; i++)
            {
                DataGridViewRow dr = this.dgFiles.Rows[i];
                Delegate_DoIt dg = new Delegate_DoIt(DoIt);
                IAsyncResult result = dg.BeginInvoke(dr, new AsyncCallback(this.GetResultCallBack), doState);
            }
            #endregion
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 执行
        /// </summary>
        private void btnSave_Click(object sender, EventArgs e)
        {
            var lst = this.fileBLL.GetAllList();

            #region 合法性验证

            if (null == lst || lst.Count == 0)
            {
                MessageBox.Show("请先选择待处理的文件!");
                return;
            }

            if (!string.IsNullOrEmpty(this.txtOutPutPath.Text))
            {
                if (XCLNetTools.FileHandler.FileDirectory.DirectoryExists(this.txtOutPutPath.Text))
                {
                    //检查是否有文件
                    if (!XCLNetTools.FileHandler.FileDirectory.IsEmpty(this.txtOutPutPath.Text))
                    {
                        if (MessageBox.Show("您指定的输出目录不是空目录,是否继续?", "系统提示", MessageBoxButtons.YesNo) == DialogResult.No)
                        {
                            return;
                        }
                    }
                }
                else
                {
                    if (!XCLNetTools.FileHandler.FileDirectory.MakeDirectory(this.txtOutPutPath.Text))
                    {
                        MessageBox.Show("输出目录不存在,请选择有效的输出目录!");
                        return;
                    }
                }
            }

            if (!lst.Exists(k => !k.IsDone))
            {
                MessageBox.Show("文件都已处理,请重新打开要处理的文件!");
                return;
            }

            #endregion 合法性验证

            #region 将选项保存至配置文件中

            var config = this.userSettingBLL.GetFirstModel() ?? new DataLayer.Model.UserSetting();
            this.ReplaceSetting = this.ReplaceSetting ?? new DataLayer.Model.FileReplaceSetting();
            this.ReplaceSetting.OutPutPath = this.txtOutPutPath.Text;
            this.ReplaceSetting.PrefixName = this.txtFileFirstName.Text;
            this.ReplaceSetting.SuffixName = this.txtFileLastName.Text;
            config.FileReplaceSetting = XCLNetTools.Serialize.JSON.Serialize(this.ReplaceSetting);
            this.userSettingBLL.Add(config);

            #endregion 将选项保存至配置文件中

            #region 任务处理

            this.btnSave.Enabled = false;
            Model.DoState doState = new Model.DoState();
            doState.SumCount = lst.Count;
            foreach (var m in lst)
            {
                Delegate_DoIt dg = new Delegate_DoIt(this.DoIt);
                IAsyncResult result = dg.BeginInvoke(m, new AsyncCallback(this.GetResultCallBack), doState);
            }

            #endregion 任务处理
        }