static bool InitialStatesAreEqual(EmbeddingDefinition newDefinition, EmbeddingDefinition oldDefinition, out EmbeddingDefinitionComparisonResult failedComparison) { failedComparison = null; if (newDefinition.InititalState == oldDefinition.InititalState) { return(true); } failedComparison = EmbeddingDefinitionComparisonResult.Unequal("The initial Embedding state is not the same as the persisted definition"); return(false); }
static EmbeddingDefinitionComparisonResult DefinitionsAreEqual( EmbeddingDefinition newDefinition, EmbeddingDefinition oldDefinition) { if (newDefinition.Embedding != oldDefinition.Embedding) { return(EmbeddingDefinitionComparisonResult.Unequal($"The new Embedding identifier {newDefinition.Embedding.Value} is not the same as the persisted embedding identifier {oldDefinition.Embedding.Value}")); } if (!InitialStatesAreEqual(newDefinition, oldDefinition, out var failedComparison)) { return(failedComparison); } return(!EventsAreEqual(newDefinition, oldDefinition, out failedComparison) ? failedComparison : EmbeddingDefinitionComparisonResult.Equal); }
static bool EventsAreEqual(EmbeddingDefinition newDefinition, EmbeddingDefinition oldDefinition, out EmbeddingDefinitionComparisonResult failedComparison) { failedComparison = null; if (newDefinition.Events.Count() != oldDefinition.Events.Count()) { failedComparison = EmbeddingDefinitionComparisonResult.Unequal("The definitions does not have the same number of events"); return(false); } foreach (var newEvent in newDefinition.Events) { var oldEvent = oldDefinition.Events.FirstOrDefault(oldEvent => oldEvent.Id == newEvent.Id); if (oldEvent != default) { continue; } failedComparison = EmbeddingDefinitionComparisonResult.Unequal($"Event {newEvent.Id.Value} was not in previous Embedding definition"); return(false); } return(true); }