Пример #1
0
        public async Task EchoLoop()
        {
            var buffer = new byte[BufferSize];
            var seg    = new ArraySegment <byte>(buffer);

            while (Socket.State == WebSocketState.Open)
            {
                var incoming = await Socket.ReceiveAsync(seg, CancellationToken.None);

                string receivemsg = Encoding.UTF8.GetString(buffer, 0, incoming.Count);
                if (receivemsg == "getComputerInfo")
                {
                    var hardDiskName = _options.Value.HardDiskPartition;
                    var computerInfo = new ComputerInfoModel
                    {
                        HardDiskSpace       = ComputerInfoHelper.GetHardDiskSpace(hardDiskName),
                        HardDiskUseageSpace = ComputerInfoHelper.GetHardDiskUseSpace(hardDiskName),
                        HardDiskUsageRate   = ComputerInfoHelper.GetHardDiskUsageRate(hardDiskName),
                        CpuUsageRate        = ComputerInfoHelper.GetCpuUsageRate(),
                        MemoryUsageRate     = ComputerInfoHelper.GetMemoryUsageRate(),
                    };
                    var    stringJson = JsonConvert.SerializeObject(computerInfo);
                    string userMsg    = stringJson;
                    byte[] x          = Encoding.UTF8.GetBytes(userMsg);
                    var    outgoing   = new ArraySegment <byte>(x);
                    await this.Socket.SendAsync(outgoing, WebSocketMessageType.Text, true, CancellationToken.None);
                }
            }
        }
Пример #2
0
        public static void PlayGame()
        {
            Console.Clear();

            UserMessages.IntroMessage();

            ComputerInfoModel computer = new ComputerInfoModel();
            PlayerInfoModel   player   = CreatePlayer();

            Console.Clear();

            UserMessages.RulesMessage(player);

            int playerScore   = 0;
            int computerScore = 0;
            int round         = 1;

            do
            {
                Console.WriteLine($"Round {round}");
                string roundWinner = "It's a tie!";

                player.PlayerSelection     = AskPlayerSelection();
                computer.ComputerSelection = GameLogic.RandomComputerSelection();
                Console.WriteLine();

                UserMessages.PrintSelections(player, computer);
                Console.WriteLine();

                GameLogic.PlayRound(player, computer, ref playerScore, ref computerScore, ref round, ref roundWinner);

                UserMessages.PrintRoundWinner(roundWinner);
                Console.WriteLine();

                UserMessages.PrintScore(player, computer, playerScore, computerScore);
                Console.WriteLine();
                Console.WriteLine();

                Console.Write("Press ANY BUTTON to start the second round.");
                Console.ReadLine();
                Console.Clear();
            } while (playerScore < 3 && computerScore < 3);

            Console.Clear();

            UserMessages.AnnounceTheWinner(playerScore, computerScore);
            Console.WriteLine();
            Console.WriteLine();
        }
Пример #3
0
        public ComputerInfoApi()
        {
#if DEBUG
            After.AddItemToEndOfPipeline((ctx) => ctx.Response
                                         .WithHeader("Access-Control-Allow-Origin", "*")
                                         .WithHeader("Access-Control-Allow-Methods", "POST,GET,OPTIONS")
                                         .WithHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-type"));
#endif

            Get("/", x => {
                return(View["Web/index.html"]);
            });
            Get("/GetTemp", x => {
                var cdata = ComputerData.Get();
                cdata.Refresh();//todo 可能需要改成独立线程刷新
                //Dictionary<string, string> result = new Dictionary<string, string>();
                //result.Add("cputemp", cdata.GetCpuTemperature());
                //result.Add("gputemp", cdata.GetGpuTemperature());
                //result.Add("cpuload", cdata.GetCpuLoad());
                //result.Add("ramload", cdata.GetMemoryLoad());
                ComputerInfoModel result = new ComputerInfoModel()
                {
                    CpuLoad  = cdata.GetCpuLoad(),
                    CpuTemp  = cdata.GetCpuTemperature(),
                    RamLoad  = cdata.GetMemoryLoad(),
                    GpuTemp  = cdata.GetGpuTemperature(),
                    DiskLoad = cdata.GetDiskLoad()
                };
                return(Response.AsJson(result));
            });
            Get("/test", x => {
                var cpu = ComputerData.Get().GetCpu();
                if (cpu == null)
                {
                    return("Cant find cpu");
                }

                return(ComputerData.Get().GetTemperature(cpu));
            });
        }
        public async Task <int> BuildPcAsync(ComputerInfoModel model)
        {
            var pcBuildEntity = new ComputerBuildEntity()
            {
                Name = model.Name, Description = model.Description, BuildDate = DateTime.Now
            };

            foreach (var id in model.HardwareItemIds)
            {
                var itemEntity = await _repositoryContainer.HwItems.GetByIdAsync(id);

                pcBuildEntity.BuildItems.Add(new ComputerBuildHardwareItem()
                {
                    ComputerBuildId = pcBuildEntity.Id, HardwareItemId = itemEntity.Id
                });
                pcBuildEntity.TotalCost += itemEntity.Cost;
            }
            await _repositoryContainer.ComputerBuilds.AddAsync(pcBuildEntity);

            var result = await _repositoryContainer.CommitAsync();

            return(result);
        }
Пример #5
0
        /// <summary>
        /// Prüft ob die übergebene Policy Liste filter enthällt die beim übergebenen Computerdatensatz
        /// Treffer auslösen.
        /// </summary>
        /// <param name="comp">Computer bei dem im Model, Bios, OUs und OSType nach Übereinstimmungen gesucht wird.</param>
        /// <param name="pol">Liste der Filter einer Policy.</param>
        /// <returns></returns>
        bool MatchComputerToPolicy(ComputerInfoModel comp, List <Policy> pol)
        {
            var result = true;

            foreach (PropertyInfo property in comp.GetType().GetProperties())
            {
                var matches = pol.Where(c => c.TableColumnName.ToLower().Equals(property.Name.ToLower()));
                if (matches.Any())
                {
                    if (matches.Count() == 1)
                    {
                        if (property.GetValue(comp, null) == null || !property.GetValue(comp, null).ToString().Contains(matches.First().TableColumeValue))
                        {
                            return(false);
                        }
                    }
                    else
                    {
                        var re = false;
                        foreach (var match in matches)
                        {
                            if (property.GetValue(comp, null) != null && property.GetValue(comp, null).ToString().Contains(match.TableColumeValue))
                            {
                                re = true;
                                break;
                            }
                        }
                        if (!re)
                        {
                            return(false);
                        }
                    }
                }
            }
            return(result);
        }
Пример #6
0
 public async Task <ActionResult <int> > Index(ComputerInfoModel model)
 {
     return(await _buildComputerService.BuildPcAsync(model));
 }
 public static void PrintSelections(PlayerInfoModel player, ComputerInfoModel computer)
 {
     Console.WriteLine($"{player.PlayerName} weapon is: {player.PlayerSelection}");
     Console.WriteLine($"{computer.ComputerName} weapon is: {computer.ComputerSelection}");
 }
 public static void PrintScore(PlayerInfoModel player, ComputerInfoModel computer, int playerScore, int computerScore)
 {
     Console.WriteLine("The score is:");
     Console.Write($"{player.PlayerName}: {playerScore} || {computer.ComputerName}: {computerScore}");
 }