├── Backend └── HorseSearch │ ├── obj │ ├── Debug │ │ ├── net9.0 │ │ │ ├── HorseSea.26FBD9FC.Up2Date │ │ │ ├── HorseSearch.MvcApplicationPartsAssemblyInfo.cache │ │ │ ├── staticwebassets.build.json.cache │ │ │ ├── staticwebassets.build.endpoints.json │ │ │ ├── HorseSearch.AssemblyInfoInputs.cache │ │ │ ├── HorseSearch.genruntimeconfig.cache │ │ │ ├── HorseSearch.csproj.CoreCompileInputs.cache │ │ │ ├── apphost.exe │ │ │ ├── HorseSearch.dll │ │ │ ├── HorseSearch.pdb │ │ │ ├── ref │ │ │ │ └── HorseSearch.dll │ │ │ ├── HorseSearch.assets.cache │ │ │ ├── refint │ │ │ │ └── HorseSearch.dll │ │ │ ├── staticwebassets │ │ │ │ ├── msbuild.buildMultiTargeting.HorseSearch.props │ │ │ │ ├── msbuild.buildTransitive.HorseSearch.props │ │ │ │ └── msbuild.build.HorseSearch.props │ │ │ ├── HorseSearch.csproj.AssemblyReference.cache │ │ │ ├── HorseSearch.sourcelink.json │ │ │ ├── .NETCoreApp,Version=v9.0.AssemblyAttributes.cs │ │ │ ├── staticwebassets.build.json │ │ │ ├── rpswa.dswa.cache.json │ │ │ ├── rjsmcshtml.dswa.cache.json │ │ │ ├── rjsmrazor.dswa.cache.json │ │ │ ├── HorseSearch.MvcApplicationPartsAssemblyInfo.cs │ │ │ ├── HorseSearch.GlobalUsings.g.cs │ │ │ ├── HorseSearch.AssemblyInfo.cs │ │ │ ├── HorseSearch.GeneratedMSBuildEditorConfig.editorconfig │ │ │ └── HorseSearch.csproj.FileListAbsolute.txt │ │ └── net8.0 │ │ │ ├── HorseSearch.AssemblyInfoInputs.cache │ │ │ ├── HorseSearch.assets.cache │ │ │ ├── HorseSearch.csproj.AssemblyReference.cache │ │ │ ├── .NETCoreApp,Version=v8.0.AssemblyAttributes.cs │ │ │ ├── HorseSearch.GlobalUsings.g.cs │ │ │ ├── HorseSearch.AssemblyInfo.cs │ │ │ └── HorseSearch.GeneratedMSBuildEditorConfig.editorconfig │ ├── rider.project.restore.info │ ├── HorseSearch.csproj.nuget.g.targets │ ├── project.nuget.cache │ ├── project.packagespec.json │ ├── HorseSearch.csproj.nuget.g.props │ ├── HorseSearch.csproj.nuget.dgspec.json │ └── project.assets.json │ ├── bin │ └── Debug │ │ └── net9.0 │ │ ├── HorseSearch.staticwebassets.endpoints.json │ │ ├── HorseSearch.dll │ │ ├── HorseSearch.exe │ │ ├── HorseSearch.pdb │ │ ├── HtmlAgilityPack.dll │ │ ├── Microsoft.OpenApi.dll │ │ ├── Microsoft.AspNetCore.OpenApi.dll │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ ├── HorseSearch.runtimeconfig.json │ │ └── HorseSearch.deps.json │ ├── HorseSearch.http │ ├── appsettings.Development.json │ ├── appsettings.json │ ├── HorseSearch.csproj │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── HorseSearch.sln │ └── Controllers │ └── HorseSearchControllers.cs ├── Frontend └── horsesearchfe │ ├── src │ ├── react-app-env.d.ts │ ├── setupTests.ts │ ├── App.test.tsx │ ├── index.css │ ├── reportWebVitals.ts │ ├── index.tsx │ ├── App.css │ ├── logo.svg │ └── App.tsx │ ├── public │ ├── robots.txt │ ├── favicon.ico │ ├── logo192.png │ ├── logo512.png │ ├── manifest.json │ └── index.html │ ├── .gitignore │ ├── tsconfig.json │ ├── package.json │ └── README.md ├── .gitignore.txt ├── README.md.txt ├── HorseSearch.sln └── .github └── workflows ├── main_horse-search-api.yml └── azure-static-web-apps-proud-hill-07c653603.yml /Backend/HorseSearch/obj/Debug/net9.0/HorseSea.26FBD9FC.Up2Date: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/rider.project.restore.info: -------------------------------------------------------------------------------- 1 | 17552906006231887 -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/HorseSearch.MvcApplicationPartsAssemblyInfo.cache: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Frontend/horsesearchfe/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/staticwebassets.build.json.cache: -------------------------------------------------------------------------------- 1 | nRQBAcgodun08ghoidmSU0b3t7lQnTp8jVCGiT8dy8g= -------------------------------------------------------------------------------- /Frontend/horsesearchfe/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/staticwebassets.build.endpoints.json: -------------------------------------------------------------------------------- 1 | {"Version":1,"ManifestType":"Build","Endpoints":[]} -------------------------------------------------------------------------------- /Backend/HorseSearch/bin/Debug/net9.0/HorseSearch.staticwebassets.endpoints.json: -------------------------------------------------------------------------------- 1 | {"Version":1,"ManifestType":"Build","Endpoints":[]} -------------------------------------------------------------------------------- /Frontend/horsesearchfe/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/examine/Horse-Search/main/Frontend/horsesearchfe/public/favicon.ico -------------------------------------------------------------------------------- /Frontend/horsesearchfe/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/examine/Horse-Search/main/Frontend/horsesearchfe/public/logo192.png -------------------------------------------------------------------------------- /Frontend/horsesearchfe/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/examine/Horse-Search/main/Frontend/horsesearchfe/public/logo512.png -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net8.0/HorseSearch.AssemblyInfoInputs.cache: -------------------------------------------------------------------------------- 1 | 5d0440408a0bf26bb3b0429ee609f031923d73a66751304637abdef97c9f3e88 2 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/HorseSearch.AssemblyInfoInputs.cache: -------------------------------------------------------------------------------- 1 | 37ec6c4c7396ed4e36f67390705cf3f62705e5aa7f09e8b36b63099e192ccd8d 2 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/HorseSearch.genruntimeconfig.cache: -------------------------------------------------------------------------------- 1 | dbbf181f91336cafca30bbfbc5765555f94e7e6f8a4eecdf58d83803a8445af1 2 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/HorseSearch.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 5591f6d6bca904cd7d1a3f9c4772388bf0fe5ea5022b74dac569f3b469dc70c0 2 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/apphost.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/examine/Horse-Search/main/Backend/HorseSearch/obj/Debug/net9.0/apphost.exe -------------------------------------------------------------------------------- /Backend/HorseSearch/bin/Debug/net9.0/HorseSearch.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/examine/Horse-Search/main/Backend/HorseSearch/bin/Debug/net9.0/HorseSearch.dll -------------------------------------------------------------------------------- /Backend/HorseSearch/bin/Debug/net9.0/HorseSearch.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/examine/Horse-Search/main/Backend/HorseSearch/bin/Debug/net9.0/HorseSearch.exe -------------------------------------------------------------------------------- /Backend/HorseSearch/bin/Debug/net9.0/HorseSearch.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/examine/Horse-Search/main/Backend/HorseSearch/bin/Debug/net9.0/HorseSearch.pdb -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/HorseSearch.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/examine/Horse-Search/main/Backend/HorseSearch/obj/Debug/net9.0/HorseSearch.dll -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/HorseSearch.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/examine/Horse-Search/main/Backend/HorseSearch/obj/Debug/net9.0/HorseSearch.pdb -------------------------------------------------------------------------------- /Backend/HorseSearch/bin/Debug/net9.0/HtmlAgilityPack.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/examine/Horse-Search/main/Backend/HorseSearch/bin/Debug/net9.0/HtmlAgilityPack.dll -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/ref/HorseSearch.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/examine/Horse-Search/main/Backend/HorseSearch/obj/Debug/net9.0/ref/HorseSearch.dll -------------------------------------------------------------------------------- /Backend/HorseSearch/bin/Debug/net9.0/Microsoft.OpenApi.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/examine/Horse-Search/main/Backend/HorseSearch/bin/Debug/net9.0/Microsoft.OpenApi.dll -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net8.0/HorseSearch.assets.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/examine/Horse-Search/main/Backend/HorseSearch/obj/Debug/net8.0/HorseSearch.assets.cache -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/HorseSearch.assets.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/examine/Horse-Search/main/Backend/HorseSearch/obj/Debug/net9.0/HorseSearch.assets.cache -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/refint/HorseSearch.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/examine/Horse-Search/main/Backend/HorseSearch/obj/Debug/net9.0/refint/HorseSearch.dll -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/staticwebassets/msbuild.buildMultiTargeting.HorseSearch.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/staticwebassets/msbuild.buildTransitive.HorseSearch.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /Backend/HorseSearch/HorseSearch.http: -------------------------------------------------------------------------------- 1 | @HorseSearch_HostAddress = http://localhost:5062 2 | 3 | GET {{HorseSearch_HostAddress}}/weatherforecast/ 4 | Accept: application/json 5 | 6 | ### 7 | -------------------------------------------------------------------------------- /Backend/HorseSearch/bin/Debug/net9.0/Microsoft.AspNetCore.OpenApi.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/examine/Horse-Search/main/Backend/HorseSearch/bin/Debug/net9.0/Microsoft.AspNetCore.OpenApi.dll -------------------------------------------------------------------------------- /Backend/HorseSearch/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/HorseSearch.csproj.nuget.g.targets: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Backend/HorseSearch/bin/Debug/net9.0/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net8.0/HorseSearch.csproj.AssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/examine/Horse-Search/main/Backend/HorseSearch/obj/Debug/net8.0/HorseSearch.csproj.AssemblyReference.cache -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/HorseSearch.csproj.AssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/examine/Horse-Search/main/Backend/HorseSearch/obj/Debug/net9.0/HorseSearch.csproj.AssemblyReference.cache -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/HorseSearch.sourcelink.json: -------------------------------------------------------------------------------- 1 | {"documents":{"C:\\Appl\\GITHUB\\Horse-Search\\*":"https://raw.githubusercontent.com/examine/Horse-Search/8101b95f6f57052bfd496ba2ef8adeb6fc586390/*"}} -------------------------------------------------------------------------------- /Backend/HorseSearch/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /Backend/HorseSearch/bin/Debug/net9.0/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/staticwebassets/msbuild.build.HorseSearch.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs: -------------------------------------------------------------------------------- 1 | // 2 | using System; 3 | using System.Reflection; 4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] 5 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs: -------------------------------------------------------------------------------- 1 | // 2 | using System; 3 | using System.Reflection; 4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")] 5 | -------------------------------------------------------------------------------- /Frontend/horsesearchfe/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/staticwebassets.build.json: -------------------------------------------------------------------------------- 1 | {"Version":1,"Hash":"nRQBAcgodun08ghoidmSU0b3t7lQnTp8jVCGiT8dy8g=","Source":"HorseSearch","BasePath":"_content/HorseSearch","Mode":"Default","ManifestType":"Build","ReferencedProjectsConfiguration":[],"DiscoveryPatterns":[],"Assets":[],"Endpoints":[]} -------------------------------------------------------------------------------- /Frontend/horsesearchfe/src/App.test.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { render, screen } from '@testing-library/react'; 3 | import App from './App'; 4 | 5 | test('renders learn react link', () => { 6 | render(); 7 | const linkElement = screen.getByText(/learn react/i); 8 | expect(linkElement).toBeInTheDocument(); 9 | }); 10 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/rpswa.dswa.cache.json: -------------------------------------------------------------------------------- 1 | {"GlobalPropertiesHash":"32S4usF1PXxgGOjelrvylren0UpVTsjqQzYvG0EiUvQ=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["czHOEoosIrGTkGxHRrguPs6eYdWCifgcsRycYshVWK4=","X4sb3iMk2A4EucboKUE7mBjwXyA01eGdRcGHMl3k4bA="],"CachedAssets":{},"CachedCopyCandidates":{}} -------------------------------------------------------------------------------- /Frontend/horsesearchfe/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /Frontend/horsesearchfe/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /Backend/HorseSearch/HorseSearch.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | enable 6 | enable 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.gitignore.txt: -------------------------------------------------------------------------------- 1 | # Node modules (frontend) 2 | horse-search-frontend/node_modules/ 3 | 4 | # build output 5 | horse-search-frontend/build/ 6 | horse-search-frontend/dist/ 7 | 8 | # environment variables 9 | horse-search-frontend/.env 10 | 11 | # logs 12 | *.log 13 | 14 | # VS Code 15 | .vscode/ 16 | 17 | # .NET build artifacts (backend) 18 | HorseSearchApi/bin/ 19 | HorseSearchApi/obj/ 20 | 21 | # User-specific files 22 | *.user 23 | *.suo 24 | *.userosscache 25 | *.sln.docstates 26 | -------------------------------------------------------------------------------- /Frontend/horsesearchfe/src/reportWebVitals.ts: -------------------------------------------------------------------------------- 1 | import { ReportHandler } from 'web-vitals'; 2 | 3 | const reportWebVitals = (onPerfEntry?: ReportHandler) => { 4 | if (onPerfEntry && onPerfEntry instanceof Function) { 5 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 6 | getCLS(onPerfEntry); 7 | getFID(onPerfEntry); 8 | getFCP(onPerfEntry); 9 | getLCP(onPerfEntry); 10 | getTTFB(onPerfEntry); 11 | }); 12 | } 13 | }; 14 | 15 | export default reportWebVitals; 16 | -------------------------------------------------------------------------------- /Backend/HorseSearch/bin/Debug/net9.0/HorseSearch.runtimeconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeOptions": { 3 | "tfm": "net9.0", 4 | "frameworks": [ 5 | { 6 | "name": "Microsoft.NETCore.App", 7 | "version": "9.0.0" 8 | }, 9 | { 10 | "name": "Microsoft.AspNetCore.App", 11 | "version": "9.0.0" 12 | } 13 | ], 14 | "configProperties": { 15 | "System.GC.Server": true, 16 | "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/rjsmcshtml.dswa.cache.json: -------------------------------------------------------------------------------- 1 | {"GlobalPropertiesHash":"jk2V6KR5UN4WocfrvKPodhrpJXq93viuD8KDvh/YhL0=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["czHOEoosIrGTkGxHRrguPs6eYdWCifgcsRycYshVWK4=","X4sb3iMk2A4EucboKUE7mBjwXyA01eGdRcGHMl3k4bA=","Ui0JTzDuOkJ39djpDiucQEgGyuBkYBFoHBKX8MrDoUM=","oRXUIwKI93UoUkDQ/oWjKuYI0wxy142BCMAjTO4nqf0=","IttOnmitAqw4uYkJngmiZ2Rnyw4es1Cx\u002BjB9MmpGGBk="],"CachedAssets":{},"CachedCopyCandidates":{}} -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/rjsmrazor.dswa.cache.json: -------------------------------------------------------------------------------- 1 | {"GlobalPropertiesHash":"0KLOKHe+8kJuHQlfq1pklY7d/kM/HnMVtjw3FjNUwcY=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["czHOEoosIrGTkGxHRrguPs6eYdWCifgcsRycYshVWK4=","X4sb3iMk2A4EucboKUE7mBjwXyA01eGdRcGHMl3k4bA=","Ui0JTzDuOkJ39djpDiucQEgGyuBkYBFoHBKX8MrDoUM=","oRXUIwKI93UoUkDQ/oWjKuYI0wxy142BCMAjTO4nqf0=","IttOnmitAqw4uYkJngmiZ2Rnyw4es1Cx\u002BjB9MmpGGBk="],"CachedAssets":{},"CachedCopyCandidates":{}} -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/project.nuget.cache: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "dgSpecHash": "+x2xDEYb3AA=", 4 | "success": true, 5 | "projectFilePath": "c:\\Appl\\GITHUB\\Horse-Search\\Backend\\HorseSearch\\HorseSearch.csproj", 6 | "expectedPackageFiles": [ 7 | "C:\\Users\\vhor\\.nuget\\packages\\htmlagilitypack\\1.11.45\\htmlagilitypack.1.11.45.nupkg.sha512", 8 | "C:\\Users\\vhor\\.nuget\\packages\\microsoft.aspnetcore.openapi\\8.0.8\\microsoft.aspnetcore.openapi.8.0.8.nupkg.sha512", 9 | "C:\\Users\\vhor\\.nuget\\packages\\microsoft.openapi\\1.4.3\\microsoft.openapi.1.4.3.nupkg.sha512" 10 | ], 11 | "logs": [] 12 | } -------------------------------------------------------------------------------- /Frontend/horsesearchfe/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /Frontend/horsesearchfe/src/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom/client'; 3 | import './index.css'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | const root = ReactDOM.createRoot( 8 | document.getElementById('root') as HTMLElement 9 | ); 10 | root.render( 11 | 12 | 13 | 14 | ); 15 | 16 | // If you want to start measuring performance in your app, pass a function 17 | // to log results (for example: reportWebVitals(console.log)) 18 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 19 | reportWebVitals(); 20 | -------------------------------------------------------------------------------- /Frontend/horsesearchfe/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": [ 5 | "dom", 6 | "dom.iterable", 7 | "esnext" 8 | ], 9 | "allowJs": true, 10 | "skipLibCheck": true, 11 | "esModuleInterop": true, 12 | "allowSyntheticDefaultImports": true, 13 | "strict": true, 14 | "forceConsistentCasingInFileNames": true, 15 | "noFallthroughCasesInSwitch": true, 16 | "module": "esnext", 17 | "moduleResolution": "node", 18 | "resolveJsonModule": true, 19 | "isolatedModules": true, 20 | "noEmit": true, 21 | "jsx": "react-jsx" 22 | }, 23 | "include": [ 24 | "src" 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /Backend/HorseSearch/Program.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Builder; 2 | using Microsoft.Extensions.DependencyInjection; 3 | using Microsoft.Extensions.Hosting; 4 | 5 | var builder = WebApplication.CreateBuilder(args); 6 | 7 | builder.Services.AddControllers(); 8 | builder.Services.AddCors(options => 9 | { 10 | options.AddDefaultPolicy(policy => 11 | { 12 | policy.AllowAnyOrigin() 13 | .AllowAnyHeader() 14 | .AllowAnyMethod(); 15 | }); 16 | }); 17 | 18 | var app = builder.Build(); 19 | 20 | app.UseCors(); 21 | app.UseRouting(); 22 | app.UseEndpoints(endpoints => 23 | { 24 | endpoints.MapControllers(); 25 | }); 26 | 27 | app.Run(); 28 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/HorseSearch.MvcApplicationPartsAssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // 5 | // Changes to this file may cause incorrect behavior and will be lost if 6 | // the code is regenerated. 7 | // 8 | //------------------------------------------------------------------------------ 9 | 10 | using System; 11 | using System.Reflection; 12 | 13 | [assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute("Microsoft.AspNetCore.OpenApi")] 14 | 15 | // Generated by the MSBuild WriteCodeFragment class. 16 | 17 | -------------------------------------------------------------------------------- /Backend/HorseSearch/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/launchsettings.json", 3 | "profiles": { 4 | "http": { 5 | "commandName": "Project", 6 | "dotnetRunMessages": true, 7 | "launchBrowser": false, 8 | "applicationUrl": "http://localhost:5000", 9 | "environmentVariables": { 10 | "ASPNETCORE_ENVIRONMENT": "Development" 11 | } 12 | }, 13 | "https": { 14 | "commandName": "Project", 15 | "dotnetRunMessages": true, 16 | "launchBrowser": false, 17 | "applicationUrl": "https://localhost:7151;http://localhost:5062", 18 | "environmentVariables": { 19 | "ASPNETCORE_ENVIRONMENT": "Development" 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Frontend/horsesearchfe/src/App.css: -------------------------------------------------------------------------------- 1 | .App { 2 | text-align: center; 3 | } 4 | 5 | .App-logo { 6 | height: 40vmin; 7 | pointer-events: none; 8 | } 9 | 10 | @media (prefers-reduced-motion: no-preference) { 11 | .App-logo { 12 | animation: App-logo-spin infinite 20s linear; 13 | } 14 | } 15 | 16 | .App-header { 17 | background-color: #282c34; 18 | min-height: 100vh; 19 | display: flex; 20 | flex-direction: column; 21 | align-items: center; 22 | justify-content: center; 23 | font-size: calc(10px + 2vmin); 24 | color: white; 25 | } 26 | 27 | .App-link { 28 | color: #61dafb; 29 | } 30 | 31 | @keyframes App-logo-spin { 32 | from { 33 | transform: rotate(0deg); 34 | } 35 | to { 36 | transform: rotate(360deg); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net8.0/HorseSearch.GlobalUsings.g.cs: -------------------------------------------------------------------------------- 1 | // 2 | global using global::Microsoft.AspNetCore.Builder; 3 | global using global::Microsoft.AspNetCore.Hosting; 4 | global using global::Microsoft.AspNetCore.Http; 5 | global using global::Microsoft.AspNetCore.Routing; 6 | global using global::Microsoft.Extensions.Configuration; 7 | global using global::Microsoft.Extensions.DependencyInjection; 8 | global using global::Microsoft.Extensions.Hosting; 9 | global using global::Microsoft.Extensions.Logging; 10 | global using global::System; 11 | global using global::System.Collections.Generic; 12 | global using global::System.IO; 13 | global using global::System.Linq; 14 | global using global::System.Net.Http; 15 | global using global::System.Net.Http.Json; 16 | global using global::System.Threading; 17 | global using global::System.Threading.Tasks; 18 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/HorseSearch.GlobalUsings.g.cs: -------------------------------------------------------------------------------- 1 | // 2 | global using global::Microsoft.AspNetCore.Builder; 3 | global using global::Microsoft.AspNetCore.Hosting; 4 | global using global::Microsoft.AspNetCore.Http; 5 | global using global::Microsoft.AspNetCore.Routing; 6 | global using global::Microsoft.Extensions.Configuration; 7 | global using global::Microsoft.Extensions.DependencyInjection; 8 | global using global::Microsoft.Extensions.Hosting; 9 | global using global::Microsoft.Extensions.Logging; 10 | global using global::System; 11 | global using global::System.Collections.Generic; 12 | global using global::System.IO; 13 | global using global::System.Linq; 14 | global using global::System.Net.Http; 15 | global using global::System.Net.Http.Json; 16 | global using global::System.Threading; 17 | global using global::System.Threading.Tasks; 18 | -------------------------------------------------------------------------------- /README.md.txt: -------------------------------------------------------------------------------- 1 | # Horse Search 2 | 3 | This project allows users to search for horse racing startlists by horse name. 4 | 5 | ## 📦 Structure 6 | 7 | - **horse-search-frontend/** – React + TypeScript frontend 8 | - **HorseSearchApi/** – .NET 9 Web API backend 9 | - **HorseSearchSolution.sln** – .NET solution file 10 | 11 | ## 🚀 Getting Started 12 | 13 | ### Backend (.NET) 14 | 15 | ```bash 16 | cd HorseSearchApi 17 | dotnet run 18 | 19 | ### Frontend (React) 20 | cd horse-search-frontend 21 | npm install 22 | npm start 23 | 24 | Make sure the backend runs on https://localhost:5000 and that the frontend has this in package.json: 25 | "proxy": "http://localhost:5000" 26 | 27 | 🔍 Search Example 28 | Enter a horse name (e.g. Just Like Heaven) and press Search. If found in any startlist within 7 days, results will appear. 29 | 30 | 🛠 Tech Stack 31 | React + TypeScript 32 | 33 | .NET 9 Web API 34 | 35 | HtmlAgilityPack (for HTML scraping) 36 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net8.0/HorseSearch.AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // 5 | // Changes to this file may cause incorrect behavior and will be lost if 6 | // the code is regenerated. 7 | // 8 | //------------------------------------------------------------------------------ 9 | 10 | using System; 11 | using System.Reflection; 12 | 13 | [assembly: System.Reflection.AssemblyCompanyAttribute("HorseSearch")] 14 | [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] 15 | [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] 16 | [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+6bb4f4215ea7261c7480a5a9f55073d105468e11")] 17 | [assembly: System.Reflection.AssemblyProductAttribute("HorseSearch")] 18 | [assembly: System.Reflection.AssemblyTitleAttribute("HorseSearch")] 19 | [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] 20 | 21 | // Generated by the MSBuild WriteCodeFragment class. 22 | 23 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/HorseSearch.AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // 5 | // Changes to this file may cause incorrect behavior and will be lost if 6 | // the code is regenerated. 7 | // 8 | //------------------------------------------------------------------------------ 9 | 10 | using System; 11 | using System.Reflection; 12 | 13 | [assembly: System.Reflection.AssemblyCompanyAttribute("HorseSearch")] 14 | [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] 15 | [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] 16 | [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+8101b95f6f57052bfd496ba2ef8adeb6fc586390")] 17 | [assembly: System.Reflection.AssemblyProductAttribute("HorseSearch")] 18 | [assembly: System.Reflection.AssemblyTitleAttribute("HorseSearch")] 19 | [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] 20 | 21 | // Generated by the MSBuild WriteCodeFragment class. 22 | 23 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net8.0/HorseSearch.GeneratedMSBuildEditorConfig.editorconfig: -------------------------------------------------------------------------------- 1 | is_global = true 2 | build_property.TargetFramework = net8.0 3 | build_property.TargetPlatformMinVersion = 4 | build_property.UsingMicrosoftNETSdkWeb = true 5 | build_property.ProjectTypeGuids = 6 | build_property.InvariantGlobalization = 7 | build_property.PlatformNeutralAssembly = 8 | build_property.EnforceExtendedAnalyzerRules = 9 | build_property._SupportedPlatformList = Linux,macOS,Windows 10 | build_property.RootNamespace = HorseSearch 11 | build_property.RootNamespace = HorseSearch 12 | build_property.ProjectDir = c:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\ 13 | build_property.EnableComHosting = 14 | build_property.EnableGeneratedComInterfaceComImportInterop = 15 | build_property.RazorLangVersion = 8.0 16 | build_property.SupportLocalizedComponentNames = 17 | build_property.GenerateRazorMetadataSourceChecksumAttributes = 18 | build_property.MSBuildProjectDirectory = c:\Appl\GITHUB\Horse-Search\Backend\HorseSearch 19 | build_property._RazorSourceGeneratorDebug = 20 | build_property.EffectiveAnalysisLevelStyle = 8.0 21 | build_property.EnableCodeStyleSeverity = 22 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/HorseSearch.GeneratedMSBuildEditorConfig.editorconfig: -------------------------------------------------------------------------------- 1 | is_global = true 2 | build_property.TargetFramework = net9.0 3 | build_property.TargetPlatformMinVersion = 4 | build_property.UsingMicrosoftNETSdkWeb = true 5 | build_property.ProjectTypeGuids = 6 | build_property.InvariantGlobalization = 7 | build_property.PlatformNeutralAssembly = 8 | build_property.EnforceExtendedAnalyzerRules = 9 | build_property._SupportedPlatformList = Linux,macOS,Windows 10 | build_property.RootNamespace = HorseSearch 11 | build_property.RootNamespace = HorseSearch 12 | build_property.ProjectDir = C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\ 13 | build_property.EnableComHosting = 14 | build_property.EnableGeneratedComInterfaceComImportInterop = 15 | build_property.RazorLangVersion = 9.0 16 | build_property.SupportLocalizedComponentNames = 17 | build_property.GenerateRazorMetadataSourceChecksumAttributes = 18 | build_property.MSBuildProjectDirectory = C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch 19 | build_property._RazorSourceGeneratorDebug = 20 | build_property.EffectiveAnalysisLevelStyle = 9.0 21 | build_property.EnableCodeStyleSeverity = 22 | -------------------------------------------------------------------------------- /HorseSearch.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 12.00 2 | # Visual Studio Version 17 3 | VisualStudioVersion = 17.5.2.0 4 | MinimumVisualStudioVersion = 10.0.40219.1 5 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HorseSearch", "HorseSearch.csproj", "{1D309FFC-8AD9-DA39-BFDD-DB3E51F654B1}" 6 | EndProject 7 | Global 8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 9 | Debug|Any CPU = Debug|Any CPU 10 | Release|Any CPU = Release|Any CPU 11 | EndGlobalSection 12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 13 | {1D309FFC-8AD9-DA39-BFDD-DB3E51F654B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 14 | {1D309FFC-8AD9-DA39-BFDD-DB3E51F654B1}.Debug|Any CPU.Build.0 = Debug|Any CPU 15 | {1D309FFC-8AD9-DA39-BFDD-DB3E51F654B1}.Release|Any CPU.ActiveCfg = Release|Any CPU 16 | {1D309FFC-8AD9-DA39-BFDD-DB3E51F654B1}.Release|Any CPU.Build.0 = Release|Any CPU 17 | EndGlobalSection 18 | GlobalSection(SolutionProperties) = preSolution 19 | HideSolutionNode = FALSE 20 | EndGlobalSection 21 | GlobalSection(ExtensibilityGlobals) = postSolution 22 | SolutionGuid = {594C6832-9660-4421-AF88-91DEE0E11B5F} 23 | EndGlobalSection 24 | EndGlobal 25 | -------------------------------------------------------------------------------- /Backend/HorseSearch/HorseSearch.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 12.00 2 | # Visual Studio Version 17 3 | VisualStudioVersion = 17.5.2.0 4 | MinimumVisualStudioVersion = 10.0.40219.1 5 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HorseSearch", "HorseSearch.csproj", "{1D309FFC-8AD9-DA39-BFDD-DB3E51F654B1}" 6 | EndProject 7 | Global 8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 9 | Debug|Any CPU = Debug|Any CPU 10 | Release|Any CPU = Release|Any CPU 11 | EndGlobalSection 12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 13 | {1D309FFC-8AD9-DA39-BFDD-DB3E51F654B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 14 | {1D309FFC-8AD9-DA39-BFDD-DB3E51F654B1}.Debug|Any CPU.Build.0 = Debug|Any CPU 15 | {1D309FFC-8AD9-DA39-BFDD-DB3E51F654B1}.Release|Any CPU.ActiveCfg = Release|Any CPU 16 | {1D309FFC-8AD9-DA39-BFDD-DB3E51F654B1}.Release|Any CPU.Build.0 = Release|Any CPU 17 | EndGlobalSection 18 | GlobalSection(SolutionProperties) = preSolution 19 | HideSolutionNode = FALSE 20 | EndGlobalSection 21 | GlobalSection(ExtensibilityGlobals) = postSolution 22 | SolutionGuid = {594C6832-9660-4421-AF88-91DEE0E11B5F} 23 | EndGlobalSection 24 | EndGlobal 25 | -------------------------------------------------------------------------------- /Frontend/horsesearchfe/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "horsesearchfe", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "@testing-library/dom": "^10.4.0", 7 | "@testing-library/jest-dom": "^6.6.3", 8 | "@testing-library/react": "^16.3.0", 9 | "@testing-library/user-event": "^13.5.0", 10 | "@types/jest": "^27.5.2", 11 | "@types/node": "^16.18.126", 12 | "@types/react": "^19.1.8", 13 | "@types/react-dom": "^19.1.6", 14 | "react": "^19.1.0", 15 | "react-dom": "^19.1.0", 16 | "react-scripts": "5.0.1", 17 | "typescript": "^4.9.5", 18 | "web-vitals": "^2.1.4" 19 | }, 20 | "proxy": "http://localhost:5000", 21 | 22 | "scripts": { 23 | "start": "react-scripts start", 24 | "build": "react-scripts build", 25 | "test": "react-scripts test", 26 | "eject": "react-scripts eject" 27 | }, 28 | "eslintConfig": { 29 | "extends": [ 30 | "react-app", 31 | "react-app/jest" 32 | ] 33 | }, 34 | "browserslist": { 35 | "production": [ 36 | ">0.2%", 37 | "not dead", 38 | "not op_mini all" 39 | ], 40 | "development": [ 41 | "last 1 chrome version", 42 | "last 1 firefox version", 43 | "last 1 safari version" 44 | ] 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/project.packagespec.json: -------------------------------------------------------------------------------- 1 | "restore":{"projectUniqueName":"c:\\Appl\\GITHUB\\Horse-Search\\Backend\\HorseSearch\\HorseSearch.csproj","projectName":"HorseSearch","projectPath":"c:\\Appl\\GITHUB\\Horse-Search\\Backend\\HorseSearch\\HorseSearch.csproj","outputPath":"c:\\Appl\\GITHUB\\Horse-Search\\Backend\\HorseSearch\\obj\\","projectStyle":"PackageReference","fallbackFolders":["C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"],"originalTargetFrameworks":["net8.0"],"sources":{"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net8.0":{"targetAlias":"net8.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"direct"},"SdkAnalysisLevel":"9.0.300"}"frameworks":{"net8.0":{"targetAlias":"net8.0","dependencies":{"HtmlAgilityPack":{"target":"Package","version":"[1.11.45, )"},"Microsoft.AspNetCore.OpenApi":{"target":"Package","version":"[8.0.8, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.AspNetCore.App":{"privateAssets":"none"},"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json"}} -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/HorseSearch.csproj.nuget.g.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | True 5 | NuGet 6 | $(MSBuildThisFileDirectory)project.assets.json 7 | $(UserProfile)\.nuget\packages\ 8 | C:\Users\vhor\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages 9 | PackageReference 10 | 6.14.0 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Frontend/horsesearchfe/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | 13 | 17 | 18 | 27 | React App 28 | 29 | 30 | 31 |
32 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /.github/workflows/main_horse-search-api.yml: -------------------------------------------------------------------------------- 1 | # Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy 2 | # More GitHub Actions for Azure: https://github.com/Azure/actions 3 | 4 | name: Build and deploy ASP.Net Core app to Azure Web App - horse-search-api 5 | 6 | on: 7 | push: 8 | branches: 9 | - main 10 | workflow_dispatch: 11 | 12 | jobs: 13 | build: 14 | runs-on: windows-latest 15 | permissions: 16 | contents: read #This is required for actions/checkout 17 | 18 | steps: 19 | - uses: actions/checkout@v4 20 | 21 | - name: Set up .NET Core 22 | uses: actions/setup-dotnet@v4 23 | with: 24 | dotnet-version: '8.x' 25 | 26 | - name: Build with dotnet 27 | run: dotnet build --configuration Release 28 | 29 | - name: dotnet publish 30 | run: dotnet publish -c Release -o "${{env.DOTNET_ROOT}}/myapp" 31 | 32 | - name: Upload artifact for deployment job 33 | uses: actions/upload-artifact@v4 34 | with: 35 | name: .net-app 36 | path: ${{env.DOTNET_ROOT}}/myapp 37 | 38 | deploy: 39 | runs-on: windows-latest 40 | needs: build 41 | permissions: 42 | id-token: write #This is required for requesting the JWT 43 | contents: read #This is required for actions/checkout 44 | 45 | steps: 46 | - name: Download artifact from build job 47 | uses: actions/download-artifact@v4 48 | with: 49 | name: .net-app 50 | 51 | - name: Login to Azure 52 | uses: azure/login@v2 53 | with: 54 | client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_9D14909228084B3BB3A10EB2943F54F8 }} 55 | tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_342D9116B91841D8A4081391BD2BE39F }} 56 | subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_C11B4A0A9C7A4941A948127F9C16BAA9 }} 57 | 58 | - name: Deploy to Azure Web App 59 | id: deploy-to-webapp 60 | uses: azure/webapps-deploy@v3 61 | with: 62 | app-name: 'horse-search-api' 63 | slot-name: 'Production' 64 | package: . 65 | -------------------------------------------------------------------------------- /Frontend/horsesearchfe/README.md: -------------------------------------------------------------------------------- 1 | # Getting Started with Create React App 2 | 3 | This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). 4 | 5 | ## Available Scripts 6 | 7 | In the project directory, you can run: 8 | 9 | ### `npm start` 10 | 11 | Runs the app in the development mode.\ 12 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 13 | 14 | The page will reload if you make edits.\ 15 | You will also see any lint errors in the console. 16 | 17 | ### `npm test` 18 | 19 | Launches the test runner in the interactive watch mode.\ 20 | See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. 21 | 22 | ### `npm run build` 23 | 24 | Builds the app for production to the `build` folder.\ 25 | It correctly bundles React in production mode and optimizes the build for the best performance. 26 | 27 | The build is minified and the filenames include the hashes.\ 28 | Your app is ready to be deployed! 29 | 30 | See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. 31 | 32 | ### `npm run eject` 33 | 34 | **Note: this is a one-way operation. Once you `eject`, you can’t go back!** 35 | 36 | If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. 37 | 38 | Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. 39 | 40 | You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. 41 | 42 | ## Learn More 43 | 44 | You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). 45 | 46 | To learn React, check out the [React documentation](https://reactjs.org/). 47 | -------------------------------------------------------------------------------- /.github/workflows/azure-static-web-apps-proud-hill-07c653603.yml: -------------------------------------------------------------------------------- 1 | name: Azure Static Web Apps CI/CD 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request: 8 | types: [opened, synchronize, reopened, closed] 9 | branches: 10 | - main 11 | 12 | jobs: 13 | build_and_deploy_job: 14 | if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') 15 | runs-on: ubuntu-latest 16 | name: Build and Deploy Job 17 | permissions: 18 | id-token: write 19 | contents: read 20 | steps: 21 | - uses: actions/checkout@v3 22 | with: 23 | submodules: true 24 | lfs: false 25 | - name: Install OIDC Client from Core Package 26 | run: npm install @actions/core@1.6.0 @actions/http-client 27 | - name: Get Id Token 28 | uses: actions/github-script@v6 29 | id: idtoken 30 | with: 31 | script: | 32 | const coredemo = require('@actions/core') 33 | return await coredemo.getIDToken() 34 | result-encoding: string 35 | - name: Build And Deploy 36 | id: builddeploy 37 | uses: Azure/static-web-apps-deploy@v1 38 | with: 39 | azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_PROUD_HILL_07C653603 }} 40 | action: "upload" 41 | ###### Repository/Build Configurations - These values can be configured to match your app requirements. ###### 42 | # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig 43 | app_location: "Frontend/horsesearchfe" # App source code path 44 | api_location: "" # Api source code path - optional 45 | output_location: "build" # Built app content directory - optional 46 | github_id_token: ${{ steps.idtoken.outputs.result }} 47 | ###### End of Repository/Build Configurations ###### 48 | 49 | close_pull_request_job: 50 | if: github.event_name == 'pull_request' && github.event.action == 'closed' 51 | runs-on: ubuntu-latest 52 | name: Close Pull Request Job 53 | steps: 54 | - name: Close Pull Request 55 | id: closepullrequest 56 | uses: Azure/static-web-apps-deploy@v1 57 | with: 58 | action: "close" 59 | -------------------------------------------------------------------------------- /Frontend/horsesearchfe/src/logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Backend/HorseSearch/bin/Debug/net9.0/HorseSearch.deps.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeTarget": { 3 | "name": ".NETCoreApp,Version=v9.0", 4 | "signature": "" 5 | }, 6 | "compilationOptions": {}, 7 | "targets": { 8 | ".NETCoreApp,Version=v9.0": { 9 | "HorseSearch/1.0.0": { 10 | "dependencies": { 11 | "HtmlAgilityPack": "1.11.45", 12 | "Microsoft.AspNetCore.OpenApi": "9.0.6" 13 | }, 14 | "runtime": { 15 | "HorseSearch.dll": {} 16 | } 17 | }, 18 | "HtmlAgilityPack/1.11.45": { 19 | "runtime": { 20 | "lib/netstandard2.0/HtmlAgilityPack.dll": { 21 | "assemblyVersion": "1.11.45.0", 22 | "fileVersion": "1.11.45.0" 23 | } 24 | } 25 | }, 26 | "Microsoft.AspNetCore.OpenApi/9.0.6": { 27 | "dependencies": { 28 | "Microsoft.OpenApi": "1.6.17" 29 | }, 30 | "runtime": { 31 | "lib/net9.0/Microsoft.AspNetCore.OpenApi.dll": { 32 | "assemblyVersion": "9.0.6.0", 33 | "fileVersion": "9.0.625.26701" 34 | } 35 | } 36 | }, 37 | "Microsoft.OpenApi/1.6.17": { 38 | "runtime": { 39 | "lib/netstandard2.0/Microsoft.OpenApi.dll": { 40 | "assemblyVersion": "1.6.17.0", 41 | "fileVersion": "1.6.17.0" 42 | } 43 | } 44 | } 45 | } 46 | }, 47 | "libraries": { 48 | "HorseSearch/1.0.0": { 49 | "type": "project", 50 | "serviceable": false, 51 | "sha512": "" 52 | }, 53 | "HtmlAgilityPack/1.11.45": { 54 | "type": "package", 55 | "serviceable": true, 56 | "sha512": "sha512-adcQUl0CTUJuOVb365DEVxAs7z36AjUU/3JCq65DuYRFJ/+Fsd99MxpkiE9xwelYAcsD0cFlOKI2FXhxSoA3iw==", 57 | "path": "htmlagilitypack/1.11.45", 58 | "hashPath": "htmlagilitypack.1.11.45.nupkg.sha512" 59 | }, 60 | "Microsoft.AspNetCore.OpenApi/9.0.6": { 61 | "type": "package", 62 | "serviceable": true, 63 | "sha512": "sha512-MOJ4DG1xd3NlWMYh+JdGNT9uvBtEk1XQU/FQlpNZFlAzM8t0oB5IimvnGlnK7jmyY4vQagLPB1xw1HjJ8CHrZg==", 64 | "path": "microsoft.aspnetcore.openapi/9.0.6", 65 | "hashPath": "microsoft.aspnetcore.openapi.9.0.6.nupkg.sha512" 66 | }, 67 | "Microsoft.OpenApi/1.6.17": { 68 | "type": "package", 69 | "serviceable": true, 70 | "sha512": "sha512-Le+kehlmrlQfuDFUt1zZ2dVwrhFQtKREdKBo+rexOwaCoYP0/qpgT9tLxCsZjsgR5Itk1UKPcbgO+FyaNid/bA==", 71 | "path": "microsoft.openapi/1.6.17", 72 | "hashPath": "microsoft.openapi.1.6.17.nupkg.sha512" 73 | } 74 | } 75 | } -------------------------------------------------------------------------------- /Frontend/horsesearchfe/src/App.tsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from "react"; 2 | 3 | interface SearchResult { 4 | date: string; 5 | track: string; 6 | url: string; 7 | } 8 | 9 | const App: React.FC = () => { 10 | const [horseName, setHorseName] = useState(""); 11 | const [results, setResults] = useState([]); 12 | const [loading, setLoading] = useState(false); 13 | const [error, setError] = useState(""); 14 | 15 | const handleSearch = async () => { 16 | setLoading(true); 17 | setError(""); 18 | setResults([]); 19 | 20 | try { 21 | // const response = await fetch( 22 | // `https://horse-search-api.azurewebsites.net/api/search?horseName=${encodeURIComponent(horseName)}` 23 | // ); 24 | 25 | const response = await fetch( 26 | `https://horse-search-api.azurewebsites.net/api/search?horseName=${encodeURIComponent(horseName)}` 27 | ); 28 | 29 | if (!response.ok) { 30 | throw new Error("Search failed"); 31 | } 32 | 33 | const data = await response.json(); 34 | setResults(data); 35 | } catch (err) { 36 | setError("Failed to fetch search results."); 37 | } finally { 38 | setLoading(false); 39 | } 40 | }; 41 | 42 | return ( 43 |
44 |

