protected void AddServiceData(string uuid, object data) { ServiceData.Add(uuid, data); }
bool LoadFile(string filePath) { FileInfo file = filePath.AsFile(); ServicesDirectory = file.Directory; //filePath.AsDirectory(); var serviceInfos = ServicesDirectory?.GetDirectories() .Where(x => File.Exists(x.FullName + @"\Website\appsettings.json")) .Select(x => new ServiceInfo { Name = getServiceName(x.FullName + @"\Website\appSettings.json"), ProjectFolder = x.FullName, WebsiteFolder = Path.Combine(x.FullName, "Website"), LaunchSettingsPath = Path.Combine(x.FullName, @"Website\Properties", "launchSettings.json") }); if (!CheckIfServicesDirectoryExist()) { return(false); } servicesDirectoryLastWriteTime = ServicesDirectory.LastWriteTime; txtFileInfo.Text = ServicesDirectory.FullName; txtSolName.Text = ServicesDirectory.Name; if (serviceInfos == null) { return(false); } foreach (var serviceInfo in serviceInfos) { var serviceName = serviceInfo.Name; var srv = ServiceData.SingleOrDefault(srvc => srvc.Service == serviceName); if (srv == null) { srv = new MicroserviceItem(); ServiceData.Add(srv); } var port = ""; var status = MicroserviceItem.EnumStatus.NoSourcerLocally; var parentFullName = ServicesDirectory?.FullName ?? ""; var projFolder = serviceInfo.ProjectFolder; var websiteFolder = serviceInfo.WebsiteFolder; var launchSettings = serviceInfo.LaunchSettingsPath; var procId = -1; if (File.Exists(@launchSettings)) { status = MicroserviceItem.EnumStatus.Pending; port = GetPortNumberFromLaunchSettingsFile(launchSettings); } else { websiteFolder = null; } srv.Status = status; srv.Service = serviceName; srv.Port = port; srv.ProcId = procId; srv.SolutionFolder = projFolder; srv.WebsiteFolder = websiteFolder; } FilterListBy(txtSearch.Text); projectLoaded = true; if (watcher == null) { StartFileSystemWatcher(ServicesDirectory); } Refresh(); return(true); }