Ejemplo n.º 1
0
        public async Task <IActionResult> GetMatchPlayedStatus(GetStatsModel statsModel)
        {
            var data = await _repoServiceFactory.MatchRepoService.FindAsync(statsModel.Start, statsModel.End);

            var interval = new TimeSpan(0, 0, statsModel.LenghtInSec);

            var dict = new Dictionary <DateTime, decimal>();

            for (DateTime a = statsModel.Start; a < statsModel.End; a += interval)
            {
                var rake1 = data.Where(user => user.Created > a && user.Created < (a + interval)).ToList();
                dict.Add(a, rake1.Count);
            }

            var res = new StatsResponse
            {
                End    = statsModel.End,
                Start  = statsModel.Start,
                Text   = "Matches played",
                Values = new List <Dictionary <string, object> >()
            };

            foreach (var point in dict)
            {
                var dict1 = new Dictionary <string, object>
                {
                    { "Value", point.Value },
                    { "Time", point.Key },
                };
                res.Values.Add(dict1);
            }

            return(Ok(res));
        }
        public async Task <StatsResponse> GetStatsAsync(CancellationToken cancellationToken)
        {
            var output = new StatsResponse();

            using (var dbConnection = Connection())
            {
                dbConnection.Open();
                var results = await dbConnection.QueryAsync <Result>(_totalsSql);


                //Total image
                output.TopStats.AddRange(results);
            }

            using (var dbConnection = Connection())
            {
                dbConnection.Open();
                var results = await dbConnection.QueryAsync <Result>(_keywordsSql);


                //Total image
                output.TopKeywords.AddRange(results);
            }
            output.AsOf = DateTime.Now;
            return(output);
        }
Ejemplo n.º 3
0
 public async Task GetPlayerStatsAsync_ShouldRaiseArgumentException_WhenNoPlayerNameProvided()
 {
     //Arrange
     var client = new PUBGStatsClient("dummy");
     //Act
     StatsResponse responseTask = await client.GetPlayerStatsAsync(null).ConfigureAwait(false);
 }
Ejemplo n.º 4
0
        public async Task <IActionResult> GetState()
        {
            GameStatsModel stats = await _seeBattleGameService.GetGameStats();

            StatsResponse response = _contractMapper.Map(stats);

            return(new JsonResult(response));
        }
Ejemplo n.º 5
0
 internal StatsEventArgs(StatsResponse response)
 {
     Players        = response.Players;
     PlayingPlayers = response.PlayingPlayers;
     Uptime         = new TimeSpan(response.Uptime);
     Memory         = response.Memory;
     Frames         = response.Frames;
     Cpu            = response.Cpu;
 }
Ejemplo n.º 6
0
        public OkObjectResult Get()
        {
            var stats = new StatsResponse
            {
                Total   = _statsProvider.GetJobCount(),
                Average = _statsProvider.GetAverageProcessTimeInMilliseconds()
            };

            return(Ok(stats));
        }
Ejemplo n.º 7
0
        public void TestGetStats()
        {
            Mock <IDatastore> mockDatastore = new Mock <IDatastore>();

            mockDatastore.Setup(_statsExpectation).Returns(_jsonData);

            WhmcsApi      instance = new WhmcsApi("User", "Pass", "Website", mockDatastore.Object);
            StatsResponse stats    = instance.GetStats();

            Assert.Equal("123", stats.OrdersYesterdayPending);
        }