Horse Startlist Search

45 | 46 | setHorseName(e.target.value)} 50 | placeholder="Enter horse name" 51 | style={{ width: "100%", padding: "0.5rem", marginBottom: "1rem" }} 52 | /> 53 | 60 | 61 | {error &&

{error}

} 62 | 63 | {results.length > 0 && ( 64 |
65 |

Results:

66 |
    67 | {results.map((result, index) => ( 68 |
  • 77 | Date: {result.date}
    78 | Track: {result.track}
    79 | 80 | View Startlist 81 | 82 |
  • 83 | ))} 84 |
85 |
86 | )} 87 |
88 | ); 89 | }; 90 | 91 | export default App; 92 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/HorseSearch.csproj.nuget.dgspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "format": 1, 3 | "restore": { 4 | "c:\\Appl\\GITHUB\\Horse-Search\\Backend\\HorseSearch\\HorseSearch.csproj": {} 5 | }, 6 | "projects": { 7 | "c:\\Appl\\GITHUB\\Horse-Search\\Backend\\HorseSearch\\HorseSearch.csproj": { 8 | "version": "1.0.0", 9 | "restore": { 10 | "projectUniqueName": "c:\\Appl\\GITHUB\\Horse-Search\\Backend\\HorseSearch\\HorseSearch.csproj", 11 | "projectName": "HorseSearch", 12 | "projectPath": "c:\\Appl\\GITHUB\\Horse-Search\\Backend\\HorseSearch\\HorseSearch.csproj", 13 | "packagesPath": "C:\\Users\\vhor\\.nuget\\packages\\", 14 | "outputPath": "c:\\Appl\\GITHUB\\Horse-Search\\Backend\\HorseSearch\\obj\\", 15 | "projectStyle": "PackageReference", 16 | "fallbackFolders": [ 17 | "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" 18 | ], 19 | "configFilePaths": [ 20 | "C:\\Users\\vhor\\AppData\\Roaming\\NuGet\\NuGet.Config", 21 | "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", 22 | "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" 23 | ], 24 | "originalTargetFrameworks": [ 25 | "net8.0" 26 | ], 27 | "sources": { 28 | "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, 29 | "https://api.nuget.org/v3/index.json": {} 30 | }, 31 | "frameworks": { 32 | "net8.0": { 33 | "targetAlias": "net8.0", 34 | "projectReferences": {} 35 | } 36 | }, 37 | "warningProperties": { 38 | "warnAsError": [ 39 | "NU1605" 40 | ] 41 | }, 42 | "restoreAuditProperties": { 43 | "enableAudit": "true", 44 | "auditLevel": "low", 45 | "auditMode": "direct" 46 | }, 47 | "SdkAnalysisLevel": "9.0.300" 48 | }, 49 | "frameworks": { 50 | "net8.0": { 51 | "targetAlias": "net8.0", 52 | "dependencies": { 53 | "HtmlAgilityPack": { 54 | "target": "Package", 55 | "version": "[1.11.45, )" 56 | }, 57 | "Microsoft.AspNetCore.OpenApi": { 58 | "target": "Package", 59 | "version": "[8.0.8, )" 60 | } 61 | }, 62 | "imports": [ 63 | "net461", 64 | "net462", 65 | "net47", 66 | "net471", 67 | "net472", 68 | "net48", 69 | "net481" 70 | ], 71 | "assetTargetFallback": true, 72 | "warn": true, 73 | "frameworkReferences": { 74 | "Microsoft.AspNetCore.App": { 75 | "privateAssets": "none" 76 | }, 77 | "Microsoft.NETCore.App": { 78 | "privateAssets": "all" 79 | } 80 | }, 81 | "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" 82 | } 83 | } 84 | } 85 | } 86 | } -------------------------------------------------------------------------------- /Backend/HorseSearch/Controllers/HorseSearchControllers.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Net.Http; 5 | using System.Threading.Tasks; 6 | using HtmlAgilityPack; 7 | 8 | namespace HorseSearchApi.Controllers 9 | { 10 | [ApiController] 11 | [Route("api/[controller]")] 12 | public class SearchController : ControllerBase 13 | { 14 | private static readonly List TrackSlugs = new() 15 | { 16 | "bergen-travpark", "biri-travbane", "bjerke-travbane", "forus-travbane", 17 | "harstad-travpark", "jarlsberg-travbane", "klosterskogen-travbane", "varig-orkla-arena", 18 | "momarken-travbane", "sorlandets-travpark", "ovrevoll-galopp", "bodo-travbane", 19 | "nossum-travbane", "kala-travpark", "lofoten-travpark", "magnor-travbane", 20 | "mo-travpark", "skoglund-travbane", "kongsvinger-travbane" 21 | }; 22 | 23 | [HttpGet] 24 | public async Task Get([FromQuery] string horseName) 25 | { 26 | if (string.IsNullOrWhiteSpace(horseName)) 27 | return BadRequest("Horse name is required."); 28 | 29 | var results = new List(); 30 | var today = DateTime.Today; 31 | 32 | using var httpClient = new HttpClient(); 33 | 34 | for (int i = 0; i <= 7; i++) 35 | { 36 | var date = today.AddDays(i); 37 | var dateStr = date.ToString("yyyy-MM-dd"); 38 | 39 | foreach (var slug in TrackSlugs) 40 | { 41 | var url = $"https://www.travsport.no/travbaner/{slug}/startlist/{dateStr}"; 42 | 43 | try 44 | { 45 | var html = await httpClient.GetStringAsync(url); 46 | var doc = new HtmlDocument(); 47 | doc.LoadHtml(html); 48 | 49 | var horseLinks = doc.DocumentNode.SelectNodes("//table//tr/th/a"); 50 | 51 | if (horseLinks != null) 52 | { 53 | foreach (var link in horseLinks) 54 | { 55 | if (link.InnerText.Trim().Equals(horseName, StringComparison.OrdinalIgnoreCase)) 56 | { 57 | results.Add(new 58 | { 59 | date = dateStr, 60 | track = ToTitleCase(slug.Replace("-", " ")), 61 | url 62 | }); 63 | } 64 | } 65 | } 66 | } 67 | catch 68 | { 69 | continue; // silently ignore failed fetches 70 | } 71 | } 72 | } 73 | 74 | return Ok(results); 75 | } 76 | 77 | private static string ToTitleCase(string input) 78 | { 79 | return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(input.ToLower()); 80 | } 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/Debug/net9.0/HorseSearch.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | C:\Users\Vetle\Projects\Backend\HorseSearch\bin\Debug\net9.0\appsettings.Development.json 2 | C:\Users\Vetle\Projects\Backend\HorseSearch\bin\Debug\net9.0\appsettings.json 3 | C:\Users\Vetle\Projects\Backend\HorseSearch\bin\Debug\net9.0\HorseSearch.staticwebassets.endpoints.json 4 | C:\Users\Vetle\Projects\Backend\HorseSearch\bin\Debug\net9.0\HorseSearch.exe 5 | C:\Users\Vetle\Projects\Backend\HorseSearch\bin\Debug\net9.0\HorseSearch.deps.json 6 | C:\Users\Vetle\Projects\Backend\HorseSearch\bin\Debug\net9.0\HorseSearch.runtimeconfig.json 7 | C:\Users\Vetle\Projects\Backend\HorseSearch\bin\Debug\net9.0\HorseSearch.dll 8 | C:\Users\Vetle\Projects\Backend\HorseSearch\bin\Debug\net9.0\HorseSearch.pdb 9 | C:\Users\Vetle\Projects\Backend\HorseSearch\bin\Debug\net9.0\HtmlAgilityPack.dll 10 | C:\Users\Vetle\Projects\Backend\HorseSearch\bin\Debug\net9.0\Microsoft.AspNetCore.OpenApi.dll 11 | C:\Users\Vetle\Projects\Backend\HorseSearch\bin\Debug\net9.0\Microsoft.OpenApi.dll 12 | C:\Users\Vetle\Projects\Backend\HorseSearch\obj\Debug\net9.0\HorseSearch.csproj.AssemblyReference.cache 13 | C:\Users\Vetle\Projects\Backend\HorseSearch\obj\Debug\net9.0\rpswa.dswa.cache.json 14 | C:\Users\Vetle\Projects\Backend\HorseSearch\obj\Debug\net9.0\HorseSearch.GeneratedMSBuildEditorConfig.editorconfig 15 | C:\Users\Vetle\Projects\Backend\HorseSearch\obj\Debug\net9.0\HorseSearch.AssemblyInfoInputs.cache 16 | C:\Users\Vetle\Projects\Backend\HorseSearch\obj\Debug\net9.0\HorseSearch.AssemblyInfo.cs 17 | C:\Users\Vetle\Projects\Backend\HorseSearch\obj\Debug\net9.0\HorseSearch.csproj.CoreCompileInputs.cache 18 | C:\Users\Vetle\Projects\Backend\HorseSearch\obj\Debug\net9.0\HorseSearch.MvcApplicationPartsAssemblyInfo.cs 19 | C:\Users\Vetle\Projects\Backend\HorseSearch\obj\Debug\net9.0\HorseSearch.MvcApplicationPartsAssemblyInfo.cache 20 | C:\Users\Vetle\Projects\Backend\HorseSearch\obj\Debug\net9.0\rjimswa.dswa.cache.json 21 | C:\Users\Vetle\Projects\Backend\HorseSearch\obj\Debug\net9.0\rjsmrazor.dswa.cache.json 22 | C:\Users\Vetle\Projects\Backend\HorseSearch\obj\Debug\net9.0\rjsmcshtml.dswa.cache.json 23 | C:\Users\Vetle\Projects\Backend\HorseSearch\obj\Debug\net9.0\scopedcss\bundle\HorseSearch.styles.css 24 | C:\Users\Vetle\Projects\Backend\HorseSearch\obj\Debug\net9.0\staticwebassets.build.json 25 | C:\Users\Vetle\Projects\Backend\HorseSearch\obj\Debug\net9.0\staticwebassets.build.json.cache 26 | C:\Users\Vetle\Projects\Backend\HorseSearch\obj\Debug\net9.0\staticwebassets.development.json 27 | C:\Users\Vetle\Projects\Backend\HorseSearch\obj\Debug\net9.0\staticwebassets.build.endpoints.json 28 | C:\Users\Vetle\Projects\Backend\HorseSearch\obj\Debug\net9.0\HorseSea.26FBD9FC.Up2Date 29 | C:\Users\Vetle\Projects\Backend\HorseSearch\obj\Debug\net9.0\HorseSearch.dll 30 | C:\Users\Vetle\Projects\Backend\HorseSearch\obj\Debug\net9.0\refint\HorseSearch.dll 31 | C:\Users\Vetle\Projects\Backend\HorseSearch\obj\Debug\net9.0\HorseSearch.pdb 32 | C:\Users\Vetle\Projects\Backend\HorseSearch\obj\Debug\net9.0\HorseSearch.genruntimeconfig.cache 33 | C:\Users\Vetle\Projects\Backend\HorseSearch\obj\Debug\net9.0\ref\HorseSearch.dll 34 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\bin\Debug\net9.0\appsettings.Development.json 35 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\bin\Debug\net9.0\appsettings.json 36 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\bin\Debug\net9.0\HorseSearch.staticwebassets.endpoints.json 37 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\bin\Debug\net9.0\HorseSearch.exe 38 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\bin\Debug\net9.0\HorseSearch.deps.json 39 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\bin\Debug\net9.0\HorseSearch.runtimeconfig.json 40 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\bin\Debug\net9.0\HorseSearch.dll 41 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\bin\Debug\net9.0\HorseSearch.pdb 42 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\bin\Debug\net9.0\HtmlAgilityPack.dll 43 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\bin\Debug\net9.0\Microsoft.AspNetCore.OpenApi.dll 44 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\bin\Debug\net9.0\Microsoft.OpenApi.dll 45 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\obj\Debug\net9.0\HorseSearch.csproj.AssemblyReference.cache 46 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\obj\Debug\net9.0\rpswa.dswa.cache.json 47 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\obj\Debug\net9.0\HorseSearch.GeneratedMSBuildEditorConfig.editorconfig 48 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\obj\Debug\net9.0\HorseSearch.AssemblyInfoInputs.cache 49 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\obj\Debug\net9.0\HorseSearch.AssemblyInfo.cs 50 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\obj\Debug\net9.0\HorseSearch.csproj.CoreCompileInputs.cache 51 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\obj\Debug\net9.0\HorseSearch.MvcApplicationPartsAssemblyInfo.cs 52 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\obj\Debug\net9.0\HorseSearch.MvcApplicationPartsAssemblyInfo.cache 53 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\obj\Debug\net9.0\HorseSearch.sourcelink.json 54 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\obj\Debug\net9.0\rjimswa.dswa.cache.json 55 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\obj\Debug\net9.0\rjsmrazor.dswa.cache.json 56 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\obj\Debug\net9.0\rjsmcshtml.dswa.cache.json 57 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\obj\Debug\net9.0\scopedcss\bundle\HorseSearch.styles.css 58 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\obj\Debug\net9.0\staticwebassets.build.json 59 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\obj\Debug\net9.0\staticwebassets.build.json.cache 60 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\obj\Debug\net9.0\staticwebassets.development.json 61 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\obj\Debug\net9.0\staticwebassets.build.endpoints.json 62 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\obj\Debug\net9.0\HorseSea.26FBD9FC.Up2Date 63 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\obj\Debug\net9.0\HorseSearch.dll 64 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\obj\Debug\net9.0\refint\HorseSearch.dll 65 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\obj\Debug\net9.0\HorseSearch.pdb 66 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\obj\Debug\net9.0\HorseSearch.genruntimeconfig.cache 67 | C:\Appl\GITHUB\Horse-Search\Backend\HorseSearch\obj\Debug\net9.0\ref\HorseSearch.dll 68 | -------------------------------------------------------------------------------- /Backend/HorseSearch/obj/project.assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "targets": { 4 | "net8.0": { 5 | "HtmlAgilityPack/1.11.45": { 6 | "type": "package", 7 | "compile": { 8 | "lib/netstandard2.0/HtmlAgilityPack.dll": { 9 | "related": ".deps.json;.pdb;.xml" 10 | } 11 | }, 12 | "runtime": { 13 | "lib/netstandard2.0/HtmlAgilityPack.dll": { 14 | "related": ".deps.json;.pdb;.xml" 15 | } 16 | } 17 | }, 18 | "Microsoft.AspNetCore.OpenApi/8.0.8": { 19 | "type": "package", 20 | "dependencies": { 21 | "Microsoft.OpenApi": "1.4.3" 22 | }, 23 | "compile": { 24 | "lib/net8.0/Microsoft.AspNetCore.OpenApi.dll": { 25 | "related": ".xml" 26 | } 27 | }, 28 | "runtime": { 29 | "lib/net8.0/Microsoft.AspNetCore.OpenApi.dll": { 30 | "related": ".xml" 31 | } 32 | }, 33 | "frameworkReferences": [ 34 | "Microsoft.AspNetCore.App" 35 | ] 36 | }, 37 | "Microsoft.OpenApi/1.4.3": { 38 | "type": "package", 39 | "compile": { 40 | "lib/netstandard2.0/Microsoft.OpenApi.dll": { 41 | "related": ".pdb;.xml" 42 | } 43 | }, 44 | "runtime": { 45 | "lib/netstandard2.0/Microsoft.OpenApi.dll": { 46 | "related": ".pdb;.xml" 47 | } 48 | } 49 | } 50 | } 51 | }, 52 | "libraries": { 53 | "HtmlAgilityPack/1.11.45": { 54 | "sha512": "adcQUl0CTUJuOVb365DEVxAs7z36AjUU/3JCq65DuYRFJ/+Fsd99MxpkiE9xwelYAcsD0cFlOKI2FXhxSoA3iw==", 55 | "type": "package", 56 | "path": "htmlagilitypack/1.11.45", 57 | "files": [ 58 | ".nupkg.metadata", 59 | ".signature.p7s", 60 | "htmlagilitypack.1.11.45.nupkg.sha512", 61 | "htmlagilitypack.nuspec", 62 | "lib/Net35/HtmlAgilityPack.dll", 63 | "lib/Net35/HtmlAgilityPack.pdb", 64 | "lib/Net35/HtmlAgilityPack.xml", 65 | "lib/Net40-client/HtmlAgilityPack.dll", 66 | "lib/Net40-client/HtmlAgilityPack.pdb", 67 | "lib/Net40-client/HtmlAgilityPack.xml", 68 | "lib/Net40/HtmlAgilityPack.XML", 69 | "lib/Net40/HtmlAgilityPack.dll", 70 | "lib/Net40/HtmlAgilityPack.pdb", 71 | "lib/Net45/HtmlAgilityPack.XML", 72 | "lib/Net45/HtmlAgilityPack.dll", 73 | "lib/Net45/HtmlAgilityPack.pdb", 74 | "lib/NetCore45/HtmlAgilityPack.XML", 75 | "lib/NetCore45/HtmlAgilityPack.dll", 76 | "lib/NetCore45/HtmlAgilityPack.pdb", 77 | "lib/netstandard1.3/HtmlAgilityPack.deps.json", 78 | "lib/netstandard1.3/HtmlAgilityPack.dll", 79 | "lib/netstandard1.3/HtmlAgilityPack.pdb", 80 | "lib/netstandard1.3/HtmlAgilityPack.xml", 81 | "lib/netstandard1.6/HtmlAgilityPack.deps.json", 82 | "lib/netstandard1.6/HtmlAgilityPack.dll", 83 | "lib/netstandard1.6/HtmlAgilityPack.pdb", 84 | "lib/netstandard1.6/HtmlAgilityPack.xml", 85 | "lib/netstandard2.0/HtmlAgilityPack.deps.json", 86 | "lib/netstandard2.0/HtmlAgilityPack.dll", 87 | "lib/netstandard2.0/HtmlAgilityPack.pdb", 88 | "lib/netstandard2.0/HtmlAgilityPack.xml", 89 | "lib/portable-net45+netcore45+wp8+MonoAndroid+MonoTouch/HtmlAgilityPack.XML", 90 | "lib/portable-net45+netcore45+wp8+MonoAndroid+MonoTouch/HtmlAgilityPack.dll", 91 | "lib/portable-net45+netcore45+wp8+MonoAndroid+MonoTouch/HtmlAgilityPack.pdb", 92 | "lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid+MonoTouch/HtmlAgilityPack.XML", 93 | "lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid+MonoTouch/HtmlAgilityPack.dll", 94 | "lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid+MonoTouch/HtmlAgilityPack.pdb", 95 | "lib/uap10.0/HtmlAgilityPack.XML", 96 | "lib/uap10.0/HtmlAgilityPack.dll", 97 | "lib/uap10.0/HtmlAgilityPack.pdb", 98 | "lib/uap10.0/HtmlAgilityPack.pri" 99 | ] 100 | }, 101 | "Microsoft.AspNetCore.OpenApi/8.0.8": { 102 | "sha512": "wNHhohqP8rmsQ4UhKbd6jZMD6l+2Q/+DvRBT0Cgqeuglr13aF6sSJWicZKCIhZAUXzuhkdwtHVc95MlPlFk0dA==", 103 | "type": "package", 104 | "path": "microsoft.aspnetcore.openapi/8.0.8", 105 | "files": [ 106 | ".nupkg.metadata", 107 | ".signature.p7s", 108 | "Icon.png", 109 | "THIRD-PARTY-NOTICES.TXT", 110 | "lib/net8.0/Microsoft.AspNetCore.OpenApi.dll", 111 | "lib/net8.0/Microsoft.AspNetCore.OpenApi.xml", 112 | "microsoft.aspnetcore.openapi.8.0.8.nupkg.sha512", 113 | "microsoft.aspnetcore.openapi.nuspec" 114 | ] 115 | }, 116 | "Microsoft.OpenApi/1.4.3": { 117 | "sha512": "rURwggB+QZYcSVbDr7HSdhw/FELvMlriW10OeOzjPT7pstefMo7IThhtNtDudxbXhW+lj0NfX72Ka5EDsG8x6w==", 118 | "type": "package", 119 | "path": "microsoft.openapi/1.4.3", 120 | "files": [ 121 | ".nupkg.metadata", 122 | ".signature.p7s", 123 | "lib/netstandard2.0/Microsoft.OpenApi.dll", 124 | "lib/netstandard2.0/Microsoft.OpenApi.pdb", 125 | "lib/netstandard2.0/Microsoft.OpenApi.xml", 126 | "microsoft.openapi.1.4.3.nupkg.sha512", 127 | "microsoft.openapi.nuspec" 128 | ] 129 | } 130 | }, 131 | "projectFileDependencyGroups": { 132 | "net8.0": [ 133 | "HtmlAgilityPack >= 1.11.45", 134 | "Microsoft.AspNetCore.OpenApi >= 8.0.8" 135 | ] 136 | }, 137 | "packageFolders": { 138 | "C:\\Users\\vhor\\.nuget\\packages\\": {}, 139 | "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {} 140 | }, 141 | "project": { 142 | "version": "1.0.0", 143 | "restore": { 144 | "projectUniqueName": "c:\\Appl\\GITHUB\\Horse-Search\\Backend\\HorseSearch\\HorseSearch.csproj", 145 | "projectName": "HorseSearch", 146 | "projectPath": "c:\\Appl\\GITHUB\\Horse-Search\\Backend\\HorseSearch\\HorseSearch.csproj", 147 | "packagesPath": "C:\\Users\\vhor\\.nuget\\packages\\", 148 | "outputPath": "c:\\Appl\\GITHUB\\Horse-Search\\Backend\\HorseSearch\\obj\\", 149 | "projectStyle": "PackageReference", 150 | "fallbackFolders": [ 151 | "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" 152 | ], 153 | "configFilePaths": [ 154 | "C:\\Users\\vhor\\AppData\\Roaming\\NuGet\\NuGet.Config", 155 | "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", 156 | "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" 157 | ], 158 | "originalTargetFrameworks": [ 159 | "net8.0" 160 | ], 161 | "sources": { 162 | "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, 163 | "https://api.nuget.org/v3/index.json": {} 164 | }, 165 | "frameworks": { 166 | "net8.0": { 167 | "targetAlias": "net8.0", 168 | "projectReferences": {} 169 | } 170 | }, 171 | "warningProperties": { 172 | "warnAsError": [ 173 | "NU1605" 174 | ] 175 | }, 176 | "restoreAuditProperties": { 177 | "enableAudit": "true", 178 | "auditLevel": "low", 179 | "auditMode": "direct" 180 | }, 181 | "SdkAnalysisLevel": "9.0.300" 182 | }, 183 | "frameworks": { 184 | "net8.0": { 185 | "targetAlias": "net8.0", 186 | "dependencies": { 187 | "HtmlAgilityPack": { 188 | "target": "Package", 189 | "version": "[1.11.45, )" 190 | }, 191 | "Microsoft.AspNetCore.OpenApi": { 192 | "target": "Package", 193 | "version": "[8.0.8, )" 194 | } 195 | }, 196 | "imports": [ 197 | "net461", 198 | "net462", 199 | "net47", 200 | "net471", 201 | "net472", 202 | "net48", 203 | "net481" 204 | ], 205 | "assetTargetFallback": true, 206 | "warn": true, 207 | "frameworkReferences": { 208 | "Microsoft.AspNetCore.App": { 209 | "privateAssets": "none" 210 | }, 211 | "Microsoft.NETCore.App": { 212 | "privateAssets": "all" 213 | } 214 | }, 215 | "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" 216 | } 217 | } 218 | } 219 | } --------------------------------------------------------------------------------