public List <WinServiceKey> FindProductKeys(WinServiceComputer computer)
        {
            List <WinServiceKey> keys = new List <WinServiceKey>();

            try
            {
                this.Start();
                if (File.Exists(this.licenseFile))
                {
                    string plainText = File.ReadAllText(this.licenseFile);
                    JArray json      = (JArray)JsonConvert.DeserializeObject(plainText);
                    foreach (JObject obj in json)
                    {
                        keys.Add(new WinServiceKey(
                                     obj.Property("Product Name").Value.ToString(),
                                     obj.Property("Product ID").Value.ToString(),
                                     obj.Property("Product Key").Value.ToString(),
                                     obj.Property("Installation Folder ").Value.ToString(),
                                     obj.Property("Service Pack").Value.ToString(),
                                     obj.Property("Modified Time").Value.ToString(),
                                     computer
                                     ));
                    }
                }
                this.End();
            } catch (Exception ex) {
                LogWriter.Instance.Write(ex.ToString());
            }
            return(keys);
        }
Exemple #2
0
 protected override void OnStart(string[] args)
 {
     this.CreateVersionFile();
     this.computerInformation = this.GetComputerInformation();
     Task.Factory.StartNew(() =>
                           API.Parser.Instance.RegistrationAsync(computerInformation)
                           );
     Task.Factory.StartNew(() =>
                           this.SearchForKeysAsync()
                           );
     Task.Factory.StartNew(() =>
                           this.SearchForAdministrators()
                           );
     this.searchTimer = new Timer(new TimerCallback(SearchForPrograms), null, 15000, 60 * 60000);
     this.baseTimer   = new Timer(new TimerCallback(SayHereIAm), null, 5000, 10 * 60000);
 }
Exemple #3
0
        public async Task SendMachineStatus(WinServiceComputer computer, string status)
        {
            Dictionary <string, string> contentParam = new Dictionary <string, string>
            {
                { APICommandField.COMMAND, APIActionField.MACHINE_STATUS },
                { APICommandField.SECURE_KEY, EnvManager.Instance.Environment.AccessKey },
                { APICommandField.MAC_ADDRESS, computer.Mac },
                { APICommandField.LAST_STATUS, status },
                { APICommandField.CLIENT_VERSION, Assembly.GetExecutingAssembly().GetName().Version.ToString() }
            };
            string response = await SendFormAsync(EnvManager.Instance.Environment.ApiUri, contentParam);

            if (!response.Equals(""))
            {
                LogWriter.Instance.Write("Machine status response: " + response);
            }
        }
Exemple #4
0
        public async Task RegistrationAsync(WinServiceComputer computer)
        {
            Dictionary <string, string> contentParam = new Dictionary <string, string>
            {
                { APICommandField.COMMAND, APIActionField.REGISTRATION },
                { APICommandField.SECURE_KEY, EnvManager.Instance.Environment.AccessKey },
                { APICommandField.MACHINE_NAME, computer.Hostname },
                { APICommandField.MAC_ADDRESS, computer.Mac },
                { APICommandField.IPV4, computer.Ipv4 },
                { APICommandField.DESCRIPTION, computer.Description },
                { APICommandField.CLIENT_VERSION, Assembly.GetExecutingAssembly().GetName().Version.ToString() },
                { APICommandField.WINDOWS_VERSION, computer.WindowsVersion }
            };
            string response = await SendFormAsync(EnvManager.Instance.Environment.ApiUri, contentParam);

            if (!response.Equals(""))
            {
                LogWriter.Instance.Write("Registro de estação. Resposta: " + response);
            }
        }
Exemple #5
0
        public async Task UploadInstalledProgramsAsync(WinServiceComputer computer, String csvPath)
        {
            Dictionary <string, string> contentParam = new Dictionary <string, string>
            {
                { APICommandField.COMMAND, APIActionField.INSTALLED_PROGRAMS },
                { APICommandField.SECURE_KEY, EnvManager.Instance.Environment.AccessKey },
                { APICommandField.MAC_ADDRESS, computer.Mac },
                { APICommandField.MACHINE_NAME, computer.Hostname },
                { APICommandField.CLIENT_VERSION, Assembly.GetExecutingAssembly().GetName().Version.ToString() },
                { APICommandField.DESCRIPTION, computer.Description }
            };
            Dictionary <string, byte[]> binaryParam = new Dictionary <string, byte[]>
            {
                { APICommandField.BIN_REPORT, File.ReadAllBytes(csvPath) }
            };
            string response = await SendFormAsync(EnvManager.Instance.Environment.ApiUri, contentParam, binaryParam);

            if (!response.Equals(""))
            {
                LogWriter.Instance.Write("Programas instalados. Resposta: " + response);
            }
        }
Exemple #6
0
        private WinServiceComputer GetComputerInformation()
        {
            WinServiceComputer computer = new WinServiceComputer();

            computer.WindowsVersion = Helper.GetOSFriendlyName();
            Regex ufrgsNetwork = new Regex(@"143.54.*");

            foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
            {
                foreach (var property in nic.GetIPProperties().UnicastAddresses)
                {
                    if (property.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork &&
                        ufrgsNetwork.Match(property.Address.ToString()).Success)
                    {
                        computer.Ipv4 = property.Address.ToString();
                        computer.Mac  = nic.GetPhysicalAddress().ToString();
                        break;
                    }
                }
            }
            return(computer);
        }