Example #1
0
 public void SendWolTask(string url, X509Certificate2 cert, DtoWolTask wolTask)
 {
     Request.Method = Method.POST;
     Request.AddJsonBody(wolTask);
     Request.Resource = "toec/Push/WolTask";
     new ApiRequest(new Uri(url)).ExecuteHMACAsync <DtoApiBoolResponse>(Request, cert);
 }
Example #2
0
        public static void WakeUp(DtoWolTask wolTask)
        {
            Logger.Debug("WakeUp Task Received");
            //Send it 2 times waiting 20 seconds b/w each one
            for (int i = 1; i <= 2; i++)
            {
                Logger.Debug("Wake Up Pass: "******"Found Matching Interface For Gateway: " + wolTask.Gateway);
                    Logger.Debug("Broadcast Address Set To: " + nic.Broadcast);
                    var bcast = nic.Broadcast;
                    if (bcast == null)
                    {
                        return;
                    }

                    foreach (var mac in wolTask.Macs)
                    {
                        SendMagicPacket(mac, bcast);
                    }
                }

                Task.Delay(20 * 1000).Wait();
            }
        }
Example #3
0
 private void RunWakeup(DtoWolTask wolTask)
 {
     new APICall().PolicyApi.UpdateLastSocketResult(new DtoStringResponse()
     {
         Value = "WOL Task Started"
     });
     ServiceWolRelay.WakeUp(wolTask);
 }
Example #4
0
        public DtoApiBoolResponse Wakeup(DtoWolTask wolTask)
        {
            var t = new Thread(() => RunWakeup(wolTask));

            t.Start();
            return(new DtoApiBoolResponse()
            {
                Value = true
            });
        }
Example #5
0
        private List <DtoWolTask> GenerateWakeupTask(IEnumerable <EntityComputer> computersToWakeup)
        {
            //get a list of all known gateways
            var allKnownGateways = _uow.NicInventoryRepository.Get().GroupBy(x => x.Gateways).Select(y => y.First());
            var gateways         = new List <string>();

            foreach (var nic in allKnownGateways.Where(x => !string.IsNullOrEmpty(x.Gateways)))
            {
                gateways.AddRange(nic.Gateways.Split(','));
            }
            gateways = gateways.Distinct().ToList();

            var wolRelayInfoList = new List <DtoWolTask>();

            foreach (var gateway in gateways)
            {
                var wolRelayInfo = new DtoWolTask();
                wolRelayInfo.Gateway = gateway;

                foreach (var computer in computersToWakeup)
                {
                    var localComputer = computer;
                    var computerNics  = _uow.NicInventoryRepository.Get(x => x.ComputerId == localComputer.Id);

                    var localGateway = gateway;
                    foreach (var nic in computerNics.Where(x => !string.IsNullOrEmpty(x.Gateways)))
                    {
                        if (nic.Gateways.Contains(localGateway))
                        {
                            foreach (var g in nic.Gateways.Split(','))
                            {
                                if (g.Equals(gateway))
                                {
                                    wolRelayInfo.Macs.Add(nic.Mac);
                                }
                            }
                        }
                    }
                }

                wolRelayInfoList.Add(wolRelayInfo);
            }

            return(wolRelayInfoList);
        }
Example #6
0
        public bool WakeupComputers(string url, string serverName, string interComKey, DtoWolTask task)
        {
            Request.Method   = Method.POST;
            Request.Resource = "Wol/Wakeup";
            Request.AddJsonBody(task);
            var responseData = new ApiRequest(new Uri(url)).ExecuteHMACInterCom <DtoApiBoolResponse>(Request, serverName, interComKey);

            return(responseData != null && responseData.Value);
        }
Example #7
0
 private void RunWakeup(DtoWolTask wolTask)
 {
     ServiceWolRelay.WakeUp(wolTask);
 }
Example #8
0
 private void RunWakeup(DtoWolTask wolTask)
 {
     WolRelayTask.WakeUp(wolTask);
 }