private void ApplayAudits(ChangeTracker changeTracker)
        {
            var auditSourcevalues = _auditSourcesProvider.GetAuditSourceValues().SerializeJson();

            ApplayCreateAudits(changeTracker, auditSourcevalues);
            ApplayUpdateAudits(changeTracker, auditSourcevalues);
        }
Example #2
0
        public virtual string?GetAuditValues(EntityEventType eventType, object?newEntity, string?previousJsonAudit = null)
        {
            var httpContext = _httpContextAccessor.HttpContext;
            int?userId;

            var user = httpContext.User;

            if (!user.Identity.IsAuthenticated)
            {
                userId = null;
            }
            else
            {
                userId = user.Claims.Where(x => x.Type == "UserID").Select(x => x.Value).First().ToInt();
            }

            var auditSourceValues = _auditSourcesProvider.GetAuditSourceValues();

            var auditJArray = new JArray();

            // Update & Delete
            if (eventType == EntityEventType.Update || eventType == EntityEventType.Delete)
            {
                auditJArray = JArray.Parse(previousJsonAudit !);
            }

            // Delete => No NewValues
            if (eventType == EntityEventType.Delete)
            {
                newEntity = null;
            }

            JObject newAuditJObject = JObject.FromObject(new EntityAudit <object?>
            {
                EventType         = eventType,
                ActorUserId       = userId,
                ActDateTime       = DateTime.Now,
                AuditSourceValues = auditSourceValues,
                NewEntity         = newEntity
            }, new JsonSerializer
            {
                NullValueHandling = NullValueHandling.Ignore,
                Formatting        = Formatting.None
            });

            auditJArray.Add(newAuditJObject);

            return(auditJArray.SerializeToJson(true));
        }