public void Register(Shared.Domain.Instance instance)
        {
            string appId            = instance.App;
            var    instanceIDObject = new InstanceID(instance.HostName, instance.Port);
            var    instanceId       = instanceIDObject.InstanceId;

            var existingInstance = this.GetByAppIdInstanceId(appId, instanceId);

            if (existingInstance != null)
            {
                throw new InvalidOperationException($"The application '{appId}' has instance '{instanceId}' already registered ");
            }

            this.instanceRepository.Add(instance);
        }
        public void Heartbeat_Should_RenewInstanceTimestamp()
        {
            //Arrange
            string appID = "ApplicationTest";

            applicationOneInstance1.App = appID;
            Shared.Domain.Instance instance = (Instance)applicationOneInstance1;
            instance.SetHeartbeat(DateTimeOffset.UtcNow.ToUnixTimeSeconds() - 10);
            this.instanceService.Register(instance);
            string instanceId = $"{applicationOneInstance1.HostName}:{applicationOneInstance1.Port}";

            //Act
            var prevTimestamp = instance.HeartbeatTimestamp;

            this.instanceService.Heartbeat(instanceId);
            var result = this.instanceService.GetByInstanceID(instanceId);

            //Assert
            result.HeartbeatTimestamp.Should().BeGreaterThan(prevTimestamp);
        }