private void HandleEvent(RouteNodeAdded request, ITransaction transaction) { _logger.LogDebug($"Handler got {request.GetType().Name} event seq no: {request.EventSequenceNumber}"); if (AlreadyProcessed(request.EventId)) { return; } var envelope = GeoJsonConversionHelper.ConvertFromPointGeoJson(request.Geometry).Envelope.EnvelopeInternal; transaction.Add(new RouteNode(request.NodeId, request.RouteNodeInfo?.Function, envelope, request.NamingInfo?.Name), ignoreDublicates: true); }
protected bool CheckNodeId(RouteNodeAdded routeNodeAdded) { if (routeNodeAdded.NodeId == null || routeNodeAdded.NodeId == Guid.Empty) { return(Fail($"NodeId is null or empty on event with id: {routeNodeAdded.EventId}")); } else { if (_idsUsed.Contains(routeNodeAdded.NodeId)) { return(Fail($"NodeId is not unique on event with id: {routeNodeAdded.EventId}")); } } _idsUsed.Add(routeNodeAdded.NodeId); return(true); }
private void HandleEvent(RouteNodeAdded request, ITransaction transaction) { _logger.LogDebug($"Handler got {request.GetType().Name} event seq no: {request.EventSequenceNumber}"); if (AlreadyProcessed(request.EventId)) { return; } var routeNode = new RouteNode(request.NodeId, request.Geometry) { RouteNodeInfo = request.RouteNodeInfo, NamingInfo = request.NamingInfo, MappingInfo = request.MappingInfo, LifecycleInfo = request.LifecyleInfo, SafetyInfo = request.SafetyInfo }; transaction.Add(routeNode, ignoreDublicates: true); }
private bool CheckNodeAddedEventProperties(RouteNodeAdded routeNodeAddedEvent, RouteNodeRecord sourceNode) { var allTestsOk = true; if (!TestPropertyValue(routeNodeAddedEvent, sourceNode.Id, routeNodeAddedEvent.NodeId, "NodeId")) { allTestsOk = false; } // Check route node info if (!TestPropertyValueNoEquals(routeNodeAddedEvent, sourceNode.RouteNodeInfo, routeNodeAddedEvent.RouteNodeInfo, "RouteNodeInfo")) { allTestsOk = false; } else if (routeNodeAddedEvent.RouteNodeInfo != null) { if (!TestPropertyValue(routeNodeAddedEvent, sourceNode.RouteNodeInfo.Function, routeNodeAddedEvent.RouteNodeInfo.Function, "RouteNodeInfo.Function")) { allTestsOk = false; } if (!TestPropertyValue(routeNodeAddedEvent, sourceNode.RouteNodeInfo.Kind, routeNodeAddedEvent.RouteNodeInfo.Kind, "RouteNodeInfo.Kind")) { allTestsOk = false; } } // general // Check event type if (!TestPropertyValue(routeNodeAddedEvent, "RouteNodeAdded", routeNodeAddedEvent.EventType, "EventType")) { allTestsOk = false; } // Check command type if (!TestPropertyValue(routeNodeAddedEvent, "NewRouteNodeDigitized", routeNodeAddedEvent.CmdType, "CmdType")) { allTestsOk = false; } // Check IsLastEventInCmd if (!TestPropertyValue(routeNodeAddedEvent, true, routeNodeAddedEvent.IsLastEventInCmd, "IsLastEventInCmd")) { allTestsOk = false; } // Check event id uniqueness if (!TestIfIdNotAlreadyUsed(routeNodeAddedEvent, routeNodeAddedEvent.EventId, _ids, "EventId")) { allTestsOk = false; } // Check cmd id uniqueness if (!TestIfIdNotAlreadyUsed(routeNodeAddedEvent, routeNodeAddedEvent.CmdId, _ids, "CmdId")) { allTestsOk = false; } if (!TestPropertyValue(routeNodeAddedEvent, sourceNode.ApplicationName, routeNodeAddedEvent.ApplicationName, "ApplicationName")) { allTestsOk = false; } if (!TestPropertyValue(routeNodeAddedEvent, sourceNode.ApplicationInfo, routeNodeAddedEvent.ApplicationInfo, "ApplicationInfo")) { allTestsOk = false; } if (!TestPropertyValue(routeNodeAddedEvent, sourceNode.Username, routeNodeAddedEvent.UserName, "UserName")) { allTestsOk = false; } if (!TestPropertyValue(routeNodeAddedEvent, sourceNode.WorkTaskMrid, routeNodeAddedEvent.WorkTaskMrid, "WorkTaskMrid")) { allTestsOk = false; } // Check naming info if (!TestPropertyValueNoEquals(routeNodeAddedEvent, sourceNode.NamingInfo, routeNodeAddedEvent.NamingInfo, "NamingInfo")) { allTestsOk = false; } else if (routeNodeAddedEvent.NamingInfo != null) { if (!TestPropertyValue(routeNodeAddedEvent, sourceNode.NamingInfo.Name, routeNodeAddedEvent.NamingInfo.Name, "NamingInfo.Name")) { allTestsOk = false; } if (!TestPropertyValue(routeNodeAddedEvent, sourceNode.NamingInfo.Description, routeNodeAddedEvent.NamingInfo.Description, "NamingInfo.Description")) { allTestsOk = false; } } // Check mapping info if (!TestPropertyValueNoEquals(routeNodeAddedEvent, sourceNode.MappingInfo, routeNodeAddedEvent.MappingInfo, "MappingInfo")) { allTestsOk = false; } else if (routeNodeAddedEvent.MappingInfo != null) { if (!TestPropertyValue(routeNodeAddedEvent, sourceNode.MappingInfo.Method, routeNodeAddedEvent.MappingInfo.Method, "MappingInfo.Method")) { allTestsOk = false; } if (!TestPropertyValue(routeNodeAddedEvent, sourceNode.MappingInfo.HorizontalAccuracy, routeNodeAddedEvent.MappingInfo.HorizontalAccuracy, "MappingInfo.HorizontalAccuracy")) { allTestsOk = false; } if (!TestPropertyValue(routeNodeAddedEvent, sourceNode.MappingInfo.VerticalAccuracy, routeNodeAddedEvent.MappingInfo.VerticalAccuracy, "MappingInfo.VerticalAccuracy")) { allTestsOk = false; } if (!TestPropertyValue(routeNodeAddedEvent, sourceNode.MappingInfo.SurveyDate, routeNodeAddedEvent.MappingInfo.SurveyDate, "MappingInfo.SurveyDate")) { allTestsOk = false; } if (!TestPropertyValue(routeNodeAddedEvent, sourceNode.MappingInfo.SourceInfo, routeNodeAddedEvent.MappingInfo.SourceInfo, "MappingInfo.SourceInfo")) { allTestsOk = false; } } // Check lifecycle info if (!TestPropertyValueNoEquals(routeNodeAddedEvent, sourceNode.LifecycleInfo, routeNodeAddedEvent.LifecyleInfo, "LifecycleInfo")) { allTestsOk = false; } else if (routeNodeAddedEvent.LifecyleInfo != null) { if (!TestPropertyValue(routeNodeAddedEvent, sourceNode.LifecycleInfo.DeploymentState, routeNodeAddedEvent.LifecyleInfo.DeploymentState, "LifecycleInfo.DeploymentState")) { allTestsOk = false; } if (!TestPropertyValue(routeNodeAddedEvent, sourceNode.LifecycleInfo.InstallationDate, routeNodeAddedEvent.LifecyleInfo.InstallationDate, "LifecycleInfo.InstallationDate")) { allTestsOk = false; } if (!TestPropertyValue(routeNodeAddedEvent, sourceNode.LifecycleInfo.RemovalDate, routeNodeAddedEvent.LifecyleInfo.RemovalDate, "LifecycleInfo.RemovalDate")) { allTestsOk = false; } } // Check safety info if (!TestPropertyValueNoEquals(routeNodeAddedEvent, sourceNode.SafetyInfo, routeNodeAddedEvent.SafetyInfo, "SafetyInfo")) { allTestsOk = false; } else if (routeNodeAddedEvent.SafetyInfo != null) { if (!TestPropertyValue(routeNodeAddedEvent, sourceNode.SafetyInfo.Classification, routeNodeAddedEvent.SafetyInfo.Classification, "SafetyInfo.Classification")) { allTestsOk = false; } if (!TestPropertyValue(routeNodeAddedEvent, sourceNode.SafetyInfo.Remark, routeNodeAddedEvent.SafetyInfo.Remark, "SafetyInfo.Remark")) { allTestsOk = false; } } return(allTestsOk); }