Esempio n. 1
0
        /// <summary>
        /// 对指定进度操作对象及其子操作添加进度条改变、进度信息改变、执行结束、执行中止、执行异常事件的事件处理
        /// </summary>
        /// <param name="opt"></param>
        /// <param name="isTopOperation"></param>
        protected new void BindEventByOneOpt(IProgressOperation opt, bool isTopOperation)
        {
            if (isTopOperation)
            {
                opt.OperationStart    += ProgressOperation_OperationStart;
                opt.OperationFinished += ProgressOperation_OperationFinished;
                opt.OperationStoped   += ProgressOperation_OperationStoped;
                opt.OperationError    += ProgressOperation_OperationError;
            }

            if (MessageCtrl != null)
            {
                opt.Msgs.MessageChanged += ProgressOperation_MessageChanged;
            }
            if (GridView != null)
            {
                opt.Msgs.MessageChanged += ProgressOperation_MessageChanged_GridView;
            }
            if (ProgressBarCtrl != null)
            {
                opt.ProgressChanged += ProgressOperation_ProgressChanged;
            }
            if (ProgressBarCtrl != null)
            {
                opt.ProgressAdd += ProgressOperation_ProgressAdd;
            }

            opt.SubProgressOperations.ForEach(subOpt => BindEventByOneOpt(subOpt, false));
        }
Esempio n. 2
0
        /// <summary>
        /// 对指定进度操作对象及其子操作添加进度条改变、进度信息改变、执行结束、执行中止、执行异常事件的事件处理
        /// </summary>
        /// <param name="opt"></param>
        /// <param name="isTopOperation">标识是否为顶层进度操作(非子操作)</param>
        protected new void BindEventByOneOpt(IProgressOperation opt, bool isTopOperation)
        {
            if (isTopOperation)//只有顶层进度操作才绑定指定的开始、中止、结束、异常事件处理
            {
                opt.OperationStart    += ProgressOperation_OperationStart;
                opt.OperationStoped   += ProgressOperation_OperationStoped;
                opt.OperationFinished += ProgressOperation_OperationFinished;
                opt.OperationError    += ProgressOperation_OperationError;
            }
            else//子操作事件处理
            {
                opt.OperationError += (sender, e) => { opt.Msgs.Error = e.OptException.ToString(); opt.Msgs.Info(e.OptException.Message); };
            }

            if (MessageCtrl != null)
            {
                opt.Msgs.MessageChanged += ProgressOperation_MessageChanged;
            }
            if (GridCtrl != null)
            {
                opt.ProgressDataOuput += ProgressOperation_ProgressDataOuput;
            }
            if (ProgressBarCtrl != null)
            {
                opt.ProgressChanged += ProgressOperation_ProgressChanged;
            }
            if (ProgressBarCtrl != null)
            {
                opt.ProgressAdd += ProgressOperation_ProgressAdd;
            }

            opt.SubProgressOperations.ForEach(subOpt => BindEventByOneOpt(subOpt, false));
        }
        public ProgressWindow(IProgressOperation operation)
        {
            this._operation = operation;
            this._operation.ProgressChanged += new EventHandler(_operation_ProgressChanged);
            this._operation.ProgressTotalChanged += new EventHandler(_operation_TotalChanged);
            this._operation.Complete += new EventHandler(_operation_Complete);

            InitializeComponent();

            this.Loaded += new RoutedEventHandler(ProgressWindow_Loaded);
        }
Esempio n. 4
0
        public ProgressWindow(IProgressOperation operation)
        {
            this._operation = operation;
            this._operation.ProgressChanged      += new EventHandler(_operation_ProgressChanged);
            this._operation.ProgressTotalChanged += new EventHandler(_operation_TotalChanged);
            this._operation.Complete             += new EventHandler(_operation_Complete);

            InitializeComponent();

            this.Loaded += new RoutedEventHandler(ProgressWindow_Loaded);
        }
Esempio n. 5
0
 /// <summary>
 /// 将进度信息写入数据库中
 /// </summary>
 /// <param name="dbConnection"></param>
 /// <param name="tableName"></param>
 public static void WriteLogDb(this IProgressOperation opt, DbHelper dbHelper, string tableName)
 {
     //var properties = opt.Msgs.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(v => v.CanWrite && v.CanWrite).ToArray();
     //var propertyName = properties.Select(v => v.Name);
     //var fields = propertyName.Aggregate((a, b) => a + "," + b);
     //var values = properties.Select(v => v.GetValue(opt, null).ToString());
     var m = opt.Msgs;
     var fields = $"{nameof(m.Id)},{nameof(m.Name)},{nameof(m.Description)},{nameof(m.Code)},{nameof(m.StartTime)},{nameof(m.EndTime)},{nameof(m.AssemblyName)},{nameof(m.AssemblyVersion)},{nameof(m.Error)},{nameof(m.AllMessage)}";
     var values = $"{m.Id},'{m.Name}','{m.Description}','{m.Code}','{m.StartTime}','{m.EndTime}','{m.AssemblyName}','{m.AssemblyVersion}','{m.Error}','{m.AllMessage}'";
     var sql = $"insert into {tableName} ({fields}) values ({values})";
     dbHelper.ExcNonQuery(sql);
 }
