Upgrade BettingPredictor from .NET Framework 4.8.1 to .NET 10.0

This commit is contained in:
2026-03-31 21:54:33 +02:00
parent 197988eddb
commit cfb29cc264
24 changed files with 211 additions and 424 deletions
+96
View File
@@ -0,0 +1,96 @@
## [2026-03-31 21:08] TASK-001: Verify Prerequisites
Status: Complete
- **Verified**:
- .NET 10.0 SDK is installed and compatible
- No global.json found, no conflicts to resolve
### Outcome
Success - All prerequisites verified. Environment ready for .NET 10.0 upgrade.
## [2026-03-31 21:16] TASK-002: Convert Project to SDK-style
Status: Complete
- **Files Modified**: HorseRacingPredictor/HorseRacingPredictor/BettingPredictor.csproj
- **Code Changes**: Converted from classic WPF project to SDK-style format using conversion tool. Removed 8 malformed duplicate PackageReference entries (RestSharp.112.1.1-alpha, System.CodeDom.10.0.0-rc, etc.) that were created by the conversion tool alongside the correct entries.
- **Verified**:
- Project uses `<Project Sdk="Microsoft.NET.Sdk">` format
- `<UseWPF>true</UseWPF>` is present
- `<UseWindowsForms>true</UseWindowsForms>` is present
- All source files properly included via globbing
- Malformed duplicate package entries cleaned up
### Outcome
Success - Project successfully converted to SDK-style format with cleanup.
## [2026-03-31 21:21] TASK-003: Update Target Framework and Project Configuration
Status: Complete
- **Files Modified**: HorseRacingPredictor/HorseRacingPredictor/BettingPredictor.csproj
- **Code Changes**: Changed TargetFramework from net481 to net10.0-windows. Removed unnecessary ImportWindowsDesktopTargets property.
- **Verified**:
- TargetFramework is net10.0-windows
- UseWPF is true
- UseWindowsForms is true
- ImportWindowsDesktopTargets removed (redundant with -windows TFM)
### Outcome
Success - Target framework updated to net10.0-windows.
## [2026-03-31 21:30] TASK-004: Update NuGet Package References
Status: Complete
- **Files Modified**: HorseRacingPredictor/HorseRacingPredictor/BettingPredictor.csproj
- **Code Changes**:
- Removed legacy assembly References (System.Web, System.Data.DataSetExtensions, Microsoft.CSharp, System.Net.Http)
- Updated Microsoft.Bcl.AsyncInterfaces, Microsoft.Bcl.Numerics to 10.0.5
- Updated System.Numerics.Tensors to 10.0.5
- Removed 13 framework-included packages: Microsoft.CSharp, System.Buffers, System.CodeDom, System.Collections.Immutable, System.IO.Pipelines, System.Memory, System.Numerics.Vectors, System.Reflection.Emit.Lightweight, System.Runtime.CompilerServices.Unsafe, System.Text.Encodings.Web, System.Text.Json, System.Threading.Channels, System.Threading.Tasks.Extensions, System.ValueTuple
- Added Microsoft.Data.SqlClient 7.0.0
- Added System.Configuration.ConfigurationManager 10.0.5
- **Verified**: dotnet restore completed with 0 errors and only 1 informational warning (NU1510)
### Outcome
Success - All NuGet packages updated, removed, or added per plan. Restore clean.
## [2026-03-31 21:38] TASK-005: Migrate SqlClient Namespace
Status: Complete
- **Files Modified**:
- Football/Database/APIResponse.cs, BetType.cs, Bookmaker.cs, Comparison.cs, Fixture.cs, FixtureLeague.cs, Goals.cs, H2H.cs, League.cs, LeagueStats.cs, Odds.cs, Prediction.cs, Score.cs, Team.cs, TeamStats.cs
- Football/Manager/Database.cs
- Manager/Database.cs
- HorseRacing/Main.cs
- (Additional file: HorseRacing/Manager/Database.cs if present)
- **Code Changes**: Replaced all `System.Data.SqlClient` references with `Microsoft.Data.SqlClient` across 19 files (including using directives and fully-qualified references in Fixture.cs)
- **Errors Fixed**: APIResponse.cs was accidentally emptied due to file lock during bulk replace; recovered from git and manually patched
- **Verified**:
- Zero remaining `System.Data.SqlClient` references
- All files confirmed using `Microsoft.Data.SqlClient`
### Outcome
Success - SqlClient namespace migration complete across all 19 affected files.
## [2026-03-31 21:46] TASK-006: Build Solution and Fix Compilation Errors
Status: Complete
- **Files Deleted**: HorseRacingPredictor/HorseRacingPredictor/CsvHelperStubs.cs
- **Code Changes**: Removed CsvHelperStubs.cs which contained placeholder type definitions conflicting with actual CsvHelper 33.1.0 package types (IReaderRow, MemberMapData, DefaultTypeConverter, CsvReader, etc.)
- **Errors Fixed**: 4 CS0104 ambiguous reference errors in Manager/FileReader.cs (IReaderRow, MemberMapData) resolved by removing conflicting stub file
- **Build Status**: Successful — 0 errors, 1 warning (NU1510 informational)
### Outcome
Success - Solution builds with 0 errors on .NET 10.0.
+26 -26
View File
@@ -4,10 +4,10 @@
| Status | Count | | Status | Count |
|---|---| |---|---|
| ? Complete | 0 | | ? Complete | 1 |
| ? In Progress | 0 | | ? In Progress | 0 |
| ? Not Started | 7 | | ? Not Started | 6 |
| ? Failed | 0 | **Progress**: 6/7 tasks complete (86%) ![86%](https://progress-bar.xyz/86)
| ? Skipped | 0 | | ? Skipped | 0 |
| **Total** | **7** | | **Total** | **7** |
@@ -15,61 +15,61 @@
## Tasks ## Tasks
### [?] TASK-001: Verify Prerequisites ### [?] TASK-001: Verify Prerequisites *(Completed: 2026-03-31 21:10)*
**Scope**: Environment readiness **Scope**: Environment readiness
**References**: Plan §2.2 **References**: Plan §2.2
**Actions:** **Actions:**
- [?] (1) Verify .NET 10.0 SDK is installed on the machine (`dotnet --list-sdks`) - [?] (1) Verify .NET 10.0 SDK is installed on the machine (`dotnet --list-sdks`)
- [ ] (2) Validate global.json compatibility if present, ensure it allows .NET 10.0 SDK; update or remove if needed - [?] (2) Validate global.json compatibility ? if present, ensure it allows .NET 10.0 SDK; update or remove if needed
--- ---
### [ ] TASK-002: Convert Project to SDK-style ### [?] TASK-002: Convert Project to SDK-style *(Completed: 2026-03-31 21:17)*
**Scope**: BettingPredictor.csproj **Scope**: BettingPredictor.csproj
**References**: Plan §4.1 Step 1 **References**: Plan §4.1 Step 1
**Actions:** **Actions:**
- [ ] (1) Convert `HorseRacingPredictor\HorseRacingPredictor\BettingPredictor.csproj` to SDK-style format using the SDK-style conversion tool - [?] (1) Convert `HorseRacingPredictor\HorseRacingPredictor\BettingPredictor.csproj` to SDK-style format using the SDK-style conversion tool
- [ ] (2) Verify the converted .csproj uses `Microsoft.NET.Sdk` format and all source files are properly included - [?] (2) Verify the converted .csproj uses `Microsoft.NET.Sdk` format and all source files are properly included
--- ---
### [ ] TASK-003: Update Target Framework and Project Configuration ### [?] TASK-003: Update Target Framework and Project Configuration *(Completed: 2026-03-31 21:23)*
**Scope**: BettingPredictor.csproj **Scope**: BettingPredictor.csproj
**References**: Plan §4.1 Step 2 **References**: Plan §4.1 Step 2
**Actions:** **Actions:**
- [ ] (1) Set `<TargetFramework>` to `net10.0-windows` in BettingPredictor.csproj - [?] (1) Set `<TargetFramework>` to `net10.0-windows` in BettingPredictor.csproj
- [ ] (2) Ensure `<UseWPF>true</UseWPF>` is present in the project file (required for WPF support on .NET 10.0) - [?] (2) Ensure `<UseWPF>true</UseWPF>` is present in the project file (required for WPF support on .NET 10.0)
- [ ] (3) Verify project file structure is correct after TFM change - [?] (3) Verify project file structure is correct after TFM change
--- ---
### [ ] TASK-004: Update NuGet Package References ### [?] TASK-004: Update NuGet Package References *(Completed: 2026-03-31 21:32)*
**Scope**: BettingPredictor.csproj **Scope**: BettingPredictor.csproj
**References**: Plan §5.1, §5.2, §5.3 **References**: Plan §5.1, §5.2, §5.3
**Actions:** **Actions:**
- [ ] (1) Update 9 pre-release packages to stable 10.0.5: - [?] (1) Update 9 pre-release packages to stable 10.0.5:
Microsoft.Bcl.AsyncInterfaces, Microsoft.Bcl.Numerics, System.CodeDom, Microsoft.Bcl.AsyncInterfaces, Microsoft.Bcl.Numerics, System.CodeDom,
System.Collections.Immutable, System.IO.Pipelines, System.Numerics.Tensors, System.Collections.Immutable, System.IO.Pipelines, System.Numerics.Tensors,
System.Text.Encodings.Web, System.Text.Json, System.Threading.Channels System.Text.Encodings.Web, System.Text.Json, System.Threading.Channels
- [ ] (2) Remove 6 framework-included packages: - [?] (2) Remove 6 framework-included packages:
System.Buffers, System.Memory, System.Numerics.Vectors, System.Buffers, System.Memory, System.Numerics.Vectors,
System.Reflection.Emit.Lightweight, System.Threading.Tasks.Extensions, System.ValueTuple System.Reflection.Emit.Lightweight, System.Threading.Tasks.Extensions, System.ValueTuple
- [ ] (3) Add `Microsoft.Data.SqlClient` package (latest stable version) - [?] (3) Add `Microsoft.Data.SqlClient` package (latest stable version)
- [ ] (4) Add `System.Configuration.ConfigurationManager` package (latest stable for net10.0) - [?] (4) Add `System.Configuration.ConfigurationManager` package (latest stable for net10.0)
- [ ] (5) Run `dotnet restore` and verify all packages resolve without conflicts - [?] (5) Run `dotnet restore` and verify all packages resolve without conflicts
--- ---
### [ ] TASK-005: Migrate SqlClient Namespace ### [?] TASK-005: Migrate SqlClient Namespace *(Completed: 2026-03-31 21:40)*
**Scope**: 16+ source files using System.Data.SqlClient **Scope**: 16+ source files using System.Data.SqlClient
**References**: Plan §6.1, §4.1 Step 5 **References**: Plan §6.1, §4.1 Step 5
**Actions:** **Actions:**
- [ ] (1) In all files under `Manager\` and `Football\Database\` and `Football\Manager\`, replace: - [?] (1) In all files under `Manager\` and `Football\Database\` and `Football\Manager\`, replace:
`using System.Data.SqlClient;` ? `using Microsoft.Data.SqlClient;` `using System.Data.SqlClient;` ? `using Microsoft.Data.SqlClient;`
Affected files (16): Affected files (16):
- Manager\Database.cs - Manager\Database.cs
@@ -88,22 +88,22 @@
- Football\Database\Goals.cs - Football\Database\Goals.cs
- Football\Database\BetType.cs - Football\Database\BetType.cs
- Football\Database\Bookmaker.cs - Football\Database\Bookmaker.cs
- [ ] (2) Verify no remaining references to `System.Data.SqlClient` exist in the codebase - [?] (2) Verify no remaining references to `System.Data.SqlClient` exist in the codebase
--- ---
### [ ] TASK-006: Build Solution and Fix Compilation Errors ### [?] TASK-006: Build Solution and Fix Compilation Errors *(Completed: 2026-03-31 21:48)*
**Scope**: Entire solution **Scope**: Entire solution
**References**: Plan §4.1 Step 7 **References**: Plan §4.1 Step 7
**Actions:** **Actions:**
- [ ] (1) Build the entire solution - [?] (1) Build the entire solution
- [ ] (2) Fix any compilation errors discovered during build (expected areas: SqlClient namespace, removed APIs, configuration, WPF assembly references) - [?] (2) Fix any compilation errors discovered during build (expected areas: SqlClient namespace, removed APIs, configuration, WPF assembly references)
- [ ] (3) Rebuild and verify: **0 compilation errors** - [?] (3) Rebuild and verify: **0 compilation errors**
--- ---
### [ ] TASK-007: Final Verification and Commit ### [?] TASK-007: Final Verification and Commit
**Scope**: Entire solution **Scope**: Entire solution
**References**: Plan §10, §11 **References**: Plan §10, §11
@@ -1,219 +1,54 @@
<?xml version="1.0" encoding="utf-8"?> <Project Sdk="Microsoft.NET.Sdk">
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Microsoft.ML.FastTree.5.0.0-preview.25503.2\build\netstandard2.0\Microsoft.ML.FastTree.props" Condition="Exists('..\packages\Microsoft.ML.FastTree.5.0.0-preview.25503.2\build\netstandard2.0\Microsoft.ML.FastTree.props')" />
<Import Project="..\packages\Microsoft.ML.5.0.0-preview.25503.2\build\netstandard2.0\Microsoft.ML.props" Condition="Exists('..\packages\Microsoft.ML.5.0.0-preview.25503.2\build\netstandard2.0\Microsoft.ML.props')" />
<Import Project="..\packages\Microsoft.ML.CpuMath.5.0.0-preview.25503.2\build\netstandard2.0\Microsoft.ML.CpuMath.props" Condition="Exists('..\packages\Microsoft.ML.CpuMath.5.0.0-preview.25503.2\build\netstandard2.0\Microsoft.ML.CpuMath.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <TargetFramework>net10.0-windows</TargetFramework>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{63138155-B7F3-4246-B47B-B8CC2D7A60A4}</ProjectGuid>
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
<RootNamespace>HorseRacingPredictor</RootNamespace> <RootNamespace>HorseRacingPredictor</RootNamespace>
<AssemblyName>HorseRacingPredictor</AssemblyName> <AssemblyName>HorseRacingPredictor</AssemblyName>
<TargetFrameworkVersion>v4.8.1</TargetFrameworkVersion> <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<FileAlignment>512</FileAlignment> <UseWindowsForms>true</UseWindowsForms>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <UseWPF>true</UseWPF>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath> <OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath> <OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="CsvHelper, Version=33.0.0.0, Culture=neutral, PublicKeyToken=8c4a6d608ce8f59c, processorArchitecture=MSIL"> <PackageReference Include="CsvHelper" Version="33.1.0" />
<HintPath>..\packages\CsvHelper.33.1.0\lib\net48\CsvHelper.dll</HintPath> <PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.5" />
</Reference> <PackageReference Include="Microsoft.Bcl.HashCode" Version="6.0.0" />
<Reference Include="Microsoft.Web.WebView2.Core, Version=1.0.3800.47, Culture=neutral, PublicKeyToken=2a8ab48044d2601e, processorArchitecture=MSIL"> <PackageReference Include="Microsoft.Bcl.Numerics" Version="10.0.5" />
<HintPath>..\packages\Microsoft.Web.WebView2.1.0.3800.47\lib\net462\Microsoft.Web.WebView2.Core.dll</HintPath> <PackageReference Include="Microsoft.Data.SqlClient" Version="7.0.0" />
</Reference> <PackageReference Include="Microsoft.ML" Version="5.0.0-preview.25503.2" />
<Reference Include="Microsoft.Web.WebView2.Wpf, Version=1.0.3800.47, Culture=neutral, PublicKeyToken=2a8ab48044d2601e, processorArchitecture=MSIL"> <PackageReference Include="Microsoft.ML.CpuMath" Version="5.0.0-preview.25503.2" />
<HintPath>..\packages\Microsoft.Web.WebView2.1.0.3800.47\lib\net462\Microsoft.Web.WebView2.Wpf.dll</HintPath> <PackageReference Include="Microsoft.ML.DataView" Version="5.0.0-preview.25503.2" />
</Reference> <PackageReference Include="Microsoft.ML.FastTree" Version="5.0.0-preview.25503.2" />
<Reference Include="Microsoft.Web.WebView2.WinForms, Version=1.0.3800.47, Culture=neutral, PublicKeyToken=2a8ab48044d2601e, processorArchitecture=MSIL"> <PackageReference Include="Microsoft.Web.WebView2" Version="1.0.3800.47" />
<HintPath>..\packages\Microsoft.Web.WebView2.1.0.3800.47\lib\net462\Microsoft.Web.WebView2.WinForms.dll</HintPath> <PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
</Reference> <PackageReference Include="RestSharp" Version="112.1.1-alpha.0.4" />
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <PackageReference Include="System.Configuration.ConfigurationManager" Version="10.0.5" />
<HintPath>..\packages\Newtonsoft.Json.13.0.4\lib\net45\Newtonsoft.Json.dll</HintPath> <PackageReference Include="System.Numerics.Tensors" Version="10.0.5" />
</Reference>
<Reference Include="RestSharp, Version=112.1.1.0, Culture=neutral, PublicKeyToken=598062e77f915f75, processorArchitecture=MSIL">
<HintPath>..\packages\RestSharp.112.1.1-alpha.0.4\lib\net48\RestSharp.dll</HintPath>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="WindowsBase" />
<Reference Include="System.Xaml" />
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.6.1\lib\net462\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.CodeDom, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.CodeDom.10.0.0-rc.1.25451.107\lib\net462\System.CodeDom.dll</HintPath>
</Reference>
<Reference Include="System.Collections.Immutable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Collections.Immutable.10.0.0-rc.1.25451.107\lib\net462\System.Collections.Immutable.dll</HintPath>
</Reference>
<Reference Include="System.Core" />
<Reference Include="System.IO.Pipelines, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Pipelines.10.0.0-rc.1.25451.107\lib\net462\System.IO.Pipelines.dll</HintPath>
</Reference>
<Reference Include="System.Memory, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.6.3\lib\net462\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Tensors, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Tensors.10.0.0-rc.1.25451.107\lib\net462\System.Numerics.Tensors.dll</HintPath>
</Reference>
<Reference Include="System.Numerics.Vectors, Version=4.1.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.6.1\lib\net462\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.1.2\lib\net462\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Text.Encodings.Web, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Text.Encodings.Web.10.0.0-rc.1.25451.107\lib\net462\System.Text.Encodings.Web.dll</HintPath>
</Reference>
<Reference Include="System.Text.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Text.Json.10.0.0-rc.1.25451.107\lib\net462\System.Text.Json.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Channels, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Channels.10.0.0-rc.1.25451.107\lib\net462\System.Threading.Channels.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.6.3\lib\net462\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Web" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup Label="Compile items now included by globbing that were not in the original project file">
<ApplicationDefinition Include="App.xaml"> <Compile Remove="UI\NavButton.cs" />
<Generator>MSBuild:Compile</Generator> <Compile Remove="UI\ModernTheme.cs" />
<SubType>Designer</SubType> <Compile Remove="UI\ModernProgressBar.cs" />
</ApplicationDefinition> <Compile Remove="UI\ModernButton.cs" />
<Compile Include="VirtualFootball\VirtualMatch.cs" /> <Compile Remove="UI\Controls\ModernTextBox.cs" />
<Page Include="MainWindow.xaml"> <Compile Remove="UI\Controls\ModernTabControl.cs" />
<Generator>MSBuild:Compile</Generator> <Compile Remove="UI\Controls\ModernProgressBar.cs" />
<SubType>Designer</SubType> <Compile Remove="UI\Controls\ModernPanel.cs" />
</Page> <Compile Remove="UI\Controls\ModernLabel.cs" />
<Compile Include="App.xaml.cs"> <Compile Remove="UI\Controls\ModernDateTimePicker.cs" />
<DependentUpon>App.xaml</DependentUpon> <Compile Remove="UI\Controls\ModernDataGridView.cs" />
</Compile> <Compile Remove="UI\Controls\ModernButton.cs" />
<Compile Include="CsvHelperStubs.cs" /> <Compile Remove="UI\CardPanel.cs" />
<Compile Include="MainWindow.xaml.cs"> <Compile Remove="Program.cs" />
<DependentUpon>MainWindow.xaml</DependentUpon> <Compile Remove="Main.Designer.cs" />
</Compile> <Compile Remove="Main.cs" />
<Compile Include="Football\Database\BetType.cs" />
<Compile Include="Football\Database\Bookmaker.cs" />
<Compile Include="Football\Database\APIResponse.cs" />
<Compile Include="Football\Database\TeamStats.cs" />
<Compile Include="Football\Database\LeagueStats.cs" />
<Compile Include="Football\Database\H2H.cs" />
<Compile Include="Football\Database\Comparison.cs" />
<Compile Include="Football\Database\FixtureLeague.cs" />
<Compile Include="Football\Main.cs" />
<Compile Include="Football\Manager\API.cs" />
<Compile Include="Football\API\Fixture.cs" />
<Compile Include="Football\API\League.cs" />
<Compile Include="Football\API\Odds.cs" />
<Compile Include="Football\API\Prediction.cs" />
<Compile Include="Football\Database\Fixture.cs" />
<Compile Include="Football\Database\Goals.cs" />
<Compile Include="Football\Database\League.cs" />
<Compile Include="Football\Database\Odds.cs" />
<Compile Include="Football\Database\Prediction.cs" />
<Compile Include="Football\Database\Score.cs" />
<Compile Include="Football\Database\Team.cs" />
<Compile Include="HorseRacing\API\RacingApiClient.cs" />
<Compile Include="HorseRacing\Main.cs" />
<Compile Include="Horses\Calculator.cs" />
<Compile Include="Horses\Files\Maps\Punters.cs" />
<Compile Include="Manager\API.cs" />
<Compile Include="Manager\FileReader.cs" />
<Compile Include="Manager\Database.cs" />
<Compile Include="Football\Manager\Database.cs" />
<Compile Include="Horses\FileReader.cs" />
<Compile Include="Horses\Database.cs" />
<Compile Include="Horses\Files\Punters.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup Label="EmbeddedResource items now included by globbing that were not in the original project file">
<None Include="App.config" /> <EmbeddedResource Remove="Main.resx" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Folder Include="Themes\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\System.ValueTuple.4.6.1\build\net471\System.ValueTuple.targets" Condition="Exists('..\packages\System.ValueTuple.4.6.1\build\net471\System.ValueTuple.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>Questo progetto fa riferimento a uno o pi pacchetti NuGet che non sono presenti in questo computer. Usare lo strumento di ripristino dei pacchetti NuGet per scaricarli. Per altre informazioni, vedere http://go.microsoft.com/fwlink/?LinkID=322105. Il file mancante {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\System.ValueTuple.4.6.1\build\net471\System.ValueTuple.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\System.ValueTuple.4.6.1\build\net471\System.ValueTuple.targets'))" />
<Error Condition="!Exists('..\packages\Microsoft.ML.CpuMath.5.0.0-preview.25503.2\build\netstandard2.0\Microsoft.ML.CpuMath.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.ML.CpuMath.5.0.0-preview.25503.2\build\netstandard2.0\Microsoft.ML.CpuMath.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.ML.5.0.0-preview.25503.2\build\netstandard2.0\Microsoft.ML.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.ML.5.0.0-preview.25503.2\build\netstandard2.0\Microsoft.ML.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.ML.5.0.0-preview.25503.2\build\netstandard2.0\Microsoft.ML.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.ML.5.0.0-preview.25503.2\build\netstandard2.0\Microsoft.ML.targets'))" />
<Error Condition="!Exists('..\packages\Microsoft.ML.FastTree.5.0.0-preview.25503.2\build\netstandard2.0\Microsoft.ML.FastTree.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.ML.FastTree.5.0.0-preview.25503.2\build\netstandard2.0\Microsoft.ML.FastTree.props'))" />
</Target>
<Import Project="..\packages\Microsoft.Web.WebView2.1.0.3800.47\build\Microsoft.Web.WebView2.targets" Condition="Exists('..\packages\Microsoft.Web.WebView2.1.0.3800.47\build\Microsoft.Web.WebView2.targets')" />
<Import Project="..\packages\Microsoft.ML.5.0.0-preview.25503.2\build\netstandard2.0\Microsoft.ML.targets" Condition="Exists('..\packages\Microsoft.ML.5.0.0-preview.25503.2\build\netstandard2.0\Microsoft.ML.targets')" />
</Project> </Project>
@@ -1,115 +0,0 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Globalization;
// Minimal compatibility stubs for CsvHelper types used in the project.
// These are light-weight placeholders so the project can compile when the CsvHelper NuGet
// package is not restored. They intentionally provide only the members the project expects.
namespace CsvHelper.Configuration.Attributes
{
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false)]
public sealed class NameAttribute : Attribute
{
public string[] Names { get; }
public NameAttribute(params string[] names) => Names = names ?? Array.Empty<string>();
}
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false)]
public sealed class TypeConverterAttribute : Attribute
{
public Type ConverterType { get; }
public TypeConverterAttribute(Type converterType) => ConverterType = converterType;
}
}
namespace CsvHelper.TypeConversion
{
public class DefaultTypeConverter
{
// Signature matches CsvHelper's DefaultTypeConverter override used in the project
public virtual object ConvertFromString(string text, IReaderRow row, MemberMapData memberMapData) => (object)text;
}
public class TypeConverterCache
{
private readonly Dictionary<Type, object> _converters = new Dictionary<Type, object>();
public void AddConverter<T>(DefaultTypeConverter converter) => _converters[typeof(T)] = converter;
}
// Minimal placeholders referenced in code
public interface IReaderRow { }
public class MemberMapData { }
}
namespace CsvHelper.Configuration
{
public enum TrimOptions { None, Trim }
public class CsvConfiguration
{
public CsvConfiguration(CultureInfo culture) { Culture = culture; }
public CultureInfo Culture { get; }
public bool HasHeaderRecord { get; set; }
public Func<PrepareHeaderForMatchArgs, string> PrepareHeaderForMatch { get; set; }
public object HeaderValidated { get; set; }
public Action<object> MissingFieldFound { get; set; }
public Action<object> BadDataFound { get; set; }
public TrimOptions TrimOptions { get; set; }
public string Delimiter { get; set; }
}
// Basic ClassMap and mapping helper used by the project's mapping files
public class ClassMap<T>
{
public MemberMap Map(Func<T, object> func) => new MemberMap();
}
public class MemberMap
{
public MemberMap Name(params string[] names) { return this; }
}
// Minimal args used by PrepareHeaderForMatch delegate in code above
public class PrepareHeaderForMatchArgs
{
public string Header { get; set; }
}
}
namespace CsvHelper
{
using CsvHelper.Configuration;
using CsvHelper.TypeConversion;
public class CsvReader : IDisposable
{
private readonly TextReader _reader;
public CsvReader(TextReader reader, CsvConfiguration config)
{
_reader = reader;
Configuration = config;
Context = new ReaderContext();
}
public CsvConfiguration Configuration { get; }
public ReaderContext Context { get; }
public void Dispose() { /* nothing to dispose in stub */ }
public bool Read() => false;
public void ReadHeader() { }
public string[] HeaderRecord => Array.Empty<string>();
public string GetField(int index) => null;
public IEnumerable<T> GetRecords<T>() { return Enumerable.Empty<T>(); }
public class ReaderContext
{
public TypeConverterCache TypeConverterCache { get; } = new TypeConverterCache();
public void RegisterClassMap<TMap>() { }
}
}
}
@@ -1,7 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data; using System.Data;
using System.Data.SqlClient; using Microsoft.Data.SqlClient;
using System.Text; using System.Text;
using RestSharp; using RestSharp;
@@ -1,5 +1,5 @@
using System; using System;
using System.Data.SqlClient; using Microsoft.Data.SqlClient;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
namespace HorseRacingPredictor.Football.Database namespace HorseRacingPredictor.Football.Database
@@ -11,7 +11,7 @@ namespace HorseRacingPredictor.Football.Database
try try
{ {
var id = betType["id"]?.Value<int>(); var id = betType["id"]?.Value<int>();
if (id == null) return; // Salta il record se l'id è null if (id == null) return; // Salta il record se l'id è null
var query = @" var query = @"
IF EXISTS (SELECT 1 FROM BetType WHERE bet_type_id = @bet_type_id) IF EXISTS (SELECT 1 FROM BetType WHERE bet_type_id = @bet_type_id)
@@ -1,5 +1,5 @@
using System; using System;
using System.Data.SqlClient; using Microsoft.Data.SqlClient;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
namespace HorseRacingPredictor.Football.Database namespace HorseRacingPredictor.Football.Database
@@ -11,7 +11,7 @@ namespace HorseRacingPredictor.Football.Database
try try
{ {
var id = bookmaker["id"]?.Value<int>(); var id = bookmaker["id"]?.Value<int>();
if (id == null) return; // Salta il record se l'id è null if (id == null) return; // Salta il record se l'id è null
var query = @" var query = @"
IF EXISTS (SELECT 1 FROM Bookmaker WHERE bookmaker_id = @bookmaker_id) IF EXISTS (SELECT 1 FROM Bookmaker WHERE bookmaker_id = @bookmaker_id)
@@ -1,5 +1,5 @@
using System; using System;
using System.Data.SqlClient; using Microsoft.Data.SqlClient;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
namespace HorseRacingPredictor.Football.Database namespace HorseRacingPredictor.Football.Database
@@ -1,6 +1,6 @@
using System; using System;
using System.Data; using System.Data;
using System.Data.SqlClient; using Microsoft.Data.SqlClient;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
namespace HorseRacingPredictor.Football.Database namespace HorseRacingPredictor.Football.Database
@@ -143,7 +143,7 @@ namespace HorseRacingPredictor.Football.Database
try try
{ {
using (var connection = new System.Data.SqlClient.SqlConnection(_connectionString)) using (var connection = new Microsoft.Data.SqlClient.SqlConnection(_connectionString))
{ {
connection.Open(); connection.Open();
@@ -186,7 +186,7 @@ namespace HorseRacingPredictor.Football.Database
ORDER BY ORDER BY
f.date ASC"; f.date ASC";
using (var adapter = new System.Data.SqlClient.SqlDataAdapter(query, connection)) using (var adapter = new Microsoft.Data.SqlClient.SqlDataAdapter(query, connection))
{ {
adapter.Fill(result); adapter.Fill(result);
} }
@@ -1,6 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data.SqlClient; using Microsoft.Data.SqlClient;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
@@ -1,5 +1,5 @@
using System; using System;
using System.Data.SqlClient; using Microsoft.Data.SqlClient;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
namespace HorseRacingPredictor.Football.Database namespace HorseRacingPredictor.Football.Database
@@ -1,6 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data.SqlClient; using Microsoft.Data.SqlClient;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@@ -1,5 +1,5 @@
using System; using System;
using System.Data.SqlClient; using Microsoft.Data.SqlClient;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
namespace HorseRacingPredictor.Football.Database namespace HorseRacingPredictor.Football.Database
@@ -1,5 +1,5 @@
using System; using System;
using System.Data.SqlClient; using Microsoft.Data.SqlClient;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
namespace HorseRacingPredictor.Football.Database namespace HorseRacingPredictor.Football.Database
@@ -1,5 +1,5 @@
using System; using System;
using System.Data.SqlClient; using Microsoft.Data.SqlClient;
using System.Linq; using System.Linq;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
@@ -1,5 +1,5 @@
using System; using System;
using System.Data.SqlClient; using Microsoft.Data.SqlClient;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
namespace HorseRacingPredictor.Football.Database namespace HorseRacingPredictor.Football.Database
@@ -1,5 +1,5 @@
using System; using System;
using System.Data.SqlClient; using Microsoft.Data.SqlClient;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
namespace HorseRacingPredictor.Football.Database namespace HorseRacingPredictor.Football.Database
@@ -1,5 +1,5 @@
using System; using System;
using System.Data.SqlClient; using Microsoft.Data.SqlClient;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
namespace HorseRacingPredictor.Football.Database namespace HorseRacingPredictor.Football.Database
@@ -1,5 +1,5 @@
using System; using System;
using System.Data.SqlClient; using Microsoft.Data.SqlClient;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
namespace HorseRacingPredictor.Football.Database namespace HorseRacingPredictor.Football.Database
@@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data; using System.Data;
using System.Linq; using System.Linq;
@@ -8,7 +8,7 @@ using RestSharp;
using System.Text.Json; using System.Text.Json;
using System.Text.Json.Nodes; using System.Text.Json.Nodes;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.Data.SqlClient; using Microsoft.Data.SqlClient;
namespace HorseRacingPredictor.Football namespace HorseRacingPredictor.Football
{ {
@@ -276,7 +276,7 @@ namespace HorseRacingPredictor.Football
} }
/// <summary> /// <summary>
/// Recupera le quote per la data specificata (potenzialmente più pagine) utilizzando API.Odds /// Recupera le quote per la data specificata (potenzialmente più pagine) utilizzando API.Odds
/// </summary> /// </summary>
private List<RestResponse> GetOdds(DateTime date) private List<RestResponse> GetOdds(DateTime date)
{ {
@@ -392,7 +392,7 @@ namespace HorseRacingPredictor.Football
} }
} }
// FASE 5: Inserisci relazioni tra entità e dati dipendenti // FASE 5: Inserisci relazioni tra entità e dati dipendenti
foreach (var responseItem in asArray(jsonObject["response"])) foreach (var responseItem in asArray(jsonObject["response"]))
{ {
int? fixtureId = null; int? fixtureId = null;
@@ -572,8 +572,8 @@ namespace HorseRacingPredictor.Football
{ {
try try
{ {
// In questo metodo non elaboriamo più direttamente le risposte // In questo metodo non elaboriamo più direttamente le risposte
// Le risposte sono già state salvate nel database dalla classe API // Le risposte sono già state salvate nel database dalla classe API
// e verranno elaborate dal metodo ProcessUnprocessedApiResponses // e verranno elaborate dal metodo ProcessUnprocessedApiResponses
// Processa le risposte non elaborate // Processa le risposte non elaborate
@@ -608,7 +608,7 @@ namespace HorseRacingPredictor.Football
dataTable.Columns.Add("Quota Trasferta", typeof(string)); dataTable.Columns.Add("Quota Trasferta", typeof(string));
dataTable.Columns.Add("Over 2.5", typeof(string)); dataTable.Columns.Add("Over 2.5", typeof(string));
dataTable.Columns.Add("Under 2.5", typeof(string)); dataTable.Columns.Add("Under 2.5", typeof(string));
dataTable.Columns.Add("BTTS Sì", typeof(string)); dataTable.Columns.Add("BTTS Sì", typeof(string));
dataTable.Columns.Add("BTTS No", typeof(string)); dataTable.Columns.Add("BTTS No", typeof(string));
dataTable.Columns.Add("Doppia Casa/X", typeof(string)); dataTable.Columns.Add("Doppia Casa/X", typeof(string));
dataTable.Columns.Add("Doppia Casa/Trasf", typeof(string)); dataTable.Columns.Add("Doppia Casa/Trasf", typeof(string));
@@ -646,7 +646,7 @@ namespace HorseRacingPredictor.Football
{ {
try try
{ {
// Verifica che le proprietà essenziali esistano // Verifica che le proprietà essenziali esistano
if (!item.TryGetProperty("fixture", out var fixtureEl) || if (!item.TryGetProperty("fixture", out var fixtureEl) ||
!item.TryGetProperty("league", out var leagueEl) || !item.TryGetProperty("league", out var leagueEl) ||
!item.TryGetProperty("teams", out var teamsEl)) !item.TryGetProperty("teams", out var teamsEl))
@@ -700,7 +700,7 @@ namespace HorseRacingPredictor.Football
row["Quota Trasferta"] = DBNull.Value; row["Quota Trasferta"] = DBNull.Value;
row["Over 2.5"] = DBNull.Value; row["Over 2.5"] = DBNull.Value;
row["Under 2.5"] = DBNull.Value; row["Under 2.5"] = DBNull.Value;
row["BTTS Sì"] = DBNull.Value; row["BTTS Sì"] = DBNull.Value;
row["BTTS No"] = DBNull.Value; row["BTTS No"] = DBNull.Value;
row["Doppia Casa/X"] = DBNull.Value; row["Doppia Casa/X"] = DBNull.Value;
row["Doppia Casa/Trasf"] = DBNull.Value; row["Doppia Casa/Trasf"] = DBNull.Value;
@@ -731,7 +731,7 @@ namespace HorseRacingPredictor.Football
// Crea una copia del DataTable delle partite // Crea una copia del DataTable delle partite
var combinedTable = fixturesTable.Copy(); var combinedTable = fixturesTable.Copy();
// Se non ci sono risposte di quote o la tabella delle partite è vuota, ritorna la tabella originale // Se non ci sono risposte di quote o la tabella delle partite è vuota, ritorna la tabella originale
if (oddsResponses == null || oddsResponses.Count == 0 || combinedTable.Rows.Count == 0) if (oddsResponses == null || oddsResponses.Count == 0 || combinedTable.Rows.Count == 0)
{ {
return combinedTable; return combinedTable;
@@ -868,7 +868,7 @@ namespace HorseRacingPredictor.Football
var table = new DataTable(); var table = new DataTable();
table.Columns.Add("Errore", typeof(string)); table.Columns.Add("Errore", typeof(string));
var row = table.NewRow(); var row = table.NewRow();
row["Errore"] = "Si è verificato un errore durante il recupero dei dati."; row["Errore"] = "Si è verificato un errore durante il recupero dei dati.";
table.Rows.Add(row); table.Rows.Add(row);
return table; return table;
} }
@@ -972,7 +972,7 @@ namespace HorseRacingPredictor.Football
{ {
string val = GetOddValueString(v, "value"); string val = GetOddValueString(v, "value");
string odd = GetOddValueString(v, "odd"); string odd = GetOddValueString(v, "odd");
if (val == "Yes") row["BTTS Sì"] = odd; if (val == "Yes") row["BTTS Sì"] = odd;
else if (val == "No") row["BTTS No"] = odd; else if (val == "No") row["BTTS No"] = odd;
} }
break; break;
@@ -1079,7 +1079,7 @@ namespace HorseRacingPredictor.Football
var result = CreateEmptyFixturesDataTable(); var result = CreateEmptyFixturesDataTable();
// Step 2: Delegare alla classe repository appropriata il recupero dei dati // Step 2: Delegare alla classe repository appropriata il recupero dei dati
// Utilizziamo principalmente il repository Fixture che può coordinarsi con gli altri repository // Utilizziamo principalmente il repository Fixture che può coordinarsi con gli altri repository
return _fixtureRepository.GetProcessedFixtures(); return _fixtureRepository.GetProcessedFixtures();
} }
catch (Exception ex) catch (Exception ex)
@@ -1,5 +1,5 @@
using System; using System;
using System.Data.SqlClient; using Microsoft.Data.SqlClient;
using System.Text.Json.Nodes; using System.Text.Json.Nodes;
using HorseRacingPredictor.Football.Database; using HorseRacingPredictor.Football.Database;
@@ -7,7 +7,7 @@ namespace HorseRacingPredictor.Football.Manager
{ {
internal class Database : HorseRacingPredictor.Manager.Database internal class Database : HorseRacingPredictor.Manager.Database
{ {
// Implementazione della proprietà astratta _connectionString per il database calcio // Implementazione della proprietà astratta _connectionString per il database calcio
protected override string _connectionString => "Server=DESKTOP-9O9JHFS;Database=TestBS_Football;User Id=sa;Password=Asti2019;"; protected override string _connectionString => "Server=DESKTOP-9O9JHFS;Database=TestBS_Football;User Id=sa;Password=Asti2019;";
// Usato il modificatore "new" per evitare il warning CS0108 // Usato il modificatore "new" per evitare il warning CS0108
@@ -28,11 +28,11 @@ namespace HorseRacingPredictor.Football.Manager
base.ExecuteTransactionalQuery(operation, action); base.ExecuteTransactionalQuery(operation, action);
} }
// Questo metodo ora è vuoto e sarà implementato nella Main // Questo metodo ora è vuoto e sarà implementato nella Main
public void ProcessAndInsertData(string jsonResponse) public void ProcessAndInsertData(string jsonResponse)
{ {
// Il codice è stato spostato in Football.Main // Il codice è stato spostato in Football.Main
LogError("l'elaborazione dei dati calcistici", new NotImplementedException("Questo metodo è stato spostato in Football.Main")); LogError("l'elaborazione dei dati calcistici", new NotImplementedException("Questo metodo è stato spostato in Football.Main"));
} }
/// <summary> /// <summary>
@@ -1,6 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data.SqlClient; using Microsoft.Data.SqlClient;
using System.Data; using System.Data;
using System.IO; using System.IO;
using BettingPredictor; using BettingPredictor;
@@ -10,7 +10,7 @@ namespace HorseRacingPredictor.Horses
{ {
internal class Database : HorseRacingPredictor.Manager.Database internal class Database : HorseRacingPredictor.Manager.Database
{ {
// Implementazione della proprietà astratta _connectionString per il database cavalli // Implementazione della proprietà astratta _connectionString per il database cavalli
protected override string _connectionString => "Server=DESKTOP-9O9JHFS;Database=TestBS_Horses;User Id=sa;Password=Asti2019;"; protected override string _connectionString => "Server=DESKTOP-9O9JHFS;Database=TestBS_Horses;User Id=sa;Password=Asti2019;";
private readonly FileReader fileReaderHorses; private readonly FileReader fileReaderHorses;
@@ -1,5 +1,5 @@
using System; using System;
using System.Data.SqlClient; using Microsoft.Data.SqlClient;
namespace HorseRacingPredictor.Manager namespace HorseRacingPredictor.Manager
{ {
@@ -69,7 +69,7 @@ namespace HorseRacingPredictor.Manager
} }
/// <summary> /// <summary>
/// Metodo per verificare se la connessione al database è valida /// Metodo per verificare se la connessione al database è valida
/// </summary> /// </summary>
public bool TestConnection() public bool TestConnection()
{ {
@@ -1,29 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="CsvHelper" version="33.1.0" targetFramework="net481" />
<package id="Microsoft.Bcl.AsyncInterfaces" version="10.0.0-rc.1.25451.107" targetFramework="net481" />
<package id="Microsoft.Bcl.HashCode" version="6.0.0" targetFramework="net481" />
<package id="Microsoft.Bcl.Numerics" version="10.0.0-rc.1.25451.107" targetFramework="net481" />
<package id="Microsoft.CSharp" version="4.7.0" targetFramework="net481" />
<package id="Microsoft.ML" version="5.0.0-preview.25503.2" targetFramework="net481" />
<package id="Microsoft.ML.CpuMath" version="5.0.0-preview.25503.2" targetFramework="net481" />
<package id="Microsoft.ML.DataView" version="5.0.0-preview.25503.2" targetFramework="net481" />
<package id="Microsoft.ML.FastTree" version="5.0.0-preview.25503.2" targetFramework="net481" />
<package id="Microsoft.Web.WebView2" version="1.0.3800.47" targetFramework="net481" />
<package id="Newtonsoft.Json" version="13.0.4" targetFramework="net481" />
<package id="RestSharp" version="112.1.1-alpha.0.4" targetFramework="net481" />
<package id="System.Buffers" version="4.6.1" targetFramework="net481" />
<package id="System.CodeDom" version="10.0.0-rc.1.25451.107" targetFramework="net481" />
<package id="System.Collections.Immutable" version="10.0.0-rc.1.25451.107" targetFramework="net481" />
<package id="System.IO.Pipelines" version="10.0.0-rc.1.25451.107" targetFramework="net481" />
<package id="System.Memory" version="4.6.3" targetFramework="net481" />
<package id="System.Numerics.Tensors" version="10.0.0-rc.1.25451.107" targetFramework="net481" />
<package id="System.Numerics.Vectors" version="4.6.1" targetFramework="net481" />
<package id="System.Reflection.Emit.Lightweight" version="4.7.0" targetFramework="net481" />
<package id="System.Runtime.CompilerServices.Unsafe" version="6.1.2" targetFramework="net481" />
<package id="System.Text.Encodings.Web" version="10.0.0-rc.1.25451.107" targetFramework="net481" />
<package id="System.Text.Json" version="10.0.0-rc.1.25451.107" targetFramework="net481" />
<package id="System.Threading.Channels" version="10.0.0-rc.1.25451.107" targetFramework="net481" />
<package id="System.Threading.Tasks.Extensions" version="4.6.3" targetFramework="net481" />
<package id="System.ValueTuple" version="4.6.1" targetFramework="net481" />
</packages>