Exemple #1
0
        public IActionResult EditSeason(SeasonRequest season)
        {
            var seasonModel = Mapper.Map <Season>(season);

            this.seasonService.EditSeason(seasonModel);
            return(Ok());
        }
        public string GetSeasonMatches(SeasonRequest request)
        {
            //https://www.whoscored.com/Regions/252/Tournaments/2/Seasons/5826

            List <MatchRequest> matchList = _whoscoredService.GetSeasonMatches(request);

            return(JsonConvert.SerializeObject(matchList));
        }
        public List <MatchRequest> GetSeasonMatches(SeasonRequest request)
        {
            IWebDriver driver = new ChromeDriver(Path.Combine(EmbeddedData.GetAssemblyDirectory(), "App_Data"));

            SeasonMatches seasonMatches = new SeasonMatches(request, driver);

            driver.Quit();

            return(seasonMatches.MatchRequests);
        }
Exemple #4
0
        public Config GetConfig(string[] args)
        {
            var seasonRequest = new SeasonRequest();

            string threads         = args[0];
            string url             = args[1];
            string league          = args[2];
            string years           = args[3];
            string saveDetailsPath = args[4];

            seasonRequest.League = league;
            seasonRequest.Years  = years;

            saveDetailsPath = string.Concat(saveDetailsPath, "\\", league, "-", years);

            string allMatchesRequest = _whoScoredController.GetSeasonMatches(seasonRequest);

            List <MatchRequest> requestsList = JsonConvert.DeserializeObject <List <MatchRequest> >(allMatchesRequest);

            XmlDocument myxml      = new XmlDocument();
            XmlElement  cfgTag     = myxml.CreateElement("cfg");
            XmlElement  threadsTag = myxml.CreateElement("threads");

            threadsTag.InnerText = threads;

            XmlElement urlTag = myxml.CreateElement("url");

            urlTag.InnerText = url;

            XmlElement saveDetailsTag = myxml.CreateElement("save-path");

            saveDetailsTag.InnerText = saveDetailsPath;

            XmlElement requestsTag = myxml.CreateElement("requests");

            foreach (var singleRequest in requestsList)
            {
                XmlElement singleRequestTag = myxml.CreateElement("request");
                singleRequestTag.SetAttribute("home-id", singleRequest.HomeTeamId.ToString());
                singleRequestTag.SetAttribute("date", singleRequest.Date);
                requestsTag.AppendChild(singleRequestTag);
            }

            cfgTag.AppendChild(threadsTag);
            cfgTag.AppendChild(urlTag);
            cfgTag.AppendChild(saveDetailsTag);
            cfgTag.AppendChild(requestsTag);
            myxml.AppendChild(cfgTag);

            return(new Config(myxml));
        }
Exemple #5
0
        public void TestGetSeasonMatches()
        {
            string expectedSeasonRequests = EmbeddedData.AsString("seasonMatches-seriea-2016-2017.txt");
            var    expectedJson           = JArray.Parse(expectedSeasonRequests);

            var testSeasonRequest = new SeasonRequest
            {
                League = "Serie A",
                Years  = "2016/2017"
            };

            string actualSeasonRequests = _controller.GetSeasonMatches(testSeasonRequest);
            var    actualJson           = JArray.Parse(actualSeasonRequests);

            Assert.AreEqual(expectedJson.ToString(), actualJson.ToString());
        }
Exemple #6
0
        public async Task <IActionResult> Post(SeasonRequest request)
        {
            try
            {
                Season season = _mapper.Map(request);

                season = await _repository.AddAsync(season);

                return(CreatedAtAction(nameof(GetById), new { id = season.Id }, _mapper.Map(season)));
            }

            catch (DataStoreException e)
            {
                _logger.LogError(e.Message, e, request);
                return(StatusCode(StatusCodes.Status500InternalServerError, e.Message));
            }
        }
Exemple #7
0
        public override Task <SeasonReply> GetZodiacSign(SeasonRequest request, ServerCallContext context)
        {
            string            result = "Invalid";
            List <ZodiacSign> list   = new List <ZodiacSign>();

            string jsonString = File.ReadAllText(@"D:\FACULT 2020-2021\CNA\zodiac-signs\Seasons\SpringService\Resources\spring.json");

            list = JsonSerializer.Deserialize <List <ZodiacSign> >(jsonString);

            foreach (var sign in list)
            {
                if (IsBetween(request.Date, sign.StartDate, sign.EndDate))
                {
                    result = sign.Name;
                }
            }

            return(Task.FromResult(new SeasonReply
            {
                ZodiacSign = result
            }));
        }
        public override Task <SeasonResponse> GetSeason(SeasonRequest request, ServerCallContext context)
        {
            string startDate;
            string endDate;
            string season;
            string pattern = "MM/dd/yyyy";
            var    file    = File.ReadAllLines("Seasons.txt");

            DateTime requestParsed;
            DateTime startParsed;
            DateTime endParsed;

            for (var i = 0; i < file.Length; i += 3)
            {
                startDate = file.ElementAt(i).ToString();
                endDate   = file.ElementAt(i + 1).ToString();
                season    = file.ElementAt(i + 2).ToString();

                if (DateTime.TryParseExact(startDate, pattern, null, DateTimeStyles.None, out startParsed) &&
                    DateTime.TryParseExact(endDate, pattern, null, DateTimeStyles.None, out endParsed) &&
                    DateTime.TryParseExact(request.Date, pattern, null, DateTimeStyles.None, out requestParsed))
                {
                    if (((startParsed.Month < requestParsed.Month) ||
                         (startParsed.Month == requestParsed.Month && startParsed.Day <= requestParsed.Day)) &&
                        ((endParsed.Month > requestParsed.Month) ||
                         (endParsed.Month == requestParsed.Month) && endParsed.Day >= requestParsed.Day))
                    {
                        return(Task.FromResult(new SeasonResponse {
                            Season = season
                        }));
                    }
                }
            }
            return(Task.FromResult(new SeasonResponse {
                Season = "Could not find a season for this date!"
            }));
        }
