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