/// <summary> /// Writes the save audit log entries. /// </summary> /// <param name="success">if set to <c>true</c> [success].</param> /// <param name="entityId">The entity identifier.</param> /// <param name="state">The state.</param> public void WriteSaveAuditLogEntries(bool success, long entityId, IDictionary <string, object> state) { if (state == null) { throw new ArgumentNullException("state"); } if (string.IsNullOrEmpty(SaveDetailsStateKey)) { return; } IDictionary <long, TDetails> entityDetailsState = GetAuditLogDetailsState(state, SaveDetailsStateKey); TDetails entityDetails; if (!entityDetailsState.TryGetValue(entityId, out entityDetails)) { // Check for entities being created long temporaryId = EventTargetStateHelper.GetTemporaryIdFromId(state, entityId); if (!entityDetailsState.TryGetValue(temporaryId, out entityDetails)) { return; } } OnWriteSaveAuditLogEntries(success, entityDetails); }
/// <summary> /// Initializes a new instance of the <see cref="SaveGraph" /> class. /// </summary> /// <param name="entities">The entities.</param> /// <exception cref="System.ArgumentNullException"> /// entities /// or /// context /// </exception> public SaveGraph(IEnumerable <IEntity> entities) { if (entities == null) { throw new ArgumentNullException("entities"); } Entities = new Dictionary <long, IEntity>(); foreach (IEntity entity in entities) { Entities[entity.Id] = entity; } AcceptedChangeTrackers = new List <IChangeTracker <IMutableIdKey> >( ); CurrentUtcDate = DateTime.UtcNow; State = new Dictionary <string, object>( ); Changes = new Dictionary <long, EntityChanges>( ); Mapping = new BidirectionalDictionary <long, long>( ); EventTargetStateHelper.SetSaveGraph(State, this); }
/// <summary> /// Gets the audit log details state. /// </summary> /// <param name="state">The state.</param> /// <param name="keyName">Name of the key.</param> /// <returns></returns> private IDictionary <long, TDetails> GetAuditLogDetailsState(IDictionary <string, object> state, string keyName) { return(EventTargetStateHelper.GetValue <IDictionary <long, TDetails> >(state, keyName, () => new Dictionary <long, TDetails>())); }