Ejemplo n.º 8
0
        public async Task <IActionResult> Rake(GetStatsModel getStatsModel)
        {
            var res = new StatsResponse
            {
                End    = getStatsModel.End,
                Text   = "All combined",
                Start  = getStatsModel.Start,
                Values = new List <Dictionary <string, object> >()
            };

            var data = await _repoServiceFactory.RakeItemRepoService.GetAll();

            var rake     = data.Where(r => r.Received > getStatsModel.Start && r.Received < getStatsModel.End).ToList();
            var interval = new TimeSpan(0, 0, getStatsModel.LenghtInSec);

            var itemDescIds      = rake.Select(i => i.DescriptionId).ToList();
            var itemDescriptions = await _repoServiceFactory.ItemDescriptionRepoService.FindAsync(itemDescIds);

            var list = new List <RakeAndItemDescripton>();

            foreach (var itemDescription in itemDescriptions)
            {
                foreach (var item in rake)
                {
                    if (item.DescriptionId != itemDescription.Id)
                    {
                        continue;
                    }
                    list.Add(new RakeAndItemDescripton {
                        RakeItem = item, ItemDescription = itemDescription
                    });
                }
            }

            for (var a = getStatsModel.Start; a < getStatsModel.End; a += interval)
            {
                var rake1 = list.Where(r => r.RakeItem.Received > a && r.RakeItem.Received < (a + interval)).ToList();
                var sum   = rake1.Sum(r => r.ItemDescription.Value);
                res.Values.Add(new Dictionary <string, object>
                {
                    { "Value", sum },
                    { "Time", a },
                });
            }

            return(Ok(res));
        }
        public void GetPlayerStatsAsync_ShouldRaiseArgumentException_WhenNoPlayerNameProvided()
        {
            //Arrange
            var client = new PUBGStatsClient("dummy");

            //Act
            try
            {
                StatsResponse responseTask = client.GetPlayerStatsAsync(null).Result;
            }
            catch (Exception e)
            {
                //Assert
                //In case of awaitable tasks, aggregate exception is thrown, which should contain expected ArgumentException.
                Assert.IsInstanceOfType(e.InnerException, typeof(ArgumentException));
            }
        }
Ejemplo n.º 10
0
        public async Task <IActionResult> GetCosts([FromRoute] string period, [FromQuery] long vehicleId)
        {
            StatsPeriod periodValue;

            if (!Enum.TryParse(period, true, out periodValue))
            {
                return(NotFound());
            }

            var stats = new StatsResponse()
            {
                FuelCost      = await _statsService.GetCost(periodValue, vehicleId, ExpenseType.Fuel),
                FuelUsage     = await _statsService.GetFuelUsage(periodValue, vehicleId),
                InsuranceCost = await _statsService.GetCost(periodValue, vehicleId, ExpenseType.Insurance),
                OtherCost     = await _statsService.GetCost(periodValue, vehicleId, ExpenseType.Other),
                ServiceCost   = await _statsService.GetCost(periodValue, vehicleId, ExpenseType.Service),
                SparePartCost = await _statsService.GetCost(periodValue, vehicleId, ExpenseType.SparePart),
                Total         = await _statsService.GetCost(periodValue, vehicleId)
            };

            return(Ok(stats));
        }
Ejemplo n.º 11
0
            public async void Should_Return_OkObjectResult_with_one_Stat()
            {
                //Arrange
                var expectedResult = new Stats()
                {
                    StatsId = 1, Time = 20
                };

                var finalResult = new StatsResponse()
                {
                    StatsId = 1, Time = 30
                };

                StatsRepository
                .Setup(x => x.Get(expectedResult.StatsId))
                .ReturnsAsync(expectedResult).Verifiable();

                UnitofWorkMock
                .Setup(m => m.Stats)
                .Returns(StatsRepository.Object);

                MapperMock
                .Setup(m => m.Map <StatsResponse>(expectedResult))
                .Returns(finalResult);

                //Act
                var result = await _uut.Get(expectedResult.StatsId);

                //Assert
                StatsRepository.Verify();
                MapperMock.VerifyAll();

                var okResult = Assert.IsType <OkObjectResult>(result);

                Assert.Same(finalResult, okResult.Value);
            }
Ejemplo n.º 12
0
        public async Task <IActionResult> Rake(GetStatsModel getRakeModel, string gameModeType)
        {
            var gameMode = await _repoServiceFactory.GameModeRepoService.Find(gameModeType);

            if (gameMode == null)
            {
                return(BadRequest($"No game mode found for type {gameModeType}"));
            }

            var data = await _repoServiceFactory.RakeItemRepoService.FindFromGameModeIdAsync(new List <int>
            {
                gameMode.Id
            });

            var rake     = data.Where(r => r.Received > getRakeModel.Start && r.Received < getRakeModel.End).ToList();
            var interval = new TimeSpan(0, 0, getRakeModel.LenghtInSec);

            var itemDescIds      = rake.Select(i => i.DescriptionId).ToList();
            var itemDescriptions = await _repoServiceFactory.ItemDescriptionRepoService.FindAsync(itemDescIds);

            var list = new List <RakeAndItemDescripton>();

            foreach (var itemDescription in itemDescriptions)
            {
                foreach (var item in rake)
                {
                    if (item.DescriptionId != itemDescription.Id)
                    {
                        continue;
                    }
                    list.Add(new RakeAndItemDescripton {
                        RakeItem = item, ItemDescription = itemDescription
                    });
                }
            }

            var dict = new Dictionary <DateTime, decimal>();

            for (DateTime a = getRakeModel.Start; a < getRakeModel.End; a += interval)
            {
                var rake1 = list.Where(r => r.RakeItem.Received > a && r.RakeItem.Received < (a + interval)).ToList();
                dict.Add(a, rake1.Sum(r => r.ItemDescription.Value));
            }

            var res = new StatsResponse
            {
                End    = getRakeModel.End,
                Text   = gameMode.Type,
                Start  = getRakeModel.Start,
                Values = new List <Dictionary <string, object> >()
            };

            foreach (var point in dict)
            {
                var dict1 = new Dictionary <string, object>
                {
                    { "Value", point.Value },
                    { "Time", point.Key },
                };
                res.Values.Add(dict1);
            }

            return(Ok(res));
        }
