Compare commits

..

6 Commits

Author SHA1 Message Date
a9150ff58c URL Api Smash + Slug in HTML
All checks were successful
Build App / Build (push) Successful in 1m36s
2025-03-07 10:56:24 +01:00
fba822a0af Build
All checks were successful
Build App / Build (push) Successful in 1m40s
2025-02-09 22:39:17 +01:00
73407e5867 Dot net 8
Some checks failed
Build App / Build (push) Failing after 43s
2025-02-09 22:30:00 +01:00
91664406c4 Test Update Avalonia
All checks were successful
Build App / Build (push) Successful in 1m42s
2025-01-28 22:22:03 +01:00
bc95ef157d Wait 2025-01-28 22:01:30 +01:00
454c12a5a9 Modification get smash
All checks were successful
Build App / Build (push) Successful in 1m53s
2024-03-22 23:58:43 +01:00
37 changed files with 290 additions and 150 deletions

View File

@@ -19,7 +19,7 @@ jobs:
uses: actions/setup-dotnet@v3 uses: actions/setup-dotnet@v3
with: with:
# Semantic version range syntax or exact version of a dotnet version # Semantic version range syntax or exact version of a dotnet version
dotnet-version: '6.x' dotnet-version: '8.x'
- run: echo "Build." - run: echo "Build."
- name: Check out repository code - name: Check out repository code
@@ -36,8 +36,8 @@ jobs:
dotnet build --configuration Release --os win LaDOSE.DesktopApp.Avalonia dotnet build --configuration Release --os win LaDOSE.DesktopApp.Avalonia
- name: Zip file - name: Zip file
run: | run: |
zip -rj build-winx64.zip ./LaDOSE.Src/LaDOSE.DesktopApp.Avalonia/bin/Release/net6.0/win-x64/ zip -rj build-winx64.zip ./LaDOSE.Src/LaDOSE.DesktopApp.Avalonia/bin/Release/net8.0/win-x64/
zip -rj build-linux64.zip ./LaDOSE.Src/LaDOSE.DesktopApp.Avalonia/bin/Release/net6.0/linux-x64/ zip -rj build-linux64.zip ./LaDOSE.Src/LaDOSE.DesktopApp.Avalonia/bin/Release/net8.0/linux-x64/
- name: Upload Artifact Windows - name: Upload Artifact Windows
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:

View File

@@ -17,8 +17,17 @@ namespace LaDOSE.Api.Controllers
[Produces("application/json")] [Produces("application/json")]
public class GameController : GenericControllerDTO<IGameService, Game, GameDTO> public class GameController : GenericControllerDTO<IGameService, Game, GameDTO>
{ {
public GameController(IMapper mapper,IGameService service) : base(mapper,service) private IExternalProviderService provider;
public GameController(IMapper mapper,IGameService service, IExternalProviderService service2) : base(mapper,service)
{ {
provider = service2;
}
[HttpGet("smash/{name}")]
public async Task<List<GameDTO>> GetIdFromSmash(string name)
{
var smashGame = await provider.GetSmashGame(name);
return _mapper.Map<List<GameDTO>>(smashGame);;
} }
} }
} }

View File

