예제 #1
0
파일: Auditor.cs 프로젝트: miseeger/NBean
        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();
            }
        }