Ejemplo n.º 13
0
        private void ProcessStats(ref Utf8JsonReader reader, out StatsResponse statsResponse)
        {
            //    {"playingPlayers":0,"op":"stats",
            //    "memory":{"reservable":1234567890,"used":1234567890,"free":1234567890,"allocated":1234567890},
            //    "players":0,"cpu":{"cores":4,"systemLoad":0,"lavalinkLoad":0.27354256456787324},"uptime":33731}

            statsResponse = new StatsResponse();

            if (reader.ValueTextEquals("playingPlayers") && reader.Read())
            {
                statsResponse.Players = reader.GetInt32();
            }

            while (reader.Read())
            {
                if (reader.TokenType == JsonTokenType.EndObject)
                {
                    break;
                }

                if (reader.TokenType != JsonTokenType.PropertyName)
                {
                    continue;
                }

                // MEMORY OBJECT
                if (reader.ValueTextEquals("memory") && reader.Read())
                {
                    var memory = new Memory();
                    while (reader.Read())
                    {
                        if (reader.TokenType == JsonTokenType.EndObject)
                        {
                            break;
                        }

                        if (reader.ValueTextEquals("free") && reader.Read())
                        {
                            memory.Free = reader.GetInt32();
                        }
                        else if (reader.ValueTextEquals("used") && reader.Read())
                        {
                            memory.Used = reader.GetInt32();
                        }
                        else if (reader.ValueTextEquals("allocated") && reader.Read())
                        {
                            memory.Allocated = reader.GetInt32();
                        }
                        else if (reader.ValueTextEquals("reservable") && reader.Read())
                        {
                            memory.Reservable = reader.GetInt32();
                        }
                    }

                    statsResponse.Memory = memory;
                }
                else if (reader.ValueTextEquals("players") && reader.Read())
                {
                    statsResponse.Players = reader.GetInt32();
                }

                // CPU RESPOSNE
                else if (reader.ValueTextEquals("cpu") && reader.Read())
                {
                    var cpu = new Cpu();
                    while (reader.Read())
                    {
                        if (reader.TokenType == JsonTokenType.EndObject)
                        {
                            break;
                        }

                        if (reader.ValueTextEquals("cores") && reader.Read())
                        {
                            cpu.Cores = reader.GetInt32();
                        }
                        else if (reader.ValueTextEquals("systemLoad") && reader.Read())
                        {
                            cpu.SystemLoad = reader.GetDouble();
                        }
                        else if (reader.ValueTextEquals("lavalinkLoad") && reader.Read())
                        {
                            cpu.LavalinkLoad = reader.GetDouble();
                        }
                    }

                    statsResponse.Cpu = cpu;
                }

                else if (reader.ValueTextEquals("uptime") && reader.Read())
                {
                    statsResponse.Uptime = reader.GetInt64();
                }

                // FRAMES (MIGHT THROW EXCEPTION)
                else if (reader.ValueTextEquals("frames"))
                {
                    var frames = new Frames();

                    while (reader.Read())
                    {
                        if (reader.TokenType == JsonTokenType.EndObject)
                        {
                            break;
                        }

                        if (reader.ValueTextEquals("sent") && reader.Read())
                        {
                            frames.Sent = reader.GetInt32();
                        }
                        else if (reader.ValueTextEquals("nulled") && reader.Read())
                        {
                            frames.Nulled = reader.GetInt32();
                        }
                        else if (reader.ValueTextEquals("deficit") && reader.Read())
                        {
                            frames.Deficit = reader.GetInt32();
                        }
                    }

                    statsResponse.Frames = frames;
                }
            }
        }
Ejemplo n.º 14
0
 public EventStats(StatsResponse stats)
 {
     Stats = stats;
 }