private Agent GetAgent()

in src/Elastic.CommonSchema.NLog/EcsLayout.cs [545:568]


		private Agent GetAgent(LogEventInfo logEventInfo, Agent defaultAgent)
		{
			var agentId = AgentId?.Render(logEventInfo);
			var agentName = AgentName?.Render(logEventInfo);
			var agentType = AgentType?.Render(logEventInfo);
			var agentVersion = AgentVersion?.Render(logEventInfo);

			var previousAgent = _previousAgent ?? defaultAgent;
			if ((string.IsNullOrEmpty(agentId) || agentId == previousAgent?.Id)
			  && (string.IsNullOrEmpty(agentName) || agentName == previousAgent?.Name)
			  && (string.IsNullOrEmpty(agentType) || agentType == previousAgent?.Type)
			  && (string.IsNullOrEmpty(agentVersion) || agentVersion == previousAgent?.Version))
				return previousAgent;

			var agent = new Agent
			{
				Id = string.IsNullOrEmpty(agentId) ? previousAgent?.Id : agentId,
				Name = string.IsNullOrEmpty(agentName) ? previousAgent?.Name : agentName,
				Type = string.IsNullOrEmpty(agentType) ? previousAgent?.Type : agentType,
				Version = string.IsNullOrEmpty(agentVersion) ? previousAgent?.Version : agentVersion,
			};
			_previousAgent = agent;
			return agent;
		}