@@ -19,7 +19,7 @@ namespace LaDOSE.Api.Controllers
private IMapper _mapper; private IMapper _mapper;
// GET // GETawa
public TournamentController(IMapper mapper, IExternalProviderService service) public TournamentController(IMapper mapper, IExternalProviderService service)
{ {
_mapper = mapper; _mapper = mapper;

View File

@@ -77,7 +77,7 @@ namespace LaDOSE.Api.Controllers
[HttpGet("UpdateDb")] [HttpGet("UpdateDb")]
public bool UpdateDb() public bool UpdateDb()
{ {
return _service.UpdateBooking(); return false;
} }
[HttpGet("CreateChallonge/{gameId:int}/{wpEventId:int}")] [HttpGet("CreateChallonge/{gameId:int}/{wpEventId:int}")]

View File

@@ -1,8 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<Platforms>AnyCPU;x64</Platforms> <Platforms>AnyCPU;x64</Platforms>
<LangVersion>12</LangVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
@@ -10,13 +11,13 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="AutoMapper" Version="10.0.0" /> <PackageReference Include="AutoMapper" Version="13.0.1" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.8" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.12" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.8" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.12" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.8" /> <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.1" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.4" /> <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="8.0.7" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="7.0.11" /> <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.11" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -24,6 +24,7 @@ using LaDOSE.Entity.Wordpress;
using Result = LaDOSE.Entity.Challonge.Result; using Result = LaDOSE.Entity.Challonge.Result;
using LaDOSE.Entity.BotEvent; using LaDOSE.Entity.BotEvent;
using Microsoft.EntityFrameworkCore.Storage; using Microsoft.EntityFrameworkCore.Storage;
using Microsoft.Extensions.Hosting;
namespace LaDOSE.Api namespace LaDOSE.Api
{ {
@@ -163,7 +164,7 @@ namespace LaDOSE.Api
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) public void Configure(IApplicationBuilder app, IHostEnvironment env, ILoggerFactory loggerFactory)
{ {
//loggerFactory.AddConsole(Configuration.GetSection("Logging")); //loggerFactory.AddConsole(Configuration.GetSection("Logging"));
//loggerFactory.AddDebug(); //loggerFactory.AddDebug();

View File

@@ -1,7 +1,7 @@
namespace LaDOSE.DTO namespace LaDOSE.DTO
{ {
public class GameDTO public class GameDTO
{ {
public int Id { get; set; } public int Id { get; set; }
public string Name { get; set; } public string Name { get; set; }
public string LongName { get; set; } public string LongName { get; set; }

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<Platforms>AnyCPU;x64</Platforms> <Platforms>AnyCPU;x64</Platforms>
</PropertyGroup> </PropertyGroup>

View File

@@ -27,6 +27,8 @@ namespace LaDOSE.DTO
public List<GameDTO> Games { get; set; } public List<GameDTO> Games { get; set; }
public List<ResultDTO> Results { get; set; } public List<ResultDTO> Results { get; set; }
public string Slug { get; set; }
} }
public class ResultDTO public class ResultDTO
{ {

View File

@@ -3,6 +3,8 @@ using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml; using Avalonia.Markup.Xaml;
using LaDOSE.DesktopApp.Avalonia.ViewModels; using LaDOSE.DesktopApp.Avalonia.ViewModels;
using LaDOSE.DesktopApp.Avalonia.Views; using LaDOSE.DesktopApp.Avalonia.Views;
using LaDOSE.REST;
using MsBox.Avalonia;
using ReactiveUI; using ReactiveUI;
using Splat; using Splat;
@@ -10,6 +12,10 @@ namespace LaDOSE.DesktopApp.Avalonia;
public partial class App : Application public partial class App : Application
{ {
public override void Initialize() public override void Initialize()
{ {
AvaloniaXamlLoader.Load(this); AvaloniaXamlLoader.Load(this);

View File

@@ -1,11 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<BuiltInComInteropSupport>true</BuiltInComInteropSupport> <BuiltInComInteropSupport>true</BuiltInComInteropSupport>
<ApplicationManifest>app.manifest</ApplicationManifest> <ApplicationManifest>app.manifest</ApplicationManifest>
<AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault> <AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
<LangVersion>12</LangVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
@@ -15,16 +16,17 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Avalonia" Version="11.0.10"/> <PackageReference Include="Avalonia" Version="11.2.3" />
<PackageReference Include="Avalonia.Controls.DataGrid" Version="11.0.10" /> <PackageReference Include="Avalonia.Controls.DataGrid" Version="11.2.3" />
<PackageReference Include="Avalonia.Desktop" Version="11.0.10"/> <PackageReference Include="Avalonia.Desktop" Version="11.2.3" />
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.0.10"/> <PackageReference Include="Avalonia.Themes.Fluent" Version="11.2.3" />
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.0.10"/> <PackageReference Include="Avalonia.Fonts.Inter" Version="11.2.3" />
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.--> <!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.0.10"/> <PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.2.3" />
<PackageReference Include="Avalonia.ReactiveUI" Version="11.0.10"/> <PackageReference Include="Avalonia.ReactiveUI" Version="11.2.3" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="6.0.1" /> <PackageReference Include="MessageBox.Avalonia" Version="3.2.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0" /> <PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.1" />
</ItemGroup> </ItemGroup>

View File

@@ -5,6 +5,8 @@ using System.ComponentModel;
using System.IO; using System.IO;
using LaDOSE.REST; using LaDOSE.REST;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using MsBox.Avalonia;
using MsBox.Avalonia.Enums;
using Splat; using Splat;
// using Xilium.CefGlue; // using Xilium.CefGlue;
// using Xilium.CefGlue.Common; // using Xilium.CefGlue.Common;
@@ -22,23 +24,36 @@ sealed class Program
public static void Main(string[] args) public static void Main(string[] args)
{ {
RegisterDependencies(Locator.CurrentMutable, Locator.Current); RegisterDependencies(Locator.CurrentMutable, Locator.Current);
BuildAvaloniaApp()
.StartWithClassicDesktopLifetime(args); var app = BuildAvaloniaApp();
app.StartWithClassicDesktopLifetime(args);
} }
private static void RegisterDependencies(IMutableDependencyResolver currentMutable, IReadonlyDependencyResolver current) private static void RegisterDependencies(IMutableDependencyResolver currentMutable, IReadonlyDependencyResolver current)
{ {
var builder = new ConfigurationBuilder()
.AddJsonFile("settings.json", optional: true, reloadOnChange: true).Build(); var builder = new ConfigurationBuilder()
var restUrl = builder["REST:Url"].ToString(); .AddJsonFile("settings.json", optional: true, reloadOnChange: true).Build();
var restUser = builder["REST:User"].ToString(); var restUrl = builder["REST:Url"].ToString();
var restPassword = builder["REST:Password"].ToString(); var restUser = builder["REST:User"].ToString();
currentMutable.RegisterLazySingleton<RestService>(()=> var restPassword = builder["REST:Password"].ToString();
{
var restService = new RestService(); currentMutable.Register<RestService>(() =>
restService.Connect(new Uri(restUrl),restUser,restPassword); {
return restService; var restService = new RestService(new Uri(restUrl), restUser, restPassword);
}); try
{
restService.Connect(new Uri(restUrl), restUser, restPassword);
}
catch (Exception e)
{
Console.WriteLine(e);
}
return restService;
});
} }
// Avalonia configuration, don't remove; also used by visual designer. // Avalonia configuration, don't remove; also used by visual designer.
@@ -48,13 +63,5 @@ sealed class Program
.UsePlatformDetect() .UsePlatformDetect()
.WithInterFont() .WithInterFont()
.LogToTrace() .LogToTrace()
.AfterSetup(_ =>
{
// CefRuntimeLoader.Initialize(new CefSettings()
// {
// WindowlessRenderingEnabled = true,
// NoSandbox = true,
// });
})
.UseReactiveUI(); .UseReactiveUI();
} }

View File

@@ -14,14 +14,14 @@ namespace LaDOSE.DesktopApp.Avalonia.Utils
_compare = c; _compare = c;
} }
public bool Equals(T x, T y) public bool Equals(T? x, T? y)
{ {
return _compare(x, y); return _compare(x, y);
} }
public int GetHashCode(T obj) public int GetHashCode(T obj)
{ {
return 0; return obj.GetHashCode();
} }
} }
} }

View File

@@ -18,6 +18,7 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
private GameDTO _currentGame; private GameDTO _currentGame;
private List<GameDTO> _games; private List<GameDTO> _games;
private List<GameDTO> _Searchgames;
private RestService RestService { get; set; } private RestService RestService { get; set; }
public GamesViewModel(IScreen screen): base(screen,"Games") public GamesViewModel(IScreen screen): base(screen,"Games")
{ {
@@ -26,6 +27,7 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
OnInitialize(); OnInitialize();
} }
void OnInitialize() void OnInitialize()
{ {
LoadGames(); LoadGames();
@@ -49,6 +51,15 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
} }
} }
public List<GameDTO> SearchGame
{
get => _Searchgames;
set
{
_Searchgames = value;
RaisePropertyChanged(nameof(this.SearchGame));
}
}
public GameDTO CurrentGame public GameDTO CurrentGame
{ {
get => _currentGame; get => _currentGame;
@@ -79,6 +90,10 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
LoadGames(); LoadGames();
} }
public void GetGame()
{
SearchGame = this.RestService.GetSmashGames(this.CurrentGame.LongName);
}
public bool CanDeleteGame => CurrentGame != null; public bool CanDeleteGame => CurrentGame != null;

View File

@@ -10,7 +10,7 @@ public class MainWindowViewModel : Window
public void CloseApp() public void CloseApp()
{ {
if (Application.Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime) if (Application.Current != null && Application.Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime)
((IClassicDesktopStyleApplicationLifetime)Application.Current.ApplicationLifetime).Shutdown(); ((Application.Current.ApplicationLifetime as IClassicDesktopStyleApplicationLifetime)!).Shutdown();
} }
} }

View File

@@ -21,16 +21,16 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
{ {
public string DisplayName => "Tournament Result"; public string DisplayName => "Tournament Result";
private RestService RestService { get; set; } private RestService? RestService { get; set; }
//Dictionary<string, Dictionary<int, int>> _computedResult; //Dictionary<string, Dictionary<int, int>> _computedResult;
#region Properties #region Properties
private string css = string.Empty; private string css = string.Empty;
private String _selectRegex; private string? _selectRegex;
public String SelectRegex public string? SelectRegex
{ {
get { return _selectRegex; } get { return _selectRegex; }
set set
@@ -40,9 +40,9 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
} }
} }
private String _selectEventRegex; private string? _selectEventRegex;
public String SelectEventRegex public string? SelectEventRegex
{ {
get { return _selectEventRegex; } get { return _selectEventRegex; }
set set
@@ -51,8 +51,8 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
RaisePropertyChanged(nameof(SelectEventRegex)); RaisePropertyChanged(nameof(SelectEventRegex));
} }
} }
private string _slug; private string? _slug;
public String Slug public string? Slug
{ {
get { return _slug; } get { return _slug; }
set set
@@ -62,9 +62,9 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
} }
} }
private String _html; private string? _html;
public String Html public string? Html
{ {
get { return $"<html><head><style>{this.css}</style></head><body>{HtmlContent}</body></html>"; } get { return $"<html><head><style>{this.css}</style></head><body>{HtmlContent}</body></html>"; }
set set
@@ -72,9 +72,9 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
_html = value; _html = value;
} }
} }
private String _htmlContent; private string? _htmlContent;
public String HtmlContent public string? HtmlContent
{ {
get { return _htmlContent; } get { return _htmlContent; }
set set
@@ -112,12 +112,12 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
} }
private TournamentsResultDTO _results; private TournamentsResultDTO? _results;
public List<TournamentDTO> Tournaments { get; set; } public List<TournamentDTO> Tournaments { get; set; }
public List<EventDTO> Events { get; set; } public List<EventDTO> Events { get; set; }
public TournamentsResultDTO Results public TournamentsResultDTO? Results
{ {
get => _results; get => _results;
set set
@@ -151,10 +151,10 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
} }
} }
private GameDTO _selectedGame; private GameDTO? _selectedGame;
public GameDTO SelectedGame public GameDTO? SelectedGame
{ {
get { return _selectedGame; } get { return _selectedGame; }
set set
@@ -172,9 +172,9 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
} }
} }
private ObservableCollection<ResultDTO> _selectedGameResult; private ObservableCollection<ResultDTO>? _selectedGameResult;
public ObservableCollection<ResultDTO> SelectedGameResult public ObservableCollection<ResultDTO>? SelectedGameResult
{ {
get { return _selectedGameResult; } get { return _selectedGameResult; }
set set
@@ -184,11 +184,11 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
} }
} }
private String _first; private string? _first;
private DataTable _gridDataTable; private DataTable? _gridDataTable;
private string _error; private string? _error;
public String First public string? First
{ {
get { return _first; } get { return _first; }
set set
@@ -223,8 +223,8 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
this.To = new DateTimeOffset(DateTime.Now); this.To = new DateTimeOffset(DateTime.Now);
this.From = new DateTimeOffset(DateTime.Now.AddMonths(-1)); this.From = new DateTimeOffset(DateTime.Now.AddMonths(-1));
this.SelectRegex = "Ranking"; this.SelectRegex = "Ranking";
this.SelectEventRegex = @"Ranking #10\d{2}"; this.SelectEventRegex = @"Ranking #13\d{2}";
this.Slug = "ranking-1001"; this.Slug = "ranking-130";
LoadTournaments(); LoadTournaments();
LoadEvents(); LoadEvents();
@@ -244,7 +244,7 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
public void LoadEvents() public void LoadEvents()
{ {
var eventsDtos = this.RestService List<EventDTO> eventsDtos = this.RestService
.GetAllEvents().ToList(); .GetAllEvents().ToList();
this.Events = eventsDtos; this.Events = eventsDtos;
@@ -252,7 +252,7 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
} }
public DataTable GridDataTable public DataTable? GridDataTable
{ {
get => _gridDataTable; get => _gridDataTable;
set set
@@ -262,7 +262,7 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
RaisePropertyChanged(nameof(GridDataTableView)); RaisePropertyChanged(nameof(GridDataTableView));
} }
} }
public DataView GridDataTableView public DataView? GridDataTableView
{ {
get get
{ {
@@ -274,8 +274,8 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
public void Select() public void Select()
{ {
var tournamentsIds = SelectedEvents.Select(e => e.Id).ToList(); List<int> tournamentsIds = SelectedEvents.Select(e => e.Id).ToList();
var resultsDto = this.RestService.GetResults(tournamentsIds); TournamentsResultDTO? resultsDto = this.RestService.GetResults(tournamentsIds);
this.Results = resultsDto; this.Results = resultsDto;
ComputeDataGrid(); ComputeDataGrid();
ComputeHtml(); ComputeHtml();
@@ -285,7 +285,7 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
{ {
var resultsDto = this.RestService.ParseSmash(Slug); bool resultsDto = this.RestService.ParseSmash(Slug);
if (!resultsDto) if (!resultsDto)
{ {
Error = "Error getting Smash"; Error = "Error getting Smash";
@@ -293,7 +293,7 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
} }
public string Error public string? Error
{ {
get => _error; get => _error;
set set
@@ -307,8 +307,8 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
public void GetChallonge() public void GetChallonge()
{ {
var ids = SelectedTournaments.Select(e => e.ChallongeId).ToList(); List<int> ids = SelectedTournaments.Select(e => e.ChallongeId).ToList();
var resultsDto = this.RestService.ParseChallonge(ids); bool resultsDto = this.RestService.ParseChallonge(ids);
if (!resultsDto) if (!resultsDto)
{ {
Error = "Fail"; Error = "Fail";
@@ -334,14 +334,14 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
public void SelectRegexp() public void SelectRegexp()
{ {
var selectedTournaments = this.Tournaments.Where(e => Regex.IsMatch(e.Name, this.SelectRegex)).ToList(); List<TournamentDTO> selectedTournaments = this.Tournaments.Where(e => Regex.IsMatch(e.Name, this.SelectRegex)).ToList();
this.SelectedTournaments.Clear(); this.SelectedTournaments.Clear();
if (selectedTournaments.Count > 0) if (selectedTournaments.Count > 0)
selectedTournaments.ForEach(e => this.SelectedTournaments.Add(e)); selectedTournaments.ForEach(e => this.SelectedTournaments.Add(e));
} }
public void SelectEvent() public void SelectEvent()
{ {
var selectedEvents = this.Events.Where(e => Regex.IsMatch(e.Name, this.SelectEventRegex)).ToList(); List<EventDTO> selectedEvents = this.Events.Where(e => Regex.IsMatch(e.Name, this.SelectEventRegex)).ToList();
this.SelectedEvents.Clear(); this.SelectedEvents.Clear();
if (selectedEvents.Count > 0) if (selectedEvents.Count > 0)
selectedEvents.ForEach(e => this.SelectedEvents.Add(e)); selectedEvents.ForEach(e => this.SelectedEvents.Add(e));
@@ -349,15 +349,15 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
//This could be simplified the Dictionary was for a previous usage, but i m too lazy to rewrite it. //This could be simplified the Dictionary was for a previous usage, but i m too lazy to rewrite it.
private void ComputeDataGrid() private void ComputeDataGrid()
{ {
var resultsParticipents = this.Results.Participents.Select(e=>e.Name).Distinct(new CustomListExtension.EqualityComparer<String>((a, b) => a.ToUpperInvariant()== b.ToUpperInvariant())).OrderBy(e=>e).ToList(); List<string> resultsParticipents = this.Results.Participents.Select(e=>e.Name).Distinct(new CustomListExtension.EqualityComparer<String>((a, b) => a.ToUpperInvariant()== b.ToUpperInvariant())).OrderBy(e=>e).ToList();
//At start the dictionnary was for some fancy dataviz things, but since the point are inside //At start the dictionnary was for some fancy dataviz things, but since the point are inside
//i m to lazy to rewrite this functions (this is so ugly...) //i m to lazy to rewrite this functions (this is so ugly...)
//_computedResult = ResultsToDataDictionary(resultsParticipents); //_computedResult = ResultsToDataDictionary(resultsParticipents);
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
DataTable grid = new DataTable(); DataTable? grid = new DataTable();
var games = Results.Games.Distinct().OrderBy(e => e.Order).ToList(); List<GameDTO> games = Results.Games.Distinct().OrderBy(e => e.Order).ToList();
grid.Columns.Add("Players"); grid.Columns.Add("Players");
games.ForEach(e => grid.Columns.Add(e.Name.Replace('.', ' '),typeof(Int32))); games.ForEach(e => grid.Columns.Add(e.Name.Replace('.', ' '),typeof(Int32)));
grid.Columns.Add("Total").DataType = typeof(Int32); grid.Columns.Add("Total").DataType = typeof(Int32);
@@ -365,16 +365,17 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
for (int i = 0; i < resultsParticipents.Count; i++) for (int i = 0; i < resultsParticipents.Count; i++)
{ {
var dataRow = grid.Rows.Add(); DataRow dataRow = grid.Rows.Add();
var resultsParticipent = resultsParticipents[i]; string resultsParticipent = resultsParticipents[i];
int total = 0; int total = 0;
dataRow["Players"] = resultsParticipent; dataRow["Players"] = resultsParticipent;
for (int j = 0; j < games.Count; j++) for (int j = 0; j < games.Count; j++)
{ {
var resultsGame = Results.Games[j]; GameDTO? resultsGame = Results.Games[j];
var points = GetPlayerPoint(resultsParticipent, resultsGame.Id); int points = GetPlayerPoint(resultsParticipent, resultsGame.Id);
var o = dataRow[resultsGame.Name.Replace('.', ' ')];
dataRow[resultsGame.Name.Replace('.', ' ')] = points!=0?points:0; dataRow[resultsGame.Name.Replace('.', ' ')] = points!=0?points:0;
total += points; total += points;
} }
@@ -434,10 +435,10 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
int columns = 0; int columns = 0;
var distinct = Results.Results.Select(e => e.GameId).Distinct(); IEnumerable<int> distinct = Results.Results.Select(e => e.GameId).Distinct();
var gamePlayed = Results.Games.Where(e=> distinct.Contains(e.Id)).OrderBy(e=>e.Order); IOrderedEnumerable<GameDTO> gamePlayed = Results.Games.Where(e=> distinct.Contains(e.Id)).OrderBy(e=>e.Order);
foreach (var game in gamePlayed) foreach (GameDTO game in gamePlayed)
{ {
List<ResultDTO> enumerable = Results.Results.Where(r => r.GameId == game.Id).ToList(); List<ResultDTO> enumerable = Results.Results.Where(r => r.GameId == game.Id).ToList();
List<string> top3 = enumerable.OrderBy(e => e.Rank).Take(3).Select(e => e.Player).ToList(); List<string> top3 = enumerable.OrderBy(e => e.Rank).Take(3).Select(e => e.Player).ToList();
@@ -451,7 +452,7 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
sb.Append("<tr>"); sb.Append("<tr>");
} }
columns++; columns++;
var span = 1; int span = 1;
if (columns == gamePlayed.Count()) if (columns == gamePlayed.Count())
{ {
if (columns % 2 != 0) if (columns % 2 != 0)
@@ -468,10 +469,10 @@ namespace LaDOSE.DesktopApp.Avalonia.ViewModels
{ {
sb.AppendLine($"<br> 1/ {top3[0]}<br> 2/ {top3[1]}<br> 3/ {top3[2]} <br>"); sb.AppendLine($"<br> 1/ {top3[0]}<br> 2/ {top3[1]}<br> 3/ {top3[2]} <br>");
//<a href=\"https://challonge.com/fr/{enumerable.First().TournamentUrl}\" target=\"_blank\">https://challonge.com/fr/{enumerable.First().TournamentUrl}</a> //<a href=\"https://challonge.com/fr/{enumerable.First().TournamentUrl}\" target=\"_blank\">https://challonge.com/fr/{enumerable.First().TournamentUrl}</a>
var url = enumerable.FirstOrDefault().TournamentUrl; string url = enumerable.FirstOrDefault()?.TournamentUrl;
url = url.Replace(" ", "-"); url = url.Replace(" ", "-");
url = url.Replace(".", "-"); url = url.Replace(".", "-");
sb.AppendLine($"<a href=\"https://smash.gg/tournament/ranking-1002/event/{url}\" target=\"_blank\">Voir le Bracket</p></td>"); sb.AppendLine($"<a href=\"https://start.gg/tournament/{Results.Slug}/event/{url}\" target=\"_blank\">Voir le Bracket</p></td>");
} }

View File

@@ -2,9 +2,10 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="650"
x:Class="LaDOSE.DesktopApp.Avalonia.Views.GamesView" x:Class="LaDOSE.DesktopApp.Avalonia.Views.GamesView"
xmlns:vm="using:LaDOSE.DesktopApp.Avalonia.ViewModels" xmlns:vm="using:LaDOSE.DesktopApp.Avalonia.ViewModels"
xmlns:dto="clr-namespace:LaDOSE.DTO;assembly=LaDOSE.DTO"
x:DataType="vm:GamesViewModel" x:DataType="vm:GamesViewModel"
> >
<Grid Row="4" Column="1"> <Grid Row="4" Column="1">
@@ -42,6 +43,7 @@
<RowDefinition Height="Auto"></RowDefinition> <RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition> <RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition> <RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition> <RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition> <RowDefinition Height="Auto"></RowDefinition>
@@ -71,11 +73,19 @@
<Label Grid.Row="6" Grid.Column="0">WpTagOs</Label> <Label Grid.Row="6" Grid.Column="0">WpTagOs</Label>
<TextBox Grid.Row="6" Grid.Column="1" Text="{Binding Path=CurrentGame.WordPressTagOs,Mode=TwoWay}" ></TextBox> <TextBox Grid.Row="6" Grid.Column="1" Text="{Binding Path=CurrentGame.WordPressTagOs,Mode=TwoWay}" ></TextBox>
<Label Grid.Row="7" Grid.Column="0">SmashId</Label> <Label Grid.Row="7" Grid.Column="0">SmashId</Label>
<TextBox Grid.Row="7" Grid.Column="1" Text="{Binding Path=CurrentGame.SmashId,Mode=TwoWay}"> <AutoCompleteBox Grid.Row="7" Grid.Column="1" Text="{Binding Path=CurrentGame.SmashId,Mode=TwoWay}" ItemsSource="{Binding Path=SearchGame}">
<AutoCompleteBox.ItemTemplate>
<DataTemplate>
<DockPanel LastChildFill="True" Margin="2" x:DataType="dto:GameDTO">
<TextBox Text="{Binding Id}"></TextBox>
<TextBlock Text="{Binding Name}" DockPanel.Dock="Left"/>
</DockPanel>
</DataTemplate>
</AutoCompleteBox.ItemTemplate>
</AutoCompleteBox>
</TextBox> <Button Grid.Row="9" x:Name="Update" Command="{Binding Update}">Update</Button>
<Button Grid.Row="9" Grid.Column="1" x:Name="SmashGame" Command="{Binding GetGame}">Get Game From Smash</Button>
<Button Grid.Row="9" Grid.ColumnSpan="2" x:Name="Update" Command="{Binding Update}">Update</Button>
</Grid> </Grid>
</Grid> </Grid>

View File

@@ -207,6 +207,6 @@
</Grid> </Grid>
<Button Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="3" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" x:Name="Export" Command="{Binding Export}">Export</Button> <Button Grid.Column="0" Grid.Row="4" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" x:Name="Export" Command="{Binding Export}">Export</Button>
</Grid> </Grid>
</UserControl> </UserControl>

View File

@@ -24,7 +24,7 @@ namespace LaDOSE.DesktopApp.Avalonia.Views
object? IViewFor.ViewModel object? IViewFor.ViewModel
{ {
get => ViewModel; get => ViewModel;
set => ViewModel = (TournamentResultViewModel)value; set => ViewModel = (TournamentResultViewModel)value!;
} }
public TournamentResultViewModel? ViewModel { get; set; } public TournamentResultViewModel? ViewModel { get; set; }

View File

@@ -0,0 +1,7 @@
#!/usr/bin/env sh
export ANDROID_HOME=/home/tom/src/android/
export PATH=$PATH:$ANDROID_HOME/build-tools/34.0.0:$ANDROID_HOME/platforms/android-34
dotnet build LaDOSE.DesktopApp.Avalonia.csproj -p:TargetFramework=net6.0-android -p:AndroidSdkDirectory=$ANDROID_HOME/build-tools/34.0.0

View File

@@ -2,16 +2,16 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<Platforms>AnyCPU;x64</Platforms> <Platforms>AnyCPU;x64</Platforms>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="DSharpPlus" Version="4.2.0" /> <PackageReference Include="DSharpPlus" Version="4.5.0" />
<PackageReference Include="DSharpPlus.CommandsNext" Version="4.2.0" /> <PackageReference Include="DSharpPlus.CommandsNext" Version="4.5.0" />
<PackageReference Include="DSharpPlus.Interactivity" Version="4.2.0" /> <PackageReference Include="DSharpPlus.Interactivity" Version="4.5.0" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="3.1.8" /> <PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.8" /> <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.1" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
</ItemGroup> </ItemGroup>

View File

@@ -9,6 +9,7 @@ namespace LaDOSE.Entity.Challonge
public List<Game> Games{ get; set; } public List<Game> Games{ get; set; }
public List<Result> Results { get; set; } public List<Result> Results { get; set; }
public string Slug { get; set; }
} }
public class Result public class Result

View File

@@ -2,12 +2,18 @@
<PropertyGroup> <PropertyGroup>
<Platforms>AnyCPU;x64</Platforms> <Platforms>AnyCPU;x64</Platforms>
<TargetFrameworks>net6.0;netcoreapp3.1</TargetFrameworks> <TargetFramework>net8.0</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.12" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="3.1.2" /> </ItemGroup>
<ItemGroup>
<Reference Include="Microsoft.EntityFrameworkCore">
<HintPath>..\..\..\..\.nuget\packages\microsoft.entityframeworkcore\8.0.11\lib\net8.0\Microsoft.EntityFrameworkCore.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -1,13 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<Platforms>AnyCPU;x64</Platforms> <Platforms>AnyCPU;x64</Platforms>
<LangVersion>12</LangVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="RestSharp" Version="110.2.0" /> <PackageReference Include="RestSharp" Version="112.1.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -24,16 +24,33 @@ namespace LaDOSE.REST
public event EventHandler<UpdatedJwtEventHandler> UpdatedJwtEvent; public event EventHandler<UpdatedJwtEventHandler> UpdatedJwtEvent;
public RestService() public RestService()
{ {
} }
public RestService(Uri url, string user, string password)
{
Client = new RestClient(url);
this.username = user;
this.password = password;
}
public void Connect(Uri url, string user, string password) public void Connect(Uri url, string user, string password)
{ {
Client = new RestClient(url); // Client = new RestClient(url);
string token = GetToken(user, password); // this.username = user;
// this.password = password;
string token;
try
{
token = GetToken(user, password);
}
catch (Exception)
{
return;
}
Client = new RestClient(url, options => Client = new RestClient(url, options =>
{ {
#if DEBUG #if DEBUG
@@ -42,8 +59,7 @@ namespace LaDOSE.REST
options.Authenticator = new JwtAuthenticator(token); options.Authenticator = new JwtAuthenticator(token);
}); });
this.username = user;
this.password = password;
} }
@@ -69,7 +85,7 @@ namespace LaDOSE.REST
private void CheckToken() private void CheckToken()
{ {
if (this.Auth == null || this.Auth.Expire <= DateTime.Now) if (this.Auth == null || this.Auth.Expire.ToUniversalTime() <= DateTime.Now.ToUniversalTime())
{ {
GetToken(this.username,this.password); GetToken(this.username,this.password);
} }
@@ -204,6 +220,14 @@ namespace LaDOSE.REST
var restResponse = Client.Get<List<GameDTO>>(restRequest); var restResponse = Client.Get<List<GameDTO>>(restRequest);
return restResponse; return restResponse;
} }
public List<GameDTO> GetSmashGames(string name)
{
CheckToken();
var restRequest = new RestRequest($"/api/Game/Smash/{name}", Method.Get);
var restResponse = Client.Get<List<GameDTO>>(restRequest);
return restResponse;
}
public GameDTO UpdateGame(GameDTO game) public GameDTO UpdateGame(GameDTO game)
{ {

View File

@@ -10,6 +10,9 @@ namespace LaDOSE.Business.Interface
{ {
Task<List<ChallongeTournament>> GetTournaments(DateTime? start, DateTime? end); Task<List<ChallongeTournament>> GetTournaments(DateTime? start, DateTime? end);
Task<Event> ParseSmash(string tournamentSlug); Task<Event> ParseSmash(string tournamentSlug);
Task<List<Game>> GetSmashGame(string name);
//Task<List<Event>> ParseChallonge(List<int> ids); //Task<List<Event>> ParseChallonge(List<int> ids);
//Task<TournamentsResult> GetChallongeTournamentsResult(List<int> ids); //Task<TournamentsResult> GetChallongeTournamentsResult(List<int> ids);

View File

@@ -18,6 +18,7 @@ namespace LaDOSE.Business.Interface
Task<TournamentResponse> GetNames(string slug); Task<TournamentResponse> GetNames(string slug);
Task<List<Game>> GetGames(string name);
} }
} }

View File

@@ -11,7 +11,6 @@ namespace LaDOSE.Business.Interface
List<WPEvent> GetWpEvent(); List<WPEvent> GetWpEvent();
List<WPUser> GetBooking(int wpEventId, Game game); List<WPUser> GetBooking(int wpEventId, Game game);
List<WPUser> GetBookingOptions(int wpEventId, Game game); List<WPUser> GetBookingOptions(int wpEventId, Game game);
bool UpdateBooking();
string CreateChallonge(int gameId, int wpEventId, IList<WPUser> additionPlayers); string CreateChallonge(int gameId, int wpEventId, IList<WPUser> additionPlayers);
Task<string> GetLastChallonge(); Task<string> GetLastChallonge();

View File

@@ -1,15 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<AssemblyName>LaDOSE.Business</AssemblyName> <AssemblyName>LaDOSE.Business</AssemblyName>
<RootNamespace>LaDOSE.Business</RootNamespace> <RootNamespace>LaDOSE.Business</RootNamespace>
<Platforms>AnyCPU;x64</Platforms> <Platforms>AnyCPU;x64</Platforms>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="GraphQL.Client" Version="4.0.2" /> <PackageReference Include="GraphQL.Client" Version="6.1.0" />
<PackageReference Include="GraphQL.Client.Serializer.Newtonsoft" Version="4.0.2" /> <PackageReference Include="GraphQL.Client.Serializer.Newtonsoft" Version="6.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.12" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
</ItemGroup> </ItemGroup>

View File

@@ -15,6 +15,7 @@ namespace LaDOSE.Business.Provider.SmashProvider
{ {
public class SmashProvider : ISmashProvider public class SmashProvider : ISmashProvider
{ {
private static string API_FQDN = "api.start.gg";
public string ApiKey { get; set; } public string ApiKey { get; set; }
//public SmashProvider(string apiKey) //public SmashProvider(string apiKey)
//{ //{
@@ -34,7 +35,7 @@ namespace LaDOSE.Business.Provider.SmashProvider
private async Task<T> QuerySmash<T>(GraphQLRequest req) private async Task<T> QuerySmash<T>(GraphQLRequest req)
{ {
var graphQLClient = new GraphQLHttpClient("https://api.smash.gg/gql/alpha", new NewtonsoftJsonSerializer()); var graphQLClient = new GraphQLHttpClient($"https://{API_FQDN}/gql/alpha", new NewtonsoftJsonSerializer());
graphQLClient.HttpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {ApiKey}"); graphQLClient.HttpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {ApiKey}");
var graphQLResponse = await graphQLClient.SendQueryAsync<T>(req); var graphQLResponse = await graphQLClient.SendQueryAsync<T>(req);
@@ -47,6 +48,37 @@ namespace LaDOSE.Business.Provider.SmashProvider
return graphQLResponse.Data; return graphQLResponse.Data;
} }
public async Task<List<Game>> GetGames(string game)
{
var query = new GraphQLRequest()
{
Query = @"
query VideogameQuery($name:String) {
videogames(query: { filter: { name: $name }, perPage: 5 }) {
nodes {
id
name
displayName
}
}
}
",
OperationName = "VideogameQuery",
Variables = new
{
name = game,
}
};
VideoGamesResponse querySmash = await QuerySmash<VideoGamesResponse>(query);
if (querySmash.videogames != null)
{
return querySmash.videogames.nodes.Select(e => new Game() { Id = e.id, Name = e.Name }).ToList();
}
return new List<Game>();
}
public async Task<Event> GetEvent(string slug) public async Task<Event> GetEvent(string slug)
{ {
@@ -315,7 +347,7 @@ namespace LaDOSE.Business.Provider.SmashProvider
public async Task<TournamentResponse> GetNames(string slug) public async Task<TournamentResponse> GetNames(string slug)
{ {
var graphQLClient = new GraphQLHttpClient("https://api.smash.gg/gql/alpha", new NewtonsoftJsonSerializer()); var graphQLClient = new GraphQLHttpClient($"https://{API_FQDN}/gql/alpha", new NewtonsoftJsonSerializer());
graphQLClient.HttpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {ApiKey}"); graphQLClient.HttpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {ApiKey}");
var Event = new GraphQLRequest var Event = new GraphQLRequest
{ {
@@ -381,7 +413,7 @@ namespace LaDOSE.Business.Provider.SmashProvider
public async Task<TournamentResponse> GetTournament(string slug) public async Task<TournamentResponse> GetTournament(string slug)
{ {
var graphQLClient = new GraphQLHttpClient("https://api.smash.gg/gql/alpha", new NewtonsoftJsonSerializer()); var graphQLClient = new GraphQLHttpClient($"https://{API_FQDN}/gql/alpha", new NewtonsoftJsonSerializer());
graphQLClient.HttpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {ApiKey}"); graphQLClient.HttpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {ApiKey}");
var Event = new GraphQLRequest var Event = new GraphQLRequest
{ {

View File

@@ -120,7 +120,10 @@ namespace LaDOSE.Business.Provider.SmashProvider
} }
public class VideoGamesResponse
{
public Node<VideoGameType>? videogames {get; set; }
}
public class TournamentResponse public class TournamentResponse

View File

@@ -6,6 +6,7 @@ using LaDOSE.Entity.BotEvent;
using LaDOSE.Entity.Context; using LaDOSE.Entity.Context;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace LaDOSE.Business.Service namespace LaDOSE.Business.Service
{ {
public class BotEventService : BaseService<BotEvent>, IBotEventService public class BotEventService : BaseService<BotEvent>, IBotEventService

View File

@@ -78,6 +78,10 @@ namespace LaDOSE.Business.Service
//} //}
} }
public async Task<List<Game>> GetSmashGames(string name)
{
return await _smashProvider.GetGames(name);
}
public async Task<Event> ParseSmash(string tournamentSlug) public async Task<Event> ParseSmash(string tournamentSlug)
{ {
Event eventExist = GetBySlug(tournamentSlug); Event eventExist = GetBySlug(tournamentSlug);
@@ -109,6 +113,11 @@ namespace LaDOSE.Business.Service
} }
public Task<List<Game>> GetSmashGame(string name)
{
return _smashProvider.GetGames(name);
}
private Event GetBySlug(string tournamentSlug) private Event GetBySlug(string tournamentSlug)
{ {
return _context.Event.FirstOrDefault(e => e.SmashSlug == tournamentSlug); return _context.Event.FirstOrDefault(e => e.SmashSlug == tournamentSlug);
@@ -139,10 +148,14 @@ namespace LaDOSE.Business.Service
players = players.Concat(e.Tournaments.SelectMany(e => e.Results.Select(e => e.Player)).Distinct().ToList()).ToList(); players = players.Concat(e.Tournaments.SelectMany(e => e.Results.Select(e => e.Player)).Distinct().ToList()).ToList();
cevent.Tournaments = cevent.Tournaments.Concat(e.Tournaments).ToList(); cevent.Tournaments = cevent.Tournaments.Concat(e.Tournaments).ToList();
} }
var games = _context.Game.ToList(); var games = _context.Game.ToList();
TournamentsResult result = new TournamentsResult(); TournamentsResult result = new TournamentsResult();
if (id.Count == 1)
{
result.Slug = _context.Event.Where(e=> e.Id == id.First()).First().SmashSlug;
}
result.Results = new List<Result>(); result.Results = new List<Result>();
result.Games = new List<Game>(); result.Games = new List<Game>();
result.Participents = new List<ChallongeParticipent>(); result.Participents = new List<ChallongeParticipent>();

View File

@@ -42,14 +42,7 @@ namespace LaDOSE.Business.Service
.Include(e => e.WPBookings).ThenInclude(e => e.WPUser).FirstOrDefault(e => Enumerable.Count<WPBooking>(e.WPBookings) != 0); .Include(e => e.WPBookings).ThenInclude(e => e.WPUser).FirstOrDefault(e => Enumerable.Count<WPBooking>(e.WPBookings) != 0);
return wpEvents; return wpEvents;
} }
public bool UpdateBooking()
{
_context.Database.SetCommandTimeout(60);
_context.Database.ExecuteSqlRaw("call ladoseapi.ImportEvent();");
_context.Database.SetCommandTimeout(30);
return true;
}
public List<WPUser> GetBooking(int wpEventId, Game game) public List<WPUser> GetBooking(int wpEventId, Game game)
{ {
var selectedGameWpId = game.WordPressTag.Split(';'); var selectedGameWpId = game.WordPressTag.Split(';');

View File

@@ -2,9 +2,10 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<LangVersion>12</LangVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View File

@@ -2,18 +2,18 @@
internal class Program internal class Program
{ {
public static void Main(string[] args) public static void Main(string[] args)
{
Console.WriteLine("Rest Test");
var p = new LaDOSE.REST.RestService();
Console.WriteLine("[+] Connect");
p.Connect(new Uri("http://localhost:5000/"),"dev","dev");
Console.WriteLine("[+] Test");
var games = p.GetGames();
foreach (var ga in games)
{ {
Console.WriteLine(ga.Name); // Console.WriteLine("Rest Test");
} // var p = new LaDOSE.REST.RestService();
// Console.WriteLine("[+] Connect");
//
// p.Connect(new Uri("http://localhost:5000/"),"dev","dev");
// Console.WriteLine("[+] Test");
// var games = p.GetGames();
// foreach (var ga in games)
// {
// Console.WriteLine(ga.Name);
// }
} }
} }

View File

@@ -1,6 +1,6 @@
{ {
"sdk": { "sdk": {
"version": "6.0.0", "version": "8.0.0",
"rollForward": "latestMajor", "rollForward": "latestMajor",
"allowPrerelease": true "allowPrerelease": true
} }