public void UpdateRunningMicroServiceProperties(Models.ServiceProperties serviceProperties, string userAgent, string userHostAddress) { if (serviceProperties == null) { return; } var palaceInfo = PalaceInfoManager.GetOrCreatePalaceInfo(userAgent, userHostAddress); if (palaceInfo.HostName == null) { return; } palaceInfo.LastHitDate = DateTime.Now; var runningList = GetRunningList(); var key = $"{palaceInfo.MachineName}.{palaceInfo.HostName}.{serviceProperties.ServiceName}".ToLower(); var rms = runningList.SingleOrDefault(i => i.Key == key); if (rms == null) { return; } foreach (var item in serviceProperties.PropertyList) { var propertyInfo = rms.GetType().GetProperty(item.PropetyName, System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase); if (propertyInfo == null) { continue; } var value = System.Convert.ChangeType(item.PropertyValue, propertyInfo.PropertyType); propertyInfo.SetValue(rms, value, null); } rms.LastUpdateDate = DateTime.Now; if (rms.ServiceState == "UpdateDetected") { LockDownload(rms.ServiceName, palaceInfo.Key); } else if (rms.ServiceState == "Started") { UnLockDownload(rms.ServiceName); } OnChanged?.Invoke(); }
public IActionResult UpdateRunningMicroServiceProperties([FromHeader] string authorization, Models.ServiceProperties serviceProperties) { EnsureGoodAuthorization(authorization); Collector.UpdateRunningMicroServiceProperties(serviceProperties, HttpContext.GetUserAgent(), HttpContext.GetUserHostAddress()); return(Ok()); }