Exemple #9
0
        public async Task <IActionResult> Put(Guid id, SeasonRequest request)
        {
            try
            {
                Season season = await _repository.GetByIdAsync(id);

                if (season == null)
                {
                    return(NotFound());
                }

                _mapper.Map(season, request);

                await _repository.UpdateAsync(season);

                return(Ok());
            }

            catch (DataStoreException e)
            {
                _logger.LogError(e.Message, e, request);
                return(StatusCode(StatusCodes.Status500InternalServerError, e.Message));
            }
        }
        public List <MatchRequest> GetSeasonMatches(SeasonRequest request)
        {
            List <MatchRequest> seasonMatches = _scraper.GetSeasonMatches(request);

            return(seasonMatches);
        }
Exemple #11
0
        public SeasonMatches(SeasonRequest request, IWebDriver driver)
        {
            MatchRequests = new List <MatchRequest>();
            string years  = request.Years;
            string league = request.League;

            var wait        = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
            var startingUrl = "https://www.whoscored.com/";

            driver.Navigate().GoToUrl(startingUrl);

            IWebElement leagueButton             = driver.FindElement(By.CssSelector(Selectors.GetSelector("DetailedTournamentsButton")));
            IEnumerable <IWebElement> leagueList = driver.FindElements(By.CssSelector(Selectors.GetSelector("LeagueList")));

            if (leagueList.Any() && !leagueList.First().Displayed)
            {
                leagueButton.Click();
            }

            IWebElement requestedLeague = leagueList.FirstOrDefault(x => x.Text == league);

            if (requestedLeague != null)
            {
                requestedLeague.Click();
            }

            IWebElement seasonDropDown            = driver.FindElement(By.CssSelector(Selectors.GetSelector("YearsList")));
            IEnumerable <IWebElement> seasonsList = seasonDropDown.FindElements(By.CssSelector("option"));

            IWebElement requestedYears = seasonsList.FirstOrDefault(x => x.Text == years);

            if (requestedYears != null)
            {
                requestedYears.Click();
            }

            IWebElement datePicker = wait.Until(x => driver.FindElement(By.CssSelector(Selectors.GetSelector("DatePicker"))));

            IWebElement datePickerButton = wait.Until(x => driver.FindElement(By.CssSelector(Selectors.GetSelector("DatePickerButton"))));

            if (!datePicker.Displayed)
            {
                datePickerButton.Click();
            }

            IWebElement firstYear = wait.Until(
                ExpectedConditions.ElementIsVisible(By.CssSelector(Selectors.GetSelector("FirstYear"))));

            if (!firstYear.GetAttribute("class").Split(' ').Contains("selected"))
            {
                firstYear.Click();
            }

            IEnumerable <IWebElement> activeMonths = driver.FindElements(By.CssSelector(Selectors.GetSelector("ActiveMonths")));

            activeMonths.First().Click();

            IEnumerable <IWebElement> activeWeeks = driver.FindElements(By.CssSelector(Selectors.GetSelector("ActiveWeeks")));

            activeWeeks.First().Click();

            ScrapeSeasonMatches(driver);
        }
Exemple #12
0
 public List <MatchRequest> GetSeasonMatches(SeasonRequest request)
 {
     return(_repository.GetSeasonMatches(request));
 }
        public ActionResult <SeasonResponse> UpdateSeason([FromServices] ISaveModel <Season> saveSeason, [FromRoute] Guid seasonId, SeasonRequest request)
        {
            var season = Mapper.Map <Season>(request);

            season.Id = seasonId;

            season = saveSeason.Execute(season);
            var response = Mapper.Map <SeasonResponse>(season);

            return(new OkObjectResult(response));
        }
        public ActionResult <SeasonResponse> CreateSeason([FromServices] ISaveModel <Season> saveSeason, SeasonRequest request)
        {
            var season   = saveSeason.Execute(Mapper.Map <Season>(request));
            var response = Mapper.Map <SeasonResponse>(season);

            return(new OkObjectResult(response));
        }