Example #1
0
    private static List <ServiceInfo> GetEasyServices()
    {
        Console.Write("Getting all EasyServices, please wait...");
        Console.Out.Flush();

        var hasCircle = false;
        var infoList  = new List <ServiceInfo>();

        foreach (var sc in ServiceController.GetServices())
        {
            var name   = sc.ServiceName;
            var mngObj = GetServiceManagementObjectByName(name);
            var path   = mngObj["PathName"].ToString();
            if (path != Libs.BinPath)
            {
                continue;
            }

            var description = mngObj["Description"].ToString();
            var confDir     = GetCwdInDescription(description);
            var info        = new ServiceInfo(sc, confDir);

            if (!Libs.InsertInto(infoList, info, ServiceInfo.IsDepend))
            {
                Console.WriteLine("\r\n[ERROR] Circle dependencies detected");
                infoList.Add(info);
                hasCircle = true;
            }
        }

        if (!hasCircle)
        {
            Console.Write($"\r{"".PadRight(60)}\r");
            Console.Out.Flush();
        }

        if (infoList.Count == 0)
        {
            Libs.Abort($"No EasyService found");
        }

        return(infoList);
    }