Esempio n. 1
0
        public static void GetStatsFromBF4(TextWriter log)
        {
            var sut    = new BF4StatsApi();
            var result = sut.GetOnlinePlayers().Result;

            using (var context = new StatsContext())
            {
                context.PlatformStats.AddRange(result);
                context.SaveChanges();
            }
        }
Esempio n. 2
0
        public void BF4_Stats_ToDatabase()
        {
            var sut    = new BF4StatsApi();
            var result = sut.GetOnlinePlayers().Result;

            using (var context = new StatsContext())
            {
                context.PlatformStats.AddRange(result);
                context.SaveChanges();
            }
        }
Esempio n. 3
0
        public ActionResult Create(RaspberryCreateViewModel newModel)
        {
            if (!ModelState.IsValid)
            {
                return(View("Create", newModel));
            }

            try
            {
                var newEntity = new Raspberry();
                newEntity.Name        = newModel.Name;
                newEntity.location    = newModel.Location;
                newEntity.IPadress    = newModel.IPadress;
                newEntity.RaspberryId = Guid.NewGuid();
                _context.Raspberrys.Add(newEntity);
                _context.SaveChanges();
                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(View("Create", newModel));
            }
        }
Esempio n. 4
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, StatsContext context)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            var optionsBuilder = new DbContextOptionsBuilder <StatsContext>();

            optionsBuilder.UseSqlite("Data Source=stats.db");
            //context.Database.Migrate();
            context.Database.EnsureCreated();

            // seeding the DB with empty keys (having value of 0)
            var keys = new List <string>()
            {
                "lines", "smells", "files", "repos"
            };

            foreach (var key in keys)
            {
                var entry = context.Stats.FirstOrDefault(k => k.key == key);
                if (entry == null)
                {
                    context.Stats.Add(new Stat {
                        key = key, value = 0
                    });
                    context.SaveChanges();
                }
            }

            app.UseHttpsRedirection();

            app.UseRouting();

            app.UseCors();
            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
Esempio n. 5
0
        // Not actual test. Routine to fill database for perfomance testing

        //[Fact]
        public void FillDatabase()
        {
            var serverCount  = 10000;
            var matchesCount = 100 * 2;
            var daysCount    = 14 * 2;
            var usersCount   = 1000000;
            var startDay     = new DateTime(2018, 5, 1);
            var random       = new Random();

            var fileName = @".\test.sqlite";

            var options = new DbContextOptionsBuilder();

            options.UseSqlite($"Filename={fileName}");

            File.Delete(fileName);

            using (var db = new StatsContext(options.Options)) {
                db.Database.EnsureCreated();
                using (db.Database.BeginTransaction()) {
                    db.Endpoints.AddRange(Enumerable.Range(0, serverCount - 1).Select(i =>
                                                                                      new Endpoint {
                        Id        = $"Details:{i}",
                        GameModes = "",
                        Name      = $"Endpoint Name {i}"
                    }));
                    db.SaveChanges();
                    db.Database.CommitTransaction();
                }
            }

            for (var endpoint = 0; endpoint < serverCount; endpoint++)
            {
                var days = random.Next(daysCount);
                for (var day = 1; day <= days; day++)
                {
                    var matches = random.Next(matchesCount);
                    using (var db = new StatsContext(options.Options)) {
                        using (db.Database.BeginTransaction()) {
                            db.Matches.AddRange(Enumerable.Range(0, matches).Select(x =>
                                                                                    new Match {
                                EndpointId  = $"Details:{endpoint}",
                                FragLimit   = random.Next(30) + 1,
                                GameMode    = $"DM{random.Next(10)}",
                                Map         = $"Map{random.Next(100)}",
                                TimeElapsed = 30.2F,
                                TimeLimit   = random.Next(100) + 1,
                                Timestamp   = startDay.AddDays(day).AddMinutes(random.Next(60 * 23)),
                                Scoreboard  = Enumerable.Range(0, random.Next(100)).Select(p =>
                                                                                           new Scoreboard {
                                    Name   = $"User{random.Next(usersCount)}",
                                    Deaths = random.Next(100),
                                    Frags  = random.Next(100),
                                    Kills  = random.Next(100),
                                    Rating = (float)p
                                }
                                                                                           ).ToArray()
                            }
                                                                                    ));
                            db.SaveChanges();
                            db.Database.CommitTransaction();
                        }
                    }
                }
            }
        }
Esempio n. 6
0
 public void Post([FromBody] Player player)
 {
     _db.Players.Add(player);
     _db.SaveChanges();
 }
Esempio n. 7
0
        public async Task Run()
        {
            _logger.LogInformation("RaspberrySyncJob started");

            // load all raspberry from database and loop
            // foreach => _context.Raspberry
            foreach (var raspy in _context.Raspberrys.AsNoTracking())
            {
                var ipaddress = raspy.IPadress;

                var    spezificDate = _context.MeasurePoints.OrderByDescending(x => x.Date).FirstOrDefault();
                string Date         = spezificDate.Date.ToString("yyyy-MM-dd hh:mm:ss");
                string url          = "http://" + ipaddress + ":8080/DataSince/" + Date;

                // Raspberry.IdAdress => $"{http://{idaddress}/}
                //string url = "http://" + ipaddress + ":8080";

                // HttpClient
                HttpClient          client   = new HttpClient();
                HttpResponseMessage response = await client.GetAsync(url);

                response.EnsureSuccessStatusCode();

                // response => json
                string json = await response.Content.ReadAsStringAsync();

                // json => Deserialize to Object (Newtonsoft.Json) => JsonConverter.DeserializeObject<OBJECT>(json)
                var raspberry = JsonConvert.DeserializeObject <List <RaspyData> >(json);
                List <RaspyData> SortedList = raspberry.OrderByDescending(o => o.Datum).ToList();


                foreach (var newMeasurePoint in SortedList)
                {
                    var date = Convert.ToDateTime(newMeasurePoint.Datum);
                    var mp   = _context
                               .MeasurePoints
                               .SingleOrDefault(
                        x => x.Date == date &&
                        x.Raspberry.IPadress == raspy.IPadress);

                    if (mp == null)
                    {
                        var entity = new MeasurePoint();
                        entity.MeasurePointId = Guid.NewGuid();
                        entity.Date           = DateTime.Parse(newMeasurePoint.Datum);
                        entity.Humidity       = Decimal.Parse(newMeasurePoint.Humidity, CultureInfo.InvariantCulture);
                        entity.Temp           = Decimal.Parse(newMeasurePoint.Temperatur, CultureInfo.InvariantCulture);

                        entity.RaspberryId = raspy.RaspberryId;

                        _context.MeasurePoints.Add(entity);
                    }
                }
            }

            try
            {
                _context.SaveChanges();
            }
            catch (DbUpdateException ex)
            {
                _logger.LogError("Failed during save MeasurePoints", ex);
                throw;
            }

            _logger.LogInformation("RaspberrySyncJob stoped");
        }