private static bool GetDetailRow(DataRow r, AuditLogIdentity changeId) { DateTime d = DateTime.MinValue; if (r["RunDate"] != DBNull.Value) { d = (DateTime)r["RunDate"]; } return(d == DateTime.ParseExact(changeId.StartDate, "yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture) && r["ObjectModified"].ToStringWithNull() == changeId.ObjectId && r["CmdletName"].ToStringWithNull() == changeId.Cmdlet); }
public static void PreGetObjectAction(DataRow inputrow, DataTable dataTable, DataObjectStore store) { AuditLogIdentity auditLogIdentity = new AuditLogIdentity((Identity)inputrow["Identity"]); inputrow["StartDate"] = auditLogIdentity.StartDate; inputrow["EndDate"] = auditLogIdentity.EndDate; inputrow["Cmdlets"] = auditLogIdentity.Cmdlet; inputrow["ObjectIds"] = auditLogIdentity.ObjectId; store.SetModifiedColumns(new List <string>(new string[] { "StartDate", "EndDate", "Cmdlets", "ObjectIds" })); }
public static void PostGetObjectAction(DataRow inputrow, DataTable dataTable, DataObjectStore store) { if (dataTable.Rows.Count == 0) { return; } DataRow dataRow; if (dataTable.Rows.Count > 1) { AuditLogIdentity changeId = new AuditLogIdentity((Identity)inputrow["Identity"]); List <DataRow> list = new List <DataRow>(); foreach (object obj in dataTable.Rows) { DataRow item = (DataRow)obj; list.Add(item); } dataRow = list.FirstOrDefault((DataRow r) => AuditingLog.GetDetailRow(r, changeId)); Array.ForEach <DataRow>(list.Except(new DataRow[] { dataRow }).ToArray <DataRow>(), delegate(DataRow r) { dataTable.Rows.Remove(r); }); } else { dataRow = dataTable.Rows[0]; } if (DBNull.Value != dataRow["CmdletParameters"]) { MultiValuedProperty <AdminAuditLogCmdletParameter> source = (MultiValuedProperty <AdminAuditLogCmdletParameter>)dataRow["CmdletParameters"]; dataRow["ParameterValues"] = string.Join(", ", (from p in source select string.Format("{0}: {1}", p.Name, p.Value)).ToArray <string>()); store.SetModifiedColumns(new List <string>(new string[] { "ParameterValues" })); } }