Exemplo n.º 1
0
        public Auditor(BeanApi api, string auditBlacklist)
        {
            var exitFluidMode = false;

            _auditBlacklist = auditBlacklist == string.Empty
                ? new List <string>()
                : auditBlacklist.ToUpper().Split(';').ToList();
            _auditBlacklist.Add("AUDIT");

            if ((api.Database == string.Empty && api.Connection.State != ConnectionState.Open) ||
                api.IsKnownKind("AUDIT"))
            {
                return;
            }

            if (!api.IsFluidMode())
            {
                api.EnterFluidMode();
                exitFluidMode = true;
            }

            var audit = api.Dispense("AUDIT");

            audit
            .Put("AuditDate", DateTime.Now)
            .Put("Action", new string('X', 16))
            .Put("User", new string('X', 64))
            .Put("Object", new string('X', 64))
            .Put("ObjectId", new string('X', 64))
            .Put("Property", new string('X', 64))
            .Put("PropertyType", new string('X', 64))
            .Put("OldValue", new string('X', 1024))
            .Put("NewValue", new string('X', 1024))
            .Put("Notes", new string('X', 4096))
            .Store();

            if (exitFluidMode)
            {
                api.ExitFluidMode();
            }
        }