public AuditLogViewDataSet GetSummary(AuditTrailSearchCriteria criteria,string appName ) { AuditLogViewDataSet ds = new AuditLogViewDataSet(); _loggingDBHelper.Fill(ds.T_IC_AUDIT_LOG_QUERY, "P_IC_AUDIT_LOG_SUMMARY_GET", appName, criteria.TransactionId, criteria.FunctionName, criteria.UserName, criteria.StartDate, criteria.EndDate, criteria.AppVersion, criteria.ExtendedProperties["@p_app_id"], criteria.ExtendedProperties["@startIndex"], criteria.ExtendedProperties["@endIndex"]); return ds; }
public BatchProcessEventArgs(AuditLogViewDataSet batchData, AuditTrailSearchCriteria criteria) { BatchData = batchData; Criteria = criteria; }
public AuditTrailSearchCriteria CreateCriteria() { string transId = string.Empty; string appVersion = string.Empty; AuditTrailSearchCriteria criteria = new AuditTrailSearchCriteria( TextboxFunctionName.Text.Trim(), transId, TextBoxUseName.Text.Trim(), appVersion, DateTimeStartTime.DateTime, DateTimeEndTime.DateTime); string emptyItemDisplayText = CodeTableAdapter.GetEmptyItemDisplayText(); //Add the extesion fields criteria.ExtendedProperties = new System.Collections.Generic.Dictionary<string, object>(); criteria.ExtendedProperties.Add("@tableName", TextboxTableName.Text.Trim()); criteria.ExtendedProperties.Add("@operationType", (comboOperationName.Text.Equals(emptyItemDisplayText,StringComparison.InvariantCultureIgnoreCase)?string.Empty:comboOperationName.Text)); criteria.ExtendedProperties.Add("@hostName", TextBoxHostName.Text.Trim()); criteria.ExtendedProperties.Add("@ipAddress", TextboxIPAddress.Text.Trim()); criteria.ExtendedProperties.Add("@device", TextboxDevice.Text.Trim()); criteria.ExtendedProperties.Add("@startIndex", 0); criteria.ExtendedProperties.Add("@endIndex", 0); criteria.ExtendedProperties.Add("minId", 0); criteria.ExtendedProperties.Add("maxId", 0); return criteria; }
public AuditLogViewDataSet GetAuditDataSummary(AuditTrailSearchCriteria criteria) { var da = InstanceBuilder.CreateInstance<AuditLogViewDA>(); //Must there is a storage provider of audit trail string appName = AuditTrailConfigurationManager.StorageProviders[0].ApplicationName; string appId = da.GetAppID(appName); //Store the value of criteria first string funcName = ReplaceWildcard(criteria.FunctionName); string userName = ReplaceWildcard(criteria.UserName); string tableName = ReplaceWildcard(criteria.ExtendedProperties["@tableName"].ToString()); string operationType = ReplaceWildcard(criteria.ExtendedProperties["@operationType"].ToString()); string hostName = ReplaceWildcard(criteria.ExtendedProperties["@hostName"].ToString()); string ipAddress = ReplaceWildcard(criteria.ExtendedProperties["@ipAddress"].ToString()); string device = ReplaceWildcard(criteria.ExtendedProperties["@device"].ToString()); Int64 startIndex = (Int64)criteria.ExtendedProperties["@startIndex"]; Int64 endIndex = (Int64)criteria.ExtendedProperties["@endIndex"]; Int64 min = (Int64)criteria.ExtendedProperties["min"]; Int64 max = (Int64)criteria.ExtendedProperties["max"]; //Do not want to pass the above criteria to SP, so re-create the extended properties criteria.ExtendedProperties = new Dictionary<string, object>(); criteria.ExtendedProperties.Add("@p_app_id", string.IsNullOrEmpty(appId) ? null : appId); criteria.ExtendedProperties.Add("@startIndex", startIndex); criteria.ExtendedProperties.Add("@endIndex",startIndex+ Offset); AuditLogViewDataSet dsResult = null; Int64 lastEndIndex = startIndex; int count ; do { lastEndIndex = lastEndIndex + Offset; //Retrieve from database AuditLogViewDataSet ds = da.GetSummary(criteria,appName); //Using linq to filter data so that the performance can be improved var tempData = (from data in ds.T_IC_AUDIT_LOG_QUERY where CompareData(data["LOG_FUNCTION"].ToString(), funcName) && CompareData(data["USER_NAME"].ToString(), userName) && CompareData(data["TABLE_NAME"].ToString(), tableName) && CompareData(data["OPERATION"].ToString(), operationType) && CompareData(data["HOST_NAME"].ToString(), hostName) && CompareData(data["IP_ADDRESS"].ToString(), ipAddress) && CompareData(data["DEVICE"].ToString(), device) && data.INDEX>=min && data.INDEX<=max select data); if (null == dsResult) { dsResult = ds.Clone() as AuditLogViewDataSet; } //Move to next batch criteria.ExtendedProperties["@startIndex"] = lastEndIndex; criteria.ExtendedProperties["@endIndex"] = lastEndIndex + Offset; count = tempData.Count(); if (dsResult == null) { dsResult=new AuditLogViewDataSet(); } DataTable dt = dsResult.T_IC_AUDIT_LOG_QUERY; dt.BeginLoadData(); foreach (var data in tempData) { dt.LoadDataRow(data.ItemArray, true); } dt.EndLoadData(); ds.Dispose(); //Found anything, will return } while (count == 0 && lastEndIndex < max && lastEndIndex < endIndex); dsResult.ExtendedProperties.Add("endIndex", lastEndIndex); return dsResult; }
public void ProcessRetrieve(AuditTrailSearchCriteria criteria) { using (AsyncWorkerByTrunk<IAuditLogView> worker = new AsyncWorkerByTrunk<IAuditLogView>(_presenter, this.GridViewAuditLog, new Control[] { ButtonClear }, false)) { worker.BackgroundWorker.WorkerSupportsCancellation = true; worker.DoWork += delegate(object oDoWork, DoWorkEventArgs eDoWork) { eDoWork.Result = _presenter.BatchGetSummary(criteria); Thread.Sleep(100); }; worker.RunWorkerCompleted += delegate(object oCompleted, RunWorkerCompletedEventArgs eCompleted) { AuditLogViewDataSet ds = eCompleted.Result as AuditLogViewDataSet; if (null != BatchProcessCompleted && null!=ds) { BatchProcessCompleted(this, new BatchProcessEventArgs(ds, criteria)); worker.BackgroundWorker.CancelAsync(); } else { //try to stop _presenter.GetSummary(false); } }; worker.Run(); } }