Fix challonge event

Fix GenericController
Fix ChallongeSave.
Fix RestAPI in prod mode.
This commit is contained in:
2022-07-30 20:00:31 +02:00
parent 715caa74b2
commit 0173070ba4
9 changed files with 56 additions and 44 deletions

View File

@@ -2,7 +2,9 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using AutoMapper;
using LaDOSE.Business.Interface; using LaDOSE.Business.Interface;
using LaDOSE.DTO;
using LaDOSE.Entity; using LaDOSE.Entity;
using LaDOSE.Entity.Wordpress; using LaDOSE.Entity.Wordpress;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
@@ -11,19 +13,24 @@ using Microsoft.AspNetCore.Mvc;
namespace LaDOSE.Api.Controllers namespace LaDOSE.Api.Controllers
{ {
[AllowAnonymous]
//[Authorize] //[Authorize]
[Produces("application/json")] [Produces("application/json")]
[Route("api/[controller]")] [Route("api/[controller]")]
public class EventController : GenericController<IEventService, Event> public class EventController : GenericControllerDTO<IEventService, Event, EventDTO>
{ {
private IGameService _gameService; private IGameService _gameService;
public EventController(IEventService service,IGameService gameService) : base(service) public EventController(IMapper mapper, IEventService service,IGameService gameService) : base(mapper,service)
{ {
this._gameService = gameService; this._gameService = gameService;
} }
public override List<EventDTO> Get()
{
return this._mapper.Map<List<EventDTO>>(_service.GetAll().OrderByDescending(e=>e.Date).ToList());
}
} }
} }

View File

