public bool AssignedLog(Entity data, OwnerObject from, OwnerObject to, Schema.Domain.Entity entityMetadata) { if (!entityMetadata.LogEnabled) { return(false); } EntityLog entity = new EntityLog { EntityId = entityMetadata.EntityId, EntityLogId = Guid.NewGuid(), OperationType = OperationTypeEnum.Assign, UserId = _currentUser.SystemUserId, OrganizationId = _currentUser.OrganizationId, CreatedOn = DateTime.Now, RecordId = data.GetIdValue() }; var datas = new List <EntityLogChangeData> { new EntityLogChangeData() { Name = "ownerid", Original = from.SerializeToJson(), Value = to.SerializeToJson() } }; entity.ChangeData = datas.SerializeToJson(); return(Create(entity)); }
public void LogChanges(ChangeTracker changes) { var modifiedEntities = changes.Entries().Where(p => p.State == EntityState.Modified).ToList(); // Updated Records var deletedEntities = changes.Entries().Where(p => p.State == EntityState.Deleted).ToList(); // Deleted Records var userId = httpcontext.HttpContext.GetAuthUser(); // Get Auth User var now = System.DateTime.UtcNow; foreach (var change in modifiedEntities) // Modified Data { bool LogModelState = change.Entity.GetType().CheckAttributeExist <LogModelAttribute>(); // Check LogModel Attribute var entityName = change.Entity.GetType().Name; // Table name var PrimaryKey = change.OriginalValues.Properties.FirstOrDefault(prop => prop.IsPrimaryKey() == true).Name; //Table Primary Key EntityLog log = new EntityLog(userId, entityName, change.OriginalValues[PrimaryKey].ToInt(), now, ChangeState.Updated); foreach (IProperty prop in change.OriginalValues.Properties) // Updated Props { bool LogPropState = prop.PropertyInfo.CheckAttributeExist <LogPropAttribute>(); // Check LogProp Attribute if (!LogModelState && !LogPropState) { continue; } var originalValue = change.OriginalValues[prop.Name].ToString(); var currentValue = change.CurrentValues[prop.Name]?.ToString(); string a = prop.GetDisplayName(); if (originalValue != currentValue) { log.ChangedValues.Add(new ChangedValues(prop.GetDisplayName(), originalValue, currentValue)); } } elasticSearchService.CheckExistsAndInsert <EntityLog>(IndexType.entity_log, log); // Send to Elastic } foreach (var deleted in deletedEntities) // Deleted Data { var entityName = deleted.Entity.GetType().Name; // Table name bool LogModelState = deleted.Entity.GetType().CheckAttributeExist <LogModelAttribute>(); // Check LogModel Attribute if (!LogModelState) { continue; } var PrimaryKey = deleted.OriginalValues.Properties.FirstOrDefault(prop => prop.IsPrimaryKey() == true).Name; //Table Primary Key EntityLog log = new EntityLog(userId, entityName, deleted.OriginalValues[PrimaryKey].ToInt(), now, ChangeState.Deleted); elasticSearchService.CheckExistsAndInsert <EntityLog>(IndexType.entity_log, log); // Send to Elastic } }
public bool UpdatedLog(Entity originData, Entity newData, Schema.Domain.Entity entityMetadata, List <Schema.Domain.Attribute> attributeMetadatas) { if (!entityMetadata.LogEnabled) { return(false); } EntityLog entity = new EntityLog { EntityId = entityMetadata.EntityId, EntityLogId = Guid.NewGuid(), OperationType = OperationTypeEnum.Update, UserId = _currentUser.SystemUserId, OrganizationId = _currentUser.OrganizationId, CreatedOn = DateTime.Now, RecordId = newData.GetIdValue(), AttributeMask = string.Join(",", newData.Keys) }; var datas = new List <EntityLogChangeData>(); foreach (var item in newData) { var originValue = originData.TryGetValue(item.Key, out object value) ? value.ToString() : ""; if (!originValue.IsCaseInsensitiveEqual(item.Value != null ? item.Value.ToString() : "")) { var attr = attributeMetadatas.Find(n => n.Name.IsCaseInsensitiveEqual(item.Key)); if (!item.Key.IsCaseInsensitiveEqual("createdon") && !item.Key.IsCaseInsensitiveEqual("createdby") && !item.Key.IsCaseInsensitiveEqual("modifiedon") && !item.Key.IsCaseInsensitiveEqual("modifiedby") && !item.Key.IsCaseInsensitiveEqual("versionnumber")) { if (attr != null && (attr.TypeIsText() || attr.TypeIsNText())) { continue; } datas.Add(new EntityLogChangeData() { Name = item.Key, Original = originData[item.Key].ToString(), Value = item.Value != null ? item.Value.ToString() : "" }); } } } entity.ChangeData = datas.SerializeToJson(); return(Create(entity)); }
public bool SharedLog(Entity data, Schema.Domain.Entity entityMetadata) { if (!entityMetadata.LogEnabled) { return(false); } EntityLog entity = new EntityLog { EntityId = entityMetadata.EntityId, EntityLogId = Guid.NewGuid(), OperationType = OperationTypeEnum.Share, UserId = _currentUser.SystemUserId, OrganizationId = _currentUser.OrganizationId, CreatedOn = DateTime.Now, RecordId = data.GetIdValue() }; return(Create(entity)); }
public bool Create(EntityLog entity) { return(_entityLogRepository.Create(entity)); }