Example #1
0
            public async Task <bool?> Register()
            {
                var logger = Utility.CreateLogger(nameof(KamajiClient), nameof(Register));

                try
                {
                    NodeRegisterModel model = new NodeRegisterModel();
                    model.Address = DataSources.Jsons.AppSettings.Config.Address;

                    IResourceMonitor resourceMonitor = SystemInfo.CreateResourceMonitor();
                    model.ThreadCount  = SystemInfo.ProcessorCount;
                    model.TotalMemory  = resourceMonitor.GetTotalMemory().ConvertTo <int>();
                    model.ComputerName = SystemInfo.ComputerName();
                    model.IpAddress    = SystemInfo.GetIpv4Address()?.ToString();

                    string[] arr = model.Address.Split(':');
                    if (arr.Length > 1 && int.TryParse(arr[arr.Length - 1], out int port))
                    {
                        model.Port = port;
                    }

                    bool success = await RestClient.Instance.PostAsync <bool>($"{KamajiNodeActions.Register}", model);

                    await logger.Code(1).Info("A token has been taken and conected to Kamaji").SaveAsync();

                    return(success);
                }
                catch (Exception ex)
                {
                    await logger.Code(1).Error(ex).SaveAsync();

                    return(null);
                }
            }