public UserService(IRepository<Utente> repo, IFormsAuthentication formsAuth, IAuditing auditing, IMailService mailService ) { _userRepo = repo; _formsAuth = formsAuth; _mailService = mailService; if ((_auditing = auditing) == null) throw new ArgumentNullException("auditing"); }
private VmLogEntry GetLogEntry(IAuditing entity) { return(new VmLogEntry() { Identifier = GetPrimaryKey(entity), Table = GetTableName(entity.GetType()), UserName = entity.ModifiedBy, Operation = GetOperation(entity) }); }
private string GetPrimaryKey(IAuditing entity) { if (entity is EntityIdentifierBase) { return((entity as EntityIdentifierBase).Id.ToString()); } // Get comma separated list of primarykeys and their values var primarykeys = this.DbContext.Model.FindEntityType(entity.GetType()).FindPrimaryKey().Properties; var list = new List <string>(); primarykeys.ForEach(p => list.Add(string.Format("{0}: {1}", p.Name, entity.GetType().GetProperty(p.Name).GetValue(entity, null)))); return(string.Join(", ", list)); }
private static void DebugAuditingPluginNPM(Type derivedType, IAuditing pluginInstance) { if (AuditingPluginManager.log.IsDebugEnabled && derivedType.FullName == "SolarWinds.NPM.Auditing.InterfaceAdded") { AuditDataContainer auditDataContainer = new AuditDataContainer(pluginInstance.SupportedActionTypes.First <AuditActionType>(), new Dictionary <string, string> { { "ObjectType", "dummy" } }, "dummy"); string message = pluginInstance.GetMessage(auditDataContainer); AuditingPluginManager.log.DebugFormat("\"{0}::{1}\" Installed Successfully. Example message: \"{2}\".", pluginInstance.GetType(), pluginInstance.SupportedIndicationType, message); GC.KeepAlive(message); } }
private LogOperation GetOperation(IAuditing entity) { var state = this.DbContext.Entry(entity).State; switch (state) { case EntityState.Added: return(LogOperation.Create); case EntityState.Modified: if (entity is IPublishingStatus valitidyEntity) { if (valitidyEntity.PublishingStatusId == GetPublishingStatusDeleted || valitidyEntity.PublishingStatusId == GetPublishingStatusOldPublished) { return(LogOperation.Archive); } } return(LogOperation.Update); case EntityState.Deleted: return(LogOperation.Delete); default: return(LogOperation.NotDefined); } }
public static void SetModified(this IAuditing entityEntry, string userName, DateTime savingTimeStamp) { entityEntry.Modified = savingTimeStamp; entityEntry.ModifiedBy = userName; }
private static void SetModified <TEntity>(TEntity entity, string userName, DateTime savingTimeStamp) { IAuditing auditing = entity as IAuditing; auditing?.SetModified(userName, savingTimeStamp); }