/// <summary> /// Analyzes a business entity against the snapshot and saves log if there has been a change. /// Returns true if there has been a change. /// </summary> /// <param name="entity">The entity to be compared to the snapshot</param> /// <param name="userName">The username that's performing the change</param> /// <returns></returns> public bool SaveChangeLog(MyGeneration.dOOdads.BusinessEntity entity, int userId) { bool dataChanged=false; foreach(DataColumn col in entity.DefaultView.Table.Columns) { string colBeforeChange = snapShot.GetColumn(col.ColumnName).ToString(); string colAfterChange=entity.GetColumn(col.ColumnName).ToString(); if (colBeforeChange != colAfterChange) //This column has been changed { dataChanged = true; LogReceiptChange log = new LogReceiptChange(); log.AddNew(); log.TableName = entity.GetType().ToString(); log.ColumnName = col.ColumnName; log.ChangedBy = userId; log.DateChanged = DateTimeHelper.ServerDateTime; log.RefID = int.Parse(snapShot.GetColumn("ID").ToString()); if (snapShot.GetColumn(col.ColumnName) != null) log.OldValue = snapShot.GetColumn(col.ColumnName).ToString(); if (entity.GetColumn(col.ColumnName) != null) log.NewValue = entity.GetColumn(col.ColumnName).ToString(); log.Save(); } } return dataChanged; }