예제 #1
0
        /// <summary>
        /// Set error log to be visualized
        /// </summary>
        /// <param name="errorLog">Error log</param>
        private void SetErrorLog(ErrorLog errorLog)
        {
            lbErrorItem.Items.AddRange(errorLog.ErrorItems.ToArray());

            if (lbErrorItem.Items.Count > 0)
            {
                lbErrorItem.SelectedIndex = 0;
            }
        }
예제 #2
0
 /// <summary>
 /// Static method decides show the modal form (error items > 0) or not (otherwise)
 /// </summary>
 /// <param name="errorLog">Error log</param>
 public static void VisualizeLog(ErrorLog errorLog)
 {
     if (errorLog.ErrorItems.Count > 0)
     {
         var frmErrorLog = new frmErrorLog();
         frmErrorLog.SetErrorLog(errorLog);
         frmErrorLog.ShowDialog();
     }
 }
예제 #3
0
		private void RefreshQueries(
			TreeTask                       treeTask,
			ConcreteTemplateNodeDefinition nodeDefinition,
			ProgressItem                   progress
		)
		{
			log.DebugFormat("taskInfo.Connection:'{0}';nodeDefinition:'{1}'",
				treeTask.Info.Connection.ConnectionGroup.ToString() ?? "?",
				nodeDefinition.TemplateNode.Name ?? "?"
			);

			ErrorLog          errorLog      = new ErrorLog();
			MsSqlAuditorModel model         = this._treeControl._model;
			DateTime          startTime     = DateTime.Now;
			Stopwatch         durationWatch = new Stopwatch();

			durationWatch.Start();

			using (SqlProcessor sqlProcessor = model.GetNewSqlProcessor(treeTask.CancellationSource.Token))
			{
				if (!treeTask.Info.Connection.IsLiveConnection)
				{
					sqlProcessor.SetSkipMSSQLQueries();
				}

				progress.SetPromisedChildCount(1);

				TemplateNodeInfo     templateNode = nodeDefinition.TemplateNode;
				ConnectionGroupInfo  group        = nodeDefinition.Connection;
				MultyQueryResultInfo result;

				if (nodeDefinition.Group.Instance != null)
				{
					result = sqlProcessor.ExecuteMultyQuery(
						nodeDefinition.Group,
						templateNode.Queries,
						progress.GetChild()
					);
				}
				else
				{
					result = sqlProcessor.ExecuteMultyQuery(
						group,
						templateNode.Queries,
						progress.GetChild(),
						model.Settings.SystemSettings.MaximumDBRequestsThreadCount
					);
				}

				if (group != null && group.Connections != null)
				{
					group.Connections.ForEach(
						x => x.ConnectionGroup = x.ConnectionGroup ?? group
					);
				}

				errorLog.AppendErrorLog(result);

				IStorageManager storage = model.GetVaultProcessor(group);

				storage.SaveRequestedData(templateNode, result);

				durationWatch.Stop();

				DateTime duration = new DateTime(durationWatch.Elapsed.Ticks);

				storage.CurrentStorage.UpdateTreeNodeTimings(
					templateNode,
					startTime,
					duration
				);

				foreach (GroupDefinition database in result.ExtractDatabases())
				{
					ConcreteTemplateNodeDefinition nodeDef = new ConcreteTemplateNodeDefinition(
						templateNode,
						database,
						group
					);

					this._treeControl.VisualizeData(nodeDef);
				}
			}
		}