Пример #1
0
        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");
        }
Пример #2
0
 private VmLogEntry GetLogEntry(IAuditing entity)
 {
     return(new VmLogEntry()
     {
         Identifier = GetPrimaryKey(entity),
         Table = GetTableName(entity.GetType()),
         UserName = entity.ModifiedBy,
         Operation = GetOperation(entity)
     });
 }
Пример #3
0
        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));
        }
Пример #4
0
 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);
     }
 }
Пример #5
0
        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);
            }
        }
Пример #6
0
 public static void SetModified(this IAuditing entityEntry, string userName, DateTime savingTimeStamp)
 {
     entityEntry.Modified   = savingTimeStamp;
     entityEntry.ModifiedBy = userName;
 }
Пример #7
0
        private static void SetModified <TEntity>(TEntity entity, string userName, DateTime savingTimeStamp)
        {
            IAuditing auditing = entity as IAuditing;

            auditing?.SetModified(userName, savingTimeStamp);
        }