Esempio n. 6
0
        public ProgressWindow(IProgressOperation operation, string fileName, string fileTitle)
        {
            _operation = operation;
            _fileName = fileName;
            _fileTitle = fileTitle;
            _operation.ProgressChanged += _operation_ProgressChanged;
            _operation.ProgressTotalChanged += _operation_TotalChanged;
            _operation.Complete += _operation_Complete;

            InitializeComponent();

            Loaded += ProgressWindow_Loaded;
        }
        public ProgressBar(IProgressOperation operation)
        {
            _operation = operation;
            _operation.ProgressChanged      += _operation_ProgressChanged;
            _operation.ProgressTotalChanged += _operation_TotalChanged;
            _operation.Complete             += _operation_Complete;
            _operation.MessageChanged       += _operation_MessageChanged;


            InitializeComponent();

            Loaded += ProgressWindow_Loaded;
        }
Esempio n. 8
0
        public ProgressWindow(IProgressOperation operation, string fileName, string fileTitle)
        {
            _operation = operation;
            _fileName  = fileName;
            _fileTitle = fileTitle;
            _operation.ProgressChanged      += _operation_ProgressChanged;
            _operation.ProgressTotalChanged += _operation_TotalChanged;
            _operation.Complete             += _operation_Complete;

            InitializeComponent();

            Loaded += ProgressWindow_Loaded;
        }
Esempio n. 9
0
        private void ButtonStart_Click(object sender, RoutedEventArgs e)
        {
            _operation = new FileConcater(((FileCounter) _operation).Files, _fileName, Total, _fileTitle);

            _operation.ProgressChanged += _operation_ProgressChanged;
            _operation.ProgressTotalChanged += _operation_TotalChanged;
            _operation.Complete += _operation_Complete;

            _operation.Start();
            TextBlockProcessing.Text = "Обработано файлов:";
            TextBlockOf.Visibility = Visibility.Visible;
            TextBlockCurrent.Visibility = Visibility.Visible;
            ButtonStart.Visibility = Visibility.Hidden;
        }
Esempio n. 10
0
        private void ButtonStart_Click(object sender, RoutedEventArgs e)
        {
            _operation = new FileConcater(((FileCounter)_operation).Files, _fileName, Total, _fileTitle);


            _operation.ProgressChanged      += _operation_ProgressChanged;
            _operation.ProgressTotalChanged += _operation_TotalChanged;
            _operation.Complete             += _operation_Complete;

            _operation.Start();
            TextBlockProcessing.Text    = "Обработано файлов:";
            TextBlockOf.Visibility      = Visibility.Visible;
            TextBlockCurrent.Visibility = Visibility.Visible;
            ButtonStart.Visibility      = Visibility.Hidden;
        }
Esempio n. 11
0
        /// <summary>
        /// 生成日志文件,将处理信息写入日志文件
        /// </summary>
        /// <param name="opt">进度信息</param>
        /// <param name="errMsg">异常信息</param>
        public void WriteLog(IProgressOperation opt, string errMsg = "")
        {
            StringBuilder sb           = new StringBuilder();
            AssemblyName  assemblyName = Assembly.GetEntryAssembly().GetName();

            sb.AppendLine("功能名称:" + opt.Name);
            sb.AppendLine("功能描述:" + opt.Description);
            sb.AppendLine("模块代码:" + opt.GetType().Name);
            sb.AppendLine("开始时间:" + opt.StartTime);
            sb.AppendLine("完成时间:" + opt.EndTime);
            sb.AppendLine("程序名称:" + assemblyName.Name);
            sb.AppendLine("程序版本:" + assemblyName.Version);
            sb.AppendLine("操作异常:" + errMsg);
            sb.AppendLine("\r\n\r\n\r\n---------------------------------------进程信息---------------------------------------");
            sb.AppendLine(opt.Msgs.AllMessage);

            WriteLog(sb.ToString());
        }
Esempio n. 12
0
        /// <summary>
        /// 生成日志文件,将处理信息写入日志文件
        /// <para>日志文件格式示例:Log2019-10-11 10:01:21.txt</para>
        /// </summary>
        /// <param name="logDirectory">日志保存目录,值为null或空白时自动赋值为:[软件生成目录]\Log</param>
        /// <param name="logPrefix">日志文件名的前缀</param>
        public static void WriteLogFile(this IProgressOperation opt, string logDirectory = null, string logPrefix = "Log")
        {
            var Msgs = opt.Msgs;
            var sb = new StringBuilder();
            sb.AppendLine("操作ID:" + Msgs.Id);
            sb.AppendLine("功能名称:" + Msgs.Name);
            sb.AppendLine("功能描述:" + Msgs.Description);
            sb.AppendLine("模块代码:" + Msgs.Code);
            sb.AppendLine("开始时间:" + Msgs.StartTime);
            sb.AppendLine("完成时间:" + Msgs.EndTime);
            sb.AppendLine("程序名称:" + Msgs.AssemblyName);
            sb.AppendLine("程序版本:" + Msgs.AssemblyVersion);
            sb.AppendLine("操作异常:" + Msgs.Error);
            sb.AppendLine("\r\n\r\n\r\n---------------------------------------进程信息---------------------------------------");
            sb.AppendLine(Msgs.AllMessage);

            logDirectory = string.IsNullOrWhiteSpace(logDirectory) ? AppDomain.CurrentDomain.BaseDirectory + "Log" : logDirectory;
            Directory.CreateDirectory(logDirectory);
            string logFilePath = Path.Combine(logDirectory, logPrefix + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ".txt");
            File.WriteAllText(logFilePath, sb.ToString());
        }
Esempio n. 13
0
 void IWorkspaceWindow.ShowProgress(IProgressOperation progressOperation)
 {
     throw new NotImplementedException();
 }