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); } } }
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(); }
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); }
/// <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); }
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}"); }