Exemplo n.º 1
0
        public async Task <IActionResult> Edit(string id, [Bind("Id,_1,_X,_2,_1X,_X2,_12")] Type type)
        {
            if (id != type.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(type);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TypesExists(type.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(type));
        }
Exemplo n.º 2
0
        public async Task PostAdd(string First, string Second, decimal _1, decimal _X, decimal _2, decimal _1X,
                                  decimal _X2, decimal _12, string league, bool topMatch, string time)
        {
            var dateNow = DateTime.Now;
            var hour    = time.Split(":");
            var type    = new Type();

            type._1  = _1;
            type._X  = _X;
            type._2  = _2;
            type._1X = _1X;
            type._X2 = _X2;
            type._12 = _12;
            await _context.Type.AddAsync(type);

            await _context.SaveChangesAsync();

            var firstTeam = await _context.Team.Include(l => l.League).Where(f => f.Name == First).FirstOrDefaultAsync();

            var secondTeam = await _context.Team.Include(l => l.League).Where(f => f.Name == Second).FirstOrDefaultAsync();

            var leagueTeam = await _context.League.Include(s => s.Sport).Where(l => l.Name == league).FirstOrDefaultAsync();

            var match = new Match();

            match.HomeTeam = firstTeam;
            match.AwayTeam = secondTeam;
            match.Type     = type;
            match.TopMatch = topMatch;
            match.Sport    = leagueTeam.Sport;
            match.Time     = new DateTime(dateNow.Year, dateNow.Month, dateNow.Day, Int32.Parse(hour[0]), Int32.Parse(hour[1]), 00);
            await _context.Match.AddAsync(match);

            await _context.SaveChangesAsync();
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Create([Bind("Id,_1,_X,_2,_1X,_X2,_12")] Type type)
        {
            if (ModelState.IsValid)
            {
                _context.Add(type);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(type));
        }
        public async Task GetOffer()
        {
            using (var scope = _scopeFactory.CreateScope())
            {
                var            _context  = scope.ServiceProvider.GetRequiredService <BettingApplicationContext>();
                var            date      = DateTime.Now;
                var            yesterday = date.AddDays(-1).ToString("yyyy-MM-dd");
                var            tommorow  = date.AddDays(1).ToString("yyyy-MM-dd");
                string         url       = $"https://sportdataprovider.volcanobet.me/api/public/prematch/SportEvents?SportId=1&from={yesterday}T23:00:00.000Z&to={tommorow}T06:00:00.000Z&timezone=-60&clientType=WebConsumer&v=1.1.496-rc6&lang=sr-Latn-EN";
                string         html;
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.AutomaticDecompression = DecompressionMethods.GZip;
                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                    using (Stream stream = response.GetResponseStream())
                        using (StreamReader reader = new StreamReader(stream))
                        {
                            html = reader.ReadToEnd();
                        }
                var offer = JsonConvert.DeserializeObject <OfferModel>(html);
                var sport = await _context.Sport.Where(s => s.Name == offer.Sport.Name).FirstOrDefaultAsync();

                if (sport == null)
                {
                    sport      = new Sport();
                    sport.Name = offer.Sport.Name;
                    _context.AddRange(sport);
                    _context.SaveChanges();
                }

                foreach (var location in offer.Locations)
                {
                    foreach (var league in location.Leagues)
                    {
                        var leagueDatabase = await _context.League.Where(l => l.Name == $"{location.Name} - {league.Name}")
                                             .SingleOrDefaultAsync();

                        if (leagueDatabase == null)
                        {
                            leagueDatabase       = new League();
                            leagueDatabase.Name  = $"{location.Name} - {league.Name}";
                            leagueDatabase.Sport = sport;
                            _context.League.AddRange(leagueDatabase);
                            _context.SaveChanges();
                        }

                        foreach (var eventDate in league.EventDateGroups)
                        {
                            foreach (var eventDateEvent in eventDate.Events)
                            {
                                var matchModel = new Match();
                                matchModel.Competition = league.Name;
                                matchModel.Id          = eventDateEvent.Id;
                                var types = new Type();
                                matchModel.Sport = sport;
                                matchModel.Time  = eventDateEvent.Fixture.StartDate.AddHours(1);
                                var firstTeam = await _context.Team
                                                .Where(t => t.Name == eventDateEvent.Fixture.Participants[0].Name)
                                                .FirstOrDefaultAsync();

                                var secondTeam = await _context.Team
                                                 .Where(t => t.Name == eventDateEvent.Fixture.Participants[1].Name)
                                                 .FirstOrDefaultAsync();

                                if (firstTeam == null)
                                {
                                    firstTeam        = new Team();
                                    firstTeam.League = leagueDatabase;
                                    firstTeam.Name   = eventDateEvent.Fixture.Participants[0].Name;
                                    _context.Team.AddRange(firstTeam);
                                    matchModel.HomeTeam = firstTeam;
                                }

                                if (firstTeam != null)
                                {
                                    matchModel.HomeTeam = firstTeam;
                                }
                                if (secondTeam == null)
                                {
                                    secondTeam        = new Team();
                                    secondTeam.League = leagueDatabase;
                                    secondTeam.Name   = eventDateEvent.Fixture.Participants[1].Name;
                                    _context.Team.AddRange(secondTeam);
                                    matchModel.AwayTeam = secondTeam;
                                }

                                if (secondTeam != null)
                                {
                                    matchModel.AwayTeam = secondTeam;
                                }
                                foreach (var market in eventDateEvent.Markets)
                                {
                                    if (market.Name == "1x2")
                                    {
                                        foreach (var pick in market.Picks)
                                        {
                                            if (pick.Name == "1")
                                            {
                                                types._1 = pick.Odds;
                                            }
                                            if (pick.Name == "x")
                                            {
                                                types._X = pick.Odds;
                                            }
                                            if (pick.Name == "2")
                                            {
                                                types._2 = pick.Odds;
                                            }
                                        }
                                    }

                                    if (market.Name == "Double chance")
                                    {
                                        foreach (var pick in market.Picks)
                                        {
                                            if (pick.Name == "1x")
                                            {
                                                types._1X = pick.Odds;
                                            }
                                            if (pick.Name == "x2")
                                            {
                                                types._X2 = pick.Odds;
                                            }
                                            if (pick.Name == "12")
                                            {
                                                types._12 = pick.Odds;
                                            }
                                        }
                                    }
                                }

                                var matchExist = await _context.Match
                                                 .Include(h => h.HomeTeam)
                                                 .Include(a => a.AwayTeam)
                                                 .Where(m => m.HomeTeam == matchModel.HomeTeam && m.AwayTeam == matchModel.AwayTeam &&
                                                        m.Time == matchModel.Time).FirstOrDefaultAsync();

                                if (matchExist == null && matchModel.HomeTeam != null && matchModel.AwayTeam != null)
                                {
                                    matchModel.Type     = types;
                                    matchModel.TopMatch = false;
                                    matchModel.Hide     = false;
                                    _context.Match.Add(matchModel);
                                    _context.SaveChanges();
                                }
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 5
0
        public async Task <IActionResult> ImportDatabase()
        {
            string path = @"C:\Users\antee\Documents\Visual Studio 2019\Projects\BettingApplication\MatchesImport.csv";

            using (var reader = new StreamReader(path))
            {
                while (!reader.EndOfStream)
                {
                    try
                    {
                        var line          = reader.ReadLine();
                        var values        = line.Split(';');
                        var match         = new MatchViewModel();
                        var sportFootball = _context.Sport.SingleOrDefault(s => s.Name.Contains("Football"));
                        var hour          = values[8].Split(':');
                        var firstTeam     = values[0].Split('"');
                        var secondTeam    = values[1];
                        var time          = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day,
                                                         Int32.Parse(hour[0]), Int32.Parse(hour[1]), 00);
                        var HomeTeam = _context.Team.FirstOrDefault(s => s.Name.Contains(firstTeam[1]));
                        var AwayTeam = _context.Team.FirstOrDefault(s => s.Name.Contains(values[1]));
                        if (HomeTeam == null || AwayTeam == null)
                        {
                            ModelState.AddModelError("Error", $"Wrong name: {firstTeam[1]} or {values[1]}");
                            return(View());
                        }
                        var Time = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day,
                                                Int32.Parse(hour[0]), Int32.Parse(hour[1]), 00);
                        var Types = new Type
                        {
                            _1  = Convert.ToDecimal(values[2]),
                            _X  = Convert.ToDecimal(values[3]),
                            _2  = Convert.ToDecimal(values[4]),
                            _1X = Convert.ToDecimal(values[5]),
                            _X2 = Convert.ToDecimal(values[6]),
                            _12 = Convert.ToDecimal(values[7])
                        };
                        var Sport = sportFootball;
                        if ((await _context.Match.Where(t => t.HomeTeam.Name == firstTeam[1] && t.AwayTeam.Name == secondTeam && t.Time == time).FirstOrDefaultAsync()) == null)
                        {
                            _context.Match.AddRange(
                                new Match
                            {
                                HomeTeam = _context.Team.First(s => s.Name.Contains(firstTeam[1])),
                                AwayTeam = _context.Team.First(s => s.Name.Contains(values[1])),
                                Time     = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day, Int32.Parse(hour[0]), Int32.Parse(hour[1]), 00),
                                Type     = new Type {
                                    _1 = Convert.ToDecimal(values[2]), _X = Convert.ToDecimal(values[3]), _2 = Convert.ToDecimal(values[4]), _1X = Convert.ToDecimal(values[5]), _X2 = Convert.ToDecimal(values[6]), _12 = Convert.ToDecimal(values[7])
                                },
                                Sport = sportFootball
                            });
                            _context.SaveChanges();
                        }
                    }
                    catch (Exception e)
                    {
                        ModelState.AddModelError("Error", $"{e}");
                        return(View());
                    }
                }
                return(View());
            }
        }