public void PowerOnHost()
 {
     lock (_lock)
     {
         if (ReadyMachineTable.GetHostsCount() != 0)
         {
             Machine machine = ReadyMachineTable.GetAllMachines().First();
             ReadyMachineTable.RemoveMachine(machine.MachineId);
             MachineTable.AddMachine(machine.MachineId, machine);
             DataHolder.SetUtilization(machine.MachineId, UtilizationStates.UnderUtilization);
             machine.StartMachine();
         }
     }
 }
        private async Task WakeIdleHost()
        {
            if (!StartingMachine)
            {
                //Task t = new Task(async () =>
                //{
                //var l = Global.DataCenterHostConfiguration;
                StartingMachine = true;
                var machine = PoweredOffMachinesTable.GetAllMachines().Last();
                await Task.Delay(Global.Second * 60);

                ReadyMachineTable.AddMachine(machine.MachineId, machine);
                PoweredOffMachinesTable.RemoveMachine(machine.MachineId);
                StartingMachine = false;
                //});
                //t.Start();
            }
        }
        //public int GetMachinesCount()
        //{
        //    lock (_lock)
        //    {
        //        return MachineTable.GetMachinesCount();
        //    }
        //}

        public void PowerOffHost(int machineId)
        {
            lock (_lock)
            {
                var machine = MachineTable.GetMachineById(machineId);
                if ((machine as HostMachine).GetContainersCount() != 0)
                {
                    //return false;
                    throw new NotImplementedException();
                }
                else
                {
                    machine.StopMachine();
                    //PoweredOffMachinesTable.AddMachine(machine.MachineId, machine);
                    MachineTable.RemoveMachine(machineId);
                    DataHolder.RemoveUtilization(machineId);
                    ReadyMachineTable.AddMachine(machineId, machine);
                    //Console.WriteLine($"( ) Power off Host #{machineId}");

                    //return true;
                }
            }
        }