@@ -8,7 +8,7 @@ using Microsoft.AspNetCore.Mvc;
namespace LaDOSE.Api.Controllers namespace LaDOSE.Api.Controllers
{ {
public class GenericController<T, TU> : Controller where TU : Entity.Context.Entity where T : IBaseService<TU> public abstract class GenericController<T, TU> : Controller where TU : Entity.Context.Entity where T : IBaseService<TU>
{ {
protected T _service; protected T _service;
@@ -18,13 +18,13 @@ namespace LaDOSE.Api.Controllers
} }
[HttpPost] [HttpPost]
public TU Post([FromBody] TU dto) public virtual TU Post([FromBody] TU dto)
{ {
return _service.AddOrUpdate(dto); return _service.AddOrUpdate(dto);
} }
[HttpGet] [HttpGet]
public List<TU> Get() public virtual List<TU> Get()
{ {
return _service.GetAll().ToList(); return _service.GetAll().ToList();
@@ -32,14 +32,14 @@ namespace LaDOSE.Api.Controllers
} }
[HttpGet("{id}")] [HttpGet("{id}")]
public TU Get(int id) public virtual TU Get(int id)
{ {
return _service.GetById(id); return _service.GetById(id);
} }
[HttpDelete("{id}")] [HttpDelete("{id}")]
public IActionResult Delete(int id) public virtual IActionResult Delete(int id)
{ {
try try
{ {

View File

@@ -7,7 +7,7 @@ using Microsoft.AspNetCore.Mvc;
namespace LaDOSE.Api.Controllers namespace LaDOSE.Api.Controllers
{ {
public class GenericControllerDTO<T, TU, D> : Controller where TU : Entity.Context.Entity where T : IBaseService<TU> public abstract class GenericControllerDTO<T, TU, D> : Controller where TU : Entity.Context.Entity where T : IBaseService<TU>
{ {
protected IMapper _mapper; protected IMapper _mapper;
protected T _service; protected T _service;
@@ -19,26 +19,26 @@ namespace LaDOSE.Api.Controllers
} }
[HttpPost] [HttpPost]
public D Post([FromBody]D dto) public virtual D Post([FromBody]D dto)
{ {
TU entity = _mapper.Map<TU>(dto); TU entity = _mapper.Map<TU>(dto);
return _mapper.Map<D>(_service.AddOrUpdate(entity)); return _mapper.Map<D>(_service.AddOrUpdate(entity));
} }
[HttpGet] [HttpGet]
public List<D> Get() public virtual List<D> Get()
{ {
return _mapper.Map<List<D>>(_service.GetAll().ToList()); return _mapper.Map<List<D>>(_service.GetAll().ToList());
} }
[HttpGet("{id}")] [HttpGet("{id}")]
public D Get(int id) public virtual D Get(int id)
{ {
return _mapper.Map<D>(_service.GetById(id)); return _mapper.Map<D>(_service.GetById(id));
} }
[HttpDelete("{id}")] [HttpDelete("{id}")]
public IActionResult Delete(int id) public virtual IActionResult Delete(int id)
{ {
try try
{ {

View File

@@ -74,7 +74,7 @@ namespace LaDOSE.Api.Controllers
{ {
if (ids != null) if (ids != null)
{ {
var tournaments = await _service.ParseChallonge(ids); var tournaments = await _service.GetChallongeEvents(ids);
return tournaments.Count>0; return tournaments.Count>0;
} }
return false; return false;

View File

@@ -29,9 +29,9 @@ namespace LaDOSE.REST
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);
#if DEBUG
Client.Timeout = 999*1000; Client.Timeout = 999*1000;
#endif
this.username = user; this.username = user;
this.password = password; this.password = password;
GetToken(user, password); GetToken(user, password);

View File

@@ -10,7 +10,7 @@ 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<Event>> ParseChallonge(List<int> ids); //Task<List<Event>> ParseChallonge(List<int> ids);
//Task<TournamentsResult> GetChallongeTournamentsResult(List<int> ids); //Task<TournamentsResult> GetChallongeTournamentsResult(List<int> ids);
//Task<TournamentsResult> GetSmashResult(string tournamentSlug); //Task<TournamentsResult> GetSmashResult(string tournamentSlug);

View File

@@ -197,14 +197,14 @@ namespace LaDOSE.Business.Provider.ChallongProvider
Name = eventName, Name = eventName,
Date = Date, Date = Date,
}; };
this.EventService.AddOrUpdate(currentevent); //this.EventService.AddOrUpdate(currentevent);
return currentevent; return currentevent;
} }
private const string RegexRanking = @"[R|r]anking.?#\w{3}"; private const string RegexRanking = @"[R|r]anking.?#\d{1,3}";
private const string DateRanking = @"^\[(\d{2}\/\d{2}\/\d{2})\]"; private const string DateRanking = @"^\[(\d{2}\/\d{2}\/\d{2})\]";
private const string GameRanking = @"\-.(\w*)$"; private const string GameRanking = @"\-.((\w|\.|\s)*)$";
public async Task<List<Event>> ParseEvent(List<int> idTournaments) public async Task<List<Event>> ParseEvent(List<int> idTournaments)
{ {
var result = new List<Event>(); var result = new List<Event>();

View File

@@ -85,7 +85,10 @@ namespace LaDOSE.Business.Provider.SmashProvider
Game = games.FirstOrDefault(g => g.SmashId == e.videogame.id) Game = games.FirstOrDefault(g => g.SmashId == e.videogame.id)
}).ToList(); }).ToList();
if (tournaments.Any(e => !e.Finish))
{
throw new Exception("Tournament not finished.");
}
return new Event return new Event
{ {
SmashSlug = slug, SmashSlug = slug,

View File

@@ -192,10 +192,11 @@ namespace LaDOSE.Business.Service
} }
public Task<List<Event>> ParseChallonge(List<int> ids) //public Task<List<Event>> ParseChallonge(List<int> ids)
{ //{
return _challongeProvider.ParseEvent(ids); // return GetChallongeEvents(ids);
} // //return _challongeProvider.Get(ids);
//}
private Event GetBySlug(string tournamentSlug) private Event GetBySlug(string tournamentSlug)
{ {
@@ -220,6 +221,7 @@ namespace LaDOSE.Business.Service
{ {
var events = await this._challongeProvider.ParseEvent(ids); var events = await this._challongeProvider.ParseEvent(ids);
this._context.Event.AddRange(events); this._context.Event.AddRange(events);
this._context.SaveChanges();
return events; return events;
} }