Add project files.

This commit is contained in:
2022-09-14 16:26:19 -04:00
parent dd96dcd05e
commit 160f5c7130
7 changed files with 157 additions and 0 deletions

View File

@ -0,0 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="BinaryDad.Extensions" Version="21.4.20.3" />
<PackageReference Include="Microsoft.Extensions.Http" Version="6.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\BinaryDad.AacpsBusAlert\BinaryDad.AacpsBusAlert.csproj" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,45 @@
using BinaryDad.Extensions;
using Newtonsoft.Json;
using System.Text.RegularExpressions;
namespace BinaryDad.AacpsBusAlert.Services
{
public class BusRouteService
{
private readonly HttpClient httpClient;
public BusRouteService(IHttpClientFactory httpClientFactory)
{
httpClient = httpClientFactory.CreateClient();
}
public async Task<ICollection<BusRoute>> GetBusRoutesAsync()
{
var url = "https://busstops.aacps.org/public/BusRouteIssues.aspx";
var content = await httpClient.GetStringAsync(url);
var dataArrayMatch = Regex.Match(content, "var dataArray \\= (.*)\\;");
if (dataArrayMatch.Success && dataArrayMatch.Groups.Count == 2)
{
var dataArray = dataArrayMatch.Groups[1].Value;
var parsedArray = JsonConvert.DeserializeObject<string[][]>(dataArray);
return parsedArray
.Select(r => new BusRoute
{
BusNumber = r[0].To<int>(),
SubBusNumber = r[1].To<int>(),
Schools = r[2],
Schedules = r[3],
Impact = r[4]
})
.ToList();
}
throw new ApplicationException("Unable to parse bus route page");
}
}
}