public static Computer Register(ComputerRegistration registration)
        {
            using (var handler = new HttpClientHandler()) {
                handler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;

                using (var client = new HttpClient(handler)) {
                    var request = new HttpRequestMessage()
                    {
                        RequestUri = new Uri(SettingsService.Settings.Server + "computers/register"),
                        Method     = HttpMethod.Post,
                    };
                    request.Content = new ObjectContent(typeof(ComputerRegistration), registration, new JsonMediaTypeFormatter(), new MediaTypeHeaderValue("application/json"));

                    var requestTask = client.SendAsync(request);
                    requestTask.Wait();

                    if (requestTask.Result.IsSuccessStatusCode)
                    {
                        var readTask = requestTask.Result.Content.ReadAsAsync <Computer>();
                        readTask.Wait();

                        return(readTask.Result);
                    }
                    throw new Exception(requestTask.Result.ToString());
                }
            }
        }
Example #2
0
        public async Task <ActionResult <Computer> > RegisterComputer(ComputerRegistration registration)
        {
            var toAdd = new Computer()
            {
                Hostname = registration.Hostname,
                LastSeen = DateTime.Now,
                IP       = registration.IP,
                MAC      = registration.MAC,
                Status   = ComputerStatus.Pending
            };

            _Context.Computers.Add(toAdd);
            await _Context.SaveChangesAsync();

            return(CreatedAtAction("GetComputer", new { id = toAdd.ID }, toAdd));
        }