Add code generation.
Replaces the client and server controller implementations with generated code from the shared project.
This commit is contained in:
@@ -12,4 +12,17 @@
|
||||
<PackageReference Include="Z.ExtensionMethods" Version="2.1.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Update="Routes.tt">
|
||||
<Generator>TextTemplatingFileGenerator</Generator>
|
||||
<LastGenOutput>Routes.cs</LastGenOutput>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Update="Routes.cs">
|
||||
<DependentUpon>Routes.tt</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -3,14 +3,12 @@ using System.Net.Http;
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using System.Threading.Tasks;
|
||||
using EstusShots.Client.Routes;
|
||||
using EstusShots.Shared.Dto;
|
||||
using EstusShots.Shared.Interfaces;
|
||||
using EstusShots.Shared.Models;
|
||||
|
||||
namespace EstusShots.Client
|
||||
{
|
||||
public class EstusShotsClient
|
||||
public partial class EstusShotsClient
|
||||
{
|
||||
private readonly JsonSerializerOptions _serializerOptions = new JsonSerializerOptions
|
||||
{
|
||||
@@ -20,13 +18,6 @@ namespace EstusShots.Client
|
||||
|
||||
public string ApiUrl { get; }
|
||||
|
||||
// API Routes
|
||||
public Seasons Seasons { get; }
|
||||
public Episodes Episodes { get; }
|
||||
public Players Players { get; }
|
||||
public Drinks Drinks { get; }
|
||||
public Enemies Enemies { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new instance of <see cref="EstusShotsClient"/>
|
||||
/// </summary>
|
||||
@@ -35,12 +26,7 @@ namespace EstusShots.Client
|
||||
{
|
||||
ApiUrl = apiUrl;
|
||||
HttpClient = new HttpClient {Timeout = TimeSpan.FromSeconds(10)};
|
||||
|
||||
Seasons = new Seasons(this);
|
||||
Episodes = new Episodes(this);
|
||||
Players = new Players(this);
|
||||
Drinks = new Drinks(this);
|
||||
Enemies = new Enemies(this);
|
||||
CreateApiRoutes();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
141
EstusShots.Client/Routes.cs
Normal file
141
EstusShots.Client/Routes.cs
Normal file
@@ -0,0 +1,141 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
using System.Threading.Tasks;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
using EstusShots.Shared.Interfaces.Controllers;
|
||||
|
||||
namespace EstusShots.Client
|
||||
{
|
||||
// Generated part of the client class
|
||||
public partial class EstusShotsClient
|
||||
{
|
||||
public Drinks Drinks { get; internal set; }
|
||||
public Enemies Enemies { get; internal set; }
|
||||
public Episodes Episodes { get; internal set; }
|
||||
public Players Players { get; internal set; }
|
||||
public Seasons Seasons { get; internal set; }
|
||||
|
||||
private void CreateApiRoutes()
|
||||
{
|
||||
Drinks = new Drinks(this);
|
||||
Enemies = new Enemies(this);
|
||||
Episodes = new Episodes(this);
|
||||
Players = new Players(this);
|
||||
Seasons = new Seasons(this);
|
||||
}
|
||||
}
|
||||
|
||||
public class Drinks : IDrinksController
|
||||
{
|
||||
private readonly EstusShotsClient _client;
|
||||
|
||||
public Drinks(EstusShotsClient client)
|
||||
{
|
||||
_client = client;
|
||||
}
|
||||
|
||||
public async Task<ApiResponse<GetDrinksResponse>> GetDrinks(GetDrinksParameter parameter)
|
||||
=> await _client.PostToApi<GetDrinksResponse, GetDrinksParameter>($"{_client.ApiUrl}Drinks/GetDrinks", parameter);
|
||||
|
||||
public async Task<ApiResponse<GetDrinkDetailsResponse>> GetDrinkDetails(GetDrinkDetailsParameter parameter)
|
||||
=> await _client.PostToApi<GetDrinkDetailsResponse, GetDrinkDetailsParameter>($"{_client.ApiUrl}Drinks/GetDrinkDetails", parameter);
|
||||
|
||||
public async Task<ApiResponse<SaveDrinkResponse>> SaveDrink(SaveDrinkParameter parameter)
|
||||
=> await _client.PostToApi<SaveDrinkResponse, SaveDrinkParameter>($"{_client.ApiUrl}Drinks/SaveDrink", parameter);
|
||||
|
||||
}
|
||||
|
||||
public class Enemies : IEnemiesController
|
||||
{
|
||||
private readonly EstusShotsClient _client;
|
||||
|
||||
public Enemies(EstusShotsClient client)
|
||||
{
|
||||
_client = client;
|
||||
}
|
||||
|
||||
public async Task<ApiResponse<GetEnemiesResponse>> GetEnemies(GetEnemiesParameter parameter)
|
||||
=> await _client.PostToApi<GetEnemiesResponse, GetEnemiesParameter>($"{_client.ApiUrl}Enemies/GetEnemies", parameter);
|
||||
|
||||
public async Task<ApiResponse<GetEnemyResponse>> GetEnemy(GetEnemyParameter parameter)
|
||||
=> await _client.PostToApi<GetEnemyResponse, GetEnemyParameter>($"{_client.ApiUrl}Enemies/GetEnemy", parameter);
|
||||
|
||||
public async Task<ApiResponse<SaveEnemyResponse>> SaveEnemy(SaveEnemyParameter parameter)
|
||||
=> await _client.PostToApi<SaveEnemyResponse, SaveEnemyParameter>($"{_client.ApiUrl}Enemies/SaveEnemy", parameter);
|
||||
|
||||
public async Task<ApiResponse<DeleteEnemyResponse>> DeleteEnemy(DeleteEnemyParameter parameter)
|
||||
=> await _client.PostToApi<DeleteEnemyResponse, DeleteEnemyParameter>($"{_client.ApiUrl}Enemies/DeleteEnemy", parameter);
|
||||
|
||||
}
|
||||
|
||||
public class Episodes : IEpisodesController
|
||||
{
|
||||
private readonly EstusShotsClient _client;
|
||||
|
||||
public Episodes(EstusShotsClient client)
|
||||
{
|
||||
_client = client;
|
||||
}
|
||||
|
||||
public async Task<ApiResponse<GetEpisodesResponse>> GetEpisodes(GetEpisodesParameter parameter)
|
||||
=> await _client.PostToApi<GetEpisodesResponse, GetEpisodesParameter>($"{_client.ApiUrl}Episodes/GetEpisodes", parameter);
|
||||
|
||||
public async Task<ApiResponse<GetEpisodeResponse>> GetEpisode(GetEpisodeParameter parameter)
|
||||
=> await _client.PostToApi<GetEpisodeResponse, GetEpisodeParameter>($"{_client.ApiUrl}Episodes/GetEpisode", parameter);
|
||||
|
||||
public async Task<ApiResponse<SaveEpisodeResponse>> SaveEpisode(SaveEpisodeParameter parameter)
|
||||
=> await _client.PostToApi<SaveEpisodeResponse, SaveEpisodeParameter>($"{_client.ApiUrl}Episodes/SaveEpisode", parameter);
|
||||
|
||||
}
|
||||
|
||||
public class Players : IPlayersController
|
||||
{
|
||||
private readonly EstusShotsClient _client;
|
||||
|
||||
public Players(EstusShotsClient client)
|
||||
{
|
||||
_client = client;
|
||||
}
|
||||
|
||||
public async Task<ApiResponse<GetPlayersResponse>> GetPlayers(GetPlayersParameter parameter)
|
||||
=> await _client.PostToApi<GetPlayersResponse, GetPlayersParameter>($"{_client.ApiUrl}Players/GetPlayers", parameter);
|
||||
|
||||
public async Task<ApiResponse<GetPlayerDetailsResponse>> GetPlayerDetails(GetPlayerDetailsParameter parameter)
|
||||
=> await _client.PostToApi<GetPlayerDetailsResponse, GetPlayerDetailsParameter>($"{_client.ApiUrl}Players/GetPlayerDetails", parameter);
|
||||
|
||||
public async Task<ApiResponse<SavePlayerResponse>> SavePlayer(SavePlayerParameter parameter)
|
||||
=> await _client.PostToApi<SavePlayerResponse, SavePlayerParameter>($"{_client.ApiUrl}Players/SavePlayer", parameter);
|
||||
|
||||
public async Task<ApiResponse<DeletePlayerResponse>> DeletePlayer(DeletePlayerParameter parameter)
|
||||
=> await _client.PostToApi<DeletePlayerResponse, DeletePlayerParameter>($"{_client.ApiUrl}Players/DeletePlayer", parameter);
|
||||
|
||||
}
|
||||
|
||||
public class Seasons : ISeasonsController
|
||||
{
|
||||
private readonly EstusShotsClient _client;
|
||||
|
||||
public Seasons(EstusShotsClient client)
|
||||
{
|
||||
_client = client;
|
||||
}
|
||||
|
||||
public async Task<ApiResponse<GetSeasonsResponse>> GetSeasons(GetSeasonsParameter parameter)
|
||||
=> await _client.PostToApi<GetSeasonsResponse, GetSeasonsParameter>($"{_client.ApiUrl}Seasons/GetSeasons", parameter);
|
||||
|
||||
public async Task<ApiResponse<GetSeasonResponse>> GetSeason(GetSeasonParameter parameter)
|
||||
=> await _client.PostToApi<GetSeasonResponse, GetSeasonParameter>($"{_client.ApiUrl}Seasons/GetSeason", parameter);
|
||||
|
||||
public async Task<ApiResponse<SaveSeasonResponse>> SaveSeason(SaveSeasonParameter parameter)
|
||||
=> await _client.PostToApi<SaveSeasonResponse, SaveSeasonParameter>($"{_client.ApiUrl}Seasons/SaveSeason", parameter);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
91
EstusShots.Client/Routes.tt
Normal file
91
EstusShots.Client/Routes.tt
Normal file
@@ -0,0 +1,91 @@
|
||||
<#@ template language="C#" #>
|
||||
<#@ output extension=".cs" #>
|
||||
<#@ assembly name="System.Core" #>
|
||||
<#@ assembly name="$(SolutionDir)EstusShots.Shared/bin/Debug/netcoreapp3.1/EstusShots.Shared.dll" #>
|
||||
<#@ import namespace="Shared.Interfaces" #>
|
||||
<#@ import namespace="System.Linq" #>
|
||||
<#
|
||||
var assembly = typeof(IApiParameter).Assembly;
|
||||
var types = assembly.GetTypes()
|
||||
.Where(t => t.Namespace?.StartsWith("EstusShots.Shared") == true)
|
||||
.ToArray();
|
||||
var controllers = types
|
||||
.Where(t => t.Namespace == "EstusShots.Shared.Interfaces.Controllers")
|
||||
.ToArray();
|
||||
#>
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
using System.Threading.Tasks;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
using EstusShots.Shared.Interfaces.Controllers;
|
||||
|
||||
namespace EstusShots.Client
|
||||
{
|
||||
// Generated part of the client class
|
||||
public partial class EstusShotsClient
|
||||
{
|
||||
<#
|
||||
// Create API client route properties
|
||||
foreach (var iFace in controllers)
|
||||
{
|
||||
var className = iFace.Name.Substring(1).Replace("Controller", "");
|
||||
#>
|
||||
public <#=className#> <#=className#> { get; internal set; }
|
||||
<#
|
||||
}
|
||||
#>
|
||||
|
||||
private void CreateApiRoutes()
|
||||
{
|
||||
<#
|
||||
// Instantiate API client routes
|
||||
foreach (var iFace in controllers)
|
||||
{
|
||||
var className = iFace.Name.Substring(1).Replace("Controller", "");
|
||||
#>
|
||||
<#=className#> = new <#=className#>(this);
|
||||
<#
|
||||
}
|
||||
#>
|
||||
}
|
||||
}
|
||||
|
||||
<#
|
||||
foreach (var iFace in controllers)
|
||||
{
|
||||
var className = iFace.Name.Substring(1).Replace("Controller", "");
|
||||
#>
|
||||
public class <#=className#> : <#=iFace.Name #>
|
||||
{
|
||||
private readonly EstusShotsClient _client;
|
||||
|
||||
public <#=className#>(EstusShotsClient client)
|
||||
{
|
||||
_client = client;
|
||||
}
|
||||
|
||||
<#
|
||||
foreach (var member in iFace.GetMembers())
|
||||
{
|
||||
var responseName = $"{member.Name}Response";
|
||||
var parameterName = $"{member.Name}Parameter";
|
||||
#>
|
||||
public async Task<ApiResponse<<#=responseName#>>> <#=member.Name#>(<#=parameterName#> parameter)
|
||||
=> await _client.PostToApi<<#=responseName#>, <#=parameterName#>>($"{_client.ApiUrl}<#=className#>/<#=member.Name#>", parameter);
|
||||
|
||||
<#
|
||||
}
|
||||
#>
|
||||
}
|
||||
|
||||
<#
|
||||
}
|
||||
#>
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Threading.Tasks;
|
||||
using EstusShots.Shared.Interfaces;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
|
||||
namespace EstusShots.Client.Routes
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public class Drinks : IDrinksController
|
||||
{
|
||||
private readonly EstusShotsClient _client;
|
||||
|
||||
public Drinks(EstusShotsClient client)
|
||||
{
|
||||
_client = client;
|
||||
}
|
||||
|
||||
private string ActionUrl([CallerMemberName]string caller = "") =>
|
||||
$"{_client.ApiUrl}{GetType().Name}/{caller}";
|
||||
|
||||
/// <inheritdoc/>
|
||||
public async Task<ApiResponse<GetDrinksResponse>> GetDrinks(GetDrinksParameter parameter)
|
||||
=> await _client.PostToApi<GetDrinksResponse, GetDrinksParameter>(ActionUrl(), parameter);
|
||||
|
||||
/// <inheritdoc/>
|
||||
public async Task<ApiResponse<GetDrinkDetailsResponse>> GetDrinkDetails(GetDrinkDetailsParameter parameter)
|
||||
=> await _client.PostToApi<GetDrinkDetailsResponse, GetDrinkDetailsParameter>(ActionUrl(), parameter);
|
||||
|
||||
/// <inheritdoc/>
|
||||
public async Task<ApiResponse<SaveDrinkResponse>> SaveDrink(SaveDrinkParameter parameter)
|
||||
=> await _client.PostToApi<SaveDrinkResponse, SaveDrinkParameter>(ActionUrl(), parameter);
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Threading.Tasks;
|
||||
using EstusShots.Shared.Interfaces;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
|
||||
namespace EstusShots.Client.Routes
|
||||
{
|
||||
public class Enemies : IEnemiesController
|
||||
{
|
||||
private readonly EstusShotsClient _client;
|
||||
|
||||
public Enemies(EstusShotsClient client)
|
||||
{
|
||||
_client = client;
|
||||
}
|
||||
|
||||
public async Task<ApiResponse<GetEnemiesResponse>> GetEnemies(GetEnemiesParameter parameter)
|
||||
=> await _client.PostToApi<GetEnemiesResponse, GetEnemiesParameter>(ActionUrl(), parameter);
|
||||
|
||||
public async Task<ApiResponse<GetEnemyResponse>> GetEnemy(GetEnemyParameter parameter)
|
||||
=> await _client.PostToApi<GetEnemyResponse, GetEnemyParameter>(ActionUrl(), parameter);
|
||||
|
||||
public async Task<ApiResponse<SaveEnemyResponse>> SaveEnemy(SaveEnemyParameter parameter)
|
||||
=> await _client.PostToApi<SaveEnemyResponse, SaveEnemyParameter>(ActionUrl(), parameter);
|
||||
|
||||
public async Task<ApiResponse<DeleteEnemyResponse>> DeleteEnemy(DeleteEnemyParameter parameter)
|
||||
=> await _client.PostToApi<DeleteEnemyResponse, DeleteEnemyParameter>(ActionUrl(), parameter);
|
||||
|
||||
private string ActionUrl([CallerMemberName]string caller = "") =>
|
||||
$"{_client.ApiUrl}{GetType().Name}/{caller}";
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Threading.Tasks;
|
||||
using EstusShots.Shared.Interfaces;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
|
||||
namespace EstusShots.Client.Routes
|
||||
{
|
||||
public class Episodes : IEpisodesController
|
||||
{
|
||||
private readonly EstusShotsClient _client;
|
||||
|
||||
public Episodes(EstusShotsClient client)
|
||||
{
|
||||
_client = client;
|
||||
}
|
||||
|
||||
private string ActionUrl([CallerMemberName]string caller = "") =>
|
||||
$"{_client.ApiUrl}{nameof(Episodes)}/{caller}";
|
||||
|
||||
public async Task<ApiResponse<GetEpisodesResponse>> GetEpisodes(GetEpisodesParameter parameter) =>
|
||||
await _client.PostToApi<GetEpisodesResponse, GetEpisodesParameter>(ActionUrl(), parameter);
|
||||
|
||||
public async Task<ApiResponse<GetEpisodeResponse>> GetEpisode(GetEpisodeParameter parameter) =>
|
||||
await _client.PostToApi<GetEpisodeResponse, GetEpisodeParameter>(ActionUrl(), parameter);
|
||||
|
||||
public async Task<ApiResponse<SaveEpisodeResponse>> SaveEpisode(SaveEpisodeParameter parameter) =>
|
||||
await _client.PostToApi<SaveEpisodeResponse, SaveEpisodeParameter>(ActionUrl(), parameter);
|
||||
}
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Threading.Tasks;
|
||||
using EstusShots.Shared.Interfaces;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
|
||||
namespace EstusShots.Client.Routes
|
||||
{
|
||||
public class Players : IPlayersController
|
||||
{
|
||||
private readonly EstusShotsClient _client;
|
||||
|
||||
public Players(EstusShotsClient client)
|
||||
{
|
||||
_client = client;
|
||||
}
|
||||
private string ActionUrl([CallerMemberName]string caller = "") =>
|
||||
$"{_client.ApiUrl}{GetType().Name}/{caller}";
|
||||
|
||||
public async Task<ApiResponse<GetPlayersResponse>> GetPlayers(GetPlayersParameter parameter)
|
||||
=> await _client.PostToApi<GetPlayersResponse, GetPlayersParameter>(ActionUrl(), parameter);
|
||||
|
||||
public async Task<ApiResponse<GetPlayerDetailsResponse>> GetPlayerDetails(GetPlayerDetailsParameter parameter)
|
||||
=> await _client.PostToApi<GetPlayerDetailsResponse, GetPlayerDetailsParameter>(ActionUrl(), parameter);
|
||||
|
||||
public async Task<ApiResponse<SavePlayerResponse>> SavePlayer(SavePlayerParameter parameter)
|
||||
=> await _client.PostToApi<SavePlayerResponse, SavePlayerParameter>(ActionUrl(), parameter);
|
||||
|
||||
public async Task<ApiResponse<DeletePlayerResponse>> DeletePlayers(DeletePlayerParameter parameter)
|
||||
=> await _client.PostToApi<DeletePlayerResponse, DeletePlayerParameter>(ActionUrl(), parameter);
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Threading.Tasks;
|
||||
using EstusShots.Shared.Interfaces;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
|
||||
namespace EstusShots.Client.Routes
|
||||
{
|
||||
public class Seasons : ISeasonsController
|
||||
{
|
||||
private readonly EstusShotsClient _client;
|
||||
|
||||
public Seasons(EstusShotsClient client)
|
||||
{
|
||||
_client = client;
|
||||
}
|
||||
|
||||
private string ActionUrl([CallerMemberName]string caller = "") =>
|
||||
$"{_client.ApiUrl}{nameof(Seasons)}/{caller}";
|
||||
|
||||
public async Task<ApiResponse<GetSeasonsResponse>> GetSeasons(GetSeasonsParameter parameter) =>
|
||||
await _client.PostToApi<GetSeasonsResponse, GetSeasonsParameter>(ActionUrl(), parameter);
|
||||
|
||||
public async Task<ApiResponse<GetSeasonResponse>> GetSeason(GetSeasonParameter parameter) =>
|
||||
await _client.PostToApi<GetSeasonResponse, GetSeasonParameter>(ActionUrl(), parameter);
|
||||
|
||||
public async Task<ApiResponse<SaveSeasonResponse>> SaveSeason(SaveSeasonParameter parameter)=>
|
||||
await _client.PostToApi<SaveSeasonResponse, SaveSeasonParameter>(ActionUrl(), parameter);
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using EstusShots.Client;
|
||||
using EstusShots.Gtk.Dialogs;
|
||||
using Gdk;
|
||||
|
||||
45
EstusShots.Server/Controllers/BaseController.cs
Normal file
45
EstusShots.Server/Controllers/BaseController.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using EstusShots.Shared.Interfaces;
|
||||
using EstusShots.Shared.Models;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace EstusShots.Server.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// Base class for all API controllers.
|
||||
/// Contains shared methods and properties that get used by the generated code.
|
||||
/// </summary>
|
||||
public abstract class BaseController : ControllerBase
|
||||
{
|
||||
private readonly ILogger _logger;
|
||||
|
||||
protected BaseController(ILogger logger)
|
||||
{
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generic method to handle the boilerplate code when calling an api service.
|
||||
/// </summary>
|
||||
/// <param name="serviceCall">Function that calls an API service</param>
|
||||
/// <typeparam name="T">A response parameter that implements <see cref="IApiResponse"/></typeparam>
|
||||
/// <returns>An <see cref="ApiResponse{T}"/></returns>
|
||||
protected async Task<ApiResponse<T>> ServiceCall<T>(Func<Task<ApiResponse<T>>> serviceCall)
|
||||
where T : class, IApiResponse, new()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!ModelState.IsValid) _logger.LogError($"Model invalid");
|
||||
_logger.LogInformation($"Request received from client '{Request.HttpContext.Connection.RemoteIpAddress}'");
|
||||
return await serviceCall();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogError(e, "Exception Occured");
|
||||
return new ApiResponse<T>(new OperationResult(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
152
EstusShots.Server/Controllers/Controllers.cs
Normal file
152
EstusShots.Server/Controllers/Controllers.cs
Normal file
@@ -0,0 +1,152 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using EstusShots.Server.Services;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
using EstusShots.Shared.Interfaces.Controllers;
|
||||
|
||||
namespace EstusShots.Server.Controllers
|
||||
{
|
||||
[ApiController]
|
||||
[Route("/api/[controller]/[action]")]
|
||||
public class DrinksController : BaseController, IDrinksController
|
||||
{
|
||||
private readonly DrinksService _service;
|
||||
|
||||
public DrinksController(ILogger<DrinksController> logger, DrinksService service) : base(logger)
|
||||
{
|
||||
_service = service;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<GetDrinksResponse>> GetDrinks(GetDrinksParameter parameter)
|
||||
=> await ServiceCall(() => _service.GetDrinks(parameter));
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<GetDrinkDetailsResponse>> GetDrinkDetails(GetDrinkDetailsParameter parameter)
|
||||
=> await ServiceCall(() => _service.GetDrinkDetails(parameter));
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<SaveDrinkResponse>> SaveDrink(SaveDrinkParameter parameter)
|
||||
=> await ServiceCall(() => _service.SaveDrink(parameter));
|
||||
|
||||
}
|
||||
|
||||
[ApiController]
|
||||
[Route("/api/[controller]/[action]")]
|
||||
public class EnemiesController : BaseController, IEnemiesController
|
||||
{
|
||||
private readonly EnemiesService _service;
|
||||
|
||||
public EnemiesController(ILogger<EnemiesController> logger, EnemiesService service) : base(logger)
|
||||
{
|
||||
_service = service;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<GetEnemiesResponse>> GetEnemies(GetEnemiesParameter parameter)
|
||||
=> await ServiceCall(() => _service.GetEnemies(parameter));
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<GetEnemyResponse>> GetEnemy(GetEnemyParameter parameter)
|
||||
=> await ServiceCall(() => _service.GetEnemy(parameter));
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<SaveEnemyResponse>> SaveEnemy(SaveEnemyParameter parameter)
|
||||
=> await ServiceCall(() => _service.SaveEnemy(parameter));
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<DeleteEnemyResponse>> DeleteEnemy(DeleteEnemyParameter parameter)
|
||||
=> await ServiceCall(() => _service.DeleteEnemy(parameter));
|
||||
|
||||
}
|
||||
|
||||
[ApiController]
|
||||
[Route("/api/[controller]/[action]")]
|
||||
public class EpisodesController : BaseController, IEpisodesController
|
||||
{
|
||||
private readonly EpisodesService _service;
|
||||
|
||||
public EpisodesController(ILogger<EpisodesController> logger, EpisodesService service) : base(logger)
|
||||
{
|
||||
_service = service;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<GetEpisodesResponse>> GetEpisodes(GetEpisodesParameter parameter)
|
||||
=> await ServiceCall(() => _service.GetEpisodes(parameter));
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<GetEpisodeResponse>> GetEpisode(GetEpisodeParameter parameter)
|
||||
=> await ServiceCall(() => _service.GetEpisode(parameter));
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<SaveEpisodeResponse>> SaveEpisode(SaveEpisodeParameter parameter)
|
||||
=> await ServiceCall(() => _service.SaveEpisode(parameter));
|
||||
|
||||
}
|
||||
|
||||
[ApiController]
|
||||
[Route("/api/[controller]/[action]")]
|
||||
public class PlayersController : BaseController, IPlayersController
|
||||
{
|
||||
private readonly PlayersService _service;
|
||||
|
||||
public PlayersController(ILogger<PlayersController> logger, PlayersService service) : base(logger)
|
||||
{
|
||||
_service = service;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<GetPlayersResponse>> GetPlayers(GetPlayersParameter parameter)
|
||||
=> await ServiceCall(() => _service.GetPlayers(parameter));
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<GetPlayerDetailsResponse>> GetPlayerDetails(GetPlayerDetailsParameter parameter)
|
||||
=> await ServiceCall(() => _service.GetPlayerDetails(parameter));
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<SavePlayerResponse>> SavePlayer(SavePlayerParameter parameter)
|
||||
=> await ServiceCall(() => _service.SavePlayer(parameter));
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<DeletePlayerResponse>> DeletePlayer(DeletePlayerParameter parameter)
|
||||
=> await ServiceCall(() => _service.DeletePlayer(parameter));
|
||||
|
||||
}
|
||||
|
||||
[ApiController]
|
||||
[Route("/api/[controller]/[action]")]
|
||||
public class SeasonsController : BaseController, ISeasonsController
|
||||
{
|
||||
private readonly SeasonsService _service;
|
||||
|
||||
public SeasonsController(ILogger<SeasonsController> logger, SeasonsService service) : base(logger)
|
||||
{
|
||||
_service = service;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<GetSeasonsResponse>> GetSeasons(GetSeasonsParameter parameter)
|
||||
=> await ServiceCall(() => _service.GetSeasons(parameter));
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<GetSeasonResponse>> GetSeason(GetSeasonParameter parameter)
|
||||
=> await ServiceCall(() => _service.GetSeason(parameter));
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<SaveSeasonResponse>> SaveSeason(SaveSeasonParameter parameter)
|
||||
=> await ServiceCall(() => _service.SaveSeason(parameter));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
71
EstusShots.Server/Controllers/Controllers.tt
Normal file
71
EstusShots.Server/Controllers/Controllers.tt
Normal file
@@ -0,0 +1,71 @@
|
||||
<#@ template language="C#" #>
|
||||
<#@ output extension=".cs" #>
|
||||
<#@ assembly name="System.Core" #>
|
||||
<#@ assembly name="$(SolutionDir)EstusShots.Shared/bin/Debug/netcoreapp3.1/EstusShots.Shared.dll" #>
|
||||
<#@ import namespace="Shared.Interfaces" #>
|
||||
<#@ import namespace="System.Linq" #>
|
||||
<#
|
||||
var assembly = typeof(IApiParameter).Assembly;
|
||||
var types = assembly.GetTypes()
|
||||
.Where(t => t.Namespace?.StartsWith("EstusShots.Shared") == true)
|
||||
.ToArray();
|
||||
var controllers = types
|
||||
.Where(t => t.Namespace == "EstusShots.Shared.Interfaces.Controllers")
|
||||
.ToArray();
|
||||
#>
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using EstusShots.Server.Services;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
using EstusShots.Shared.Interfaces.Controllers;
|
||||
|
||||
namespace EstusShots.Server.Controllers
|
||||
{
|
||||
<#
|
||||
// The Controllers
|
||||
foreach (var iFace in controllers)
|
||||
{
|
||||
var controllerName = iFace.Name.Substring(1);
|
||||
var routeName = iFace.Name.Substring(1).Replace("Controller", "");
|
||||
#>
|
||||
[ApiController]
|
||||
[Route("/api/[controller]/[action]")]
|
||||
public class <#=controllerName#> : BaseController, <#=iFace.Name #>
|
||||
{
|
||||
private readonly <#=routeName#>Service _service;
|
||||
|
||||
public <#=controllerName#>(ILogger<<#=controllerName#>> logger, <#=routeName#>Service service) : base(logger)
|
||||
{
|
||||
_service = service;
|
||||
}
|
||||
|
||||
<#
|
||||
// The Interface Members
|
||||
foreach (var member in iFace.GetMembers())
|
||||
{
|
||||
var responseName = $"{member.Name}Response";
|
||||
var parameterName = $"{member.Name}Parameter";
|
||||
#>
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<<#=responseName#>>> <#=member.Name#>(<#=parameterName#> parameter)
|
||||
=> await ServiceCall(() => _service.<#=member.Name#>(parameter));
|
||||
|
||||
<#
|
||||
}
|
||||
#>
|
||||
}
|
||||
|
||||
<#
|
||||
}
|
||||
#>
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using EstusShots.Server.Services;
|
||||
using EstusShots.Shared.Interfaces;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace EstusShots.Server.Controllers
|
||||
{
|
||||
[ApiController]
|
||||
[Route("/api/[controller]/[action]")]
|
||||
public class DrinksController : ControllerBase, IDrinksController
|
||||
{
|
||||
private readonly ILogger _logger;
|
||||
private readonly DrinksService _service;
|
||||
|
||||
public DrinksController(ILogger<DrinksController> logger, DrinksService drinksService)
|
||||
{
|
||||
_logger = logger;
|
||||
_service = drinksService;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<GetDrinksResponse>> GetDrinks(GetDrinksParameter parameter)
|
||||
=> await ServiceCall(() => _service.GetDrinks(parameter));
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<GetDrinkDetailsResponse>> GetDrinkDetails(GetDrinkDetailsParameter parameter)
|
||||
=> await ServiceCall(() => _service.GetDrinkDetails(parameter));
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<SaveDrinkResponse>> SaveDrink(SaveDrinkParameter parameter)
|
||||
=> await ServiceCall(() => _service.SaveDrink(parameter));
|
||||
|
||||
private async Task<ApiResponse<T>> ServiceCall<T>(Func<Task<ApiResponse<T>>> serviceCall)
|
||||
where T : class, IApiResponse, new()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!ModelState.IsValid) _logger.LogError($"Model invalid");
|
||||
_logger.LogInformation(
|
||||
$"Request received from client '{Request.HttpContext.Connection.RemoteIpAddress}'");
|
||||
return await serviceCall();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogError(e, "Exception Occured");
|
||||
return new ApiResponse<T>(new OperationResult(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,58 +0,0 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using EstusShots.Server.Services;
|
||||
using EstusShots.Shared.Interfaces;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace EstusShots.Server.Controllers
|
||||
{
|
||||
[ApiController]
|
||||
[Route("/api/[controller]/[action]")]
|
||||
public class EnemiesController : ControllerBase, IEnemiesController
|
||||
{
|
||||
private readonly EnemiesService _service;
|
||||
private readonly ILogger _logger;
|
||||
|
||||
public EnemiesController(EnemiesService service, ILogger<EnemiesController> logger)
|
||||
{
|
||||
_service = service;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<GetEnemiesResponse>> GetEnemies(GetEnemiesParameter parameter)
|
||||
=> await ServiceCall(() => _service.GetEnemies(parameter));
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<GetEnemyResponse>> GetEnemy(GetEnemyParameter parameter)
|
||||
=> await ServiceCall(() => _service.GetEnemy(parameter));
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<SaveEnemyResponse>> SaveEnemy(SaveEnemyParameter parameter)
|
||||
=> await ServiceCall(() => _service.SaveEnemy(parameter));
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<DeleteEnemyResponse>> DeleteEnemy(DeleteEnemyParameter parameter)
|
||||
=> await ServiceCall(() => _service.DeleteEnemy(parameter));
|
||||
|
||||
private async Task<ApiResponse<T>> ServiceCall<T>(Func<Task<ApiResponse<T>>> serviceCall)
|
||||
where T : class, IApiResponse, new()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!ModelState.IsValid) _logger.LogError($"Model invalid");
|
||||
_logger.LogInformation(
|
||||
$"Request received from client '{Request.HttpContext.Connection.RemoteIpAddress}'");
|
||||
return await serviceCall();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogError(e, "Exception Occured");
|
||||
return new ApiResponse<T>(new OperationResult(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using EstusShots.Server.Services;
|
||||
using EstusShots.Shared.Interfaces;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace EstusShots.Server.Controllers
|
||||
{
|
||||
[ApiController]
|
||||
[Route("/api/[controller]/[action]")]
|
||||
public class EpisodesController : ControllerBase, IEpisodesController
|
||||
{
|
||||
private readonly ILogger _logger;
|
||||
private readonly EpisodesService _episodesService;
|
||||
|
||||
public EpisodesController(ILogger<EpisodesController> logger, EpisodesService episodesService)
|
||||
{
|
||||
_logger = logger;
|
||||
_episodesService = episodesService;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<GetEpisodesResponse>> GetEpisodes(GetEpisodesParameter parameter)
|
||||
{
|
||||
try
|
||||
{
|
||||
_logger.LogInformation($"Request received from client '{Request.HttpContext.Connection.RemoteIpAddress}'");
|
||||
return await _episodesService.GetEpisodes(parameter);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogError(e, "Exception Occured");
|
||||
return new ApiResponse<GetEpisodesResponse>(new OperationResult(e));
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<GetEpisodeResponse>> GetEpisode(GetEpisodeParameter parameter)
|
||||
{
|
||||
try
|
||||
{
|
||||
_logger.LogInformation($"Request received from client '{Request.HttpContext.Connection.RemoteIpAddress}'");
|
||||
return await _episodesService.GetEpisode(parameter);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogError(e, "Exception Occured");
|
||||
return new ApiResponse<GetEpisodeResponse>(new OperationResult(e));
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<SaveEpisodeResponse>> SaveEpisode(SaveEpisodeParameter parameter)
|
||||
{
|
||||
try
|
||||
{
|
||||
_logger.LogInformation($"Request received from client '{Request.HttpContext.Connection.RemoteIpAddress}'");
|
||||
return await _episodesService.SaveEpisode(parameter);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogError(e, "Exception Occured");
|
||||
return new ApiResponse<SaveEpisodeResponse>(new OperationResult(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using EstusShots.Server.Services;
|
||||
using EstusShots.Shared.Interfaces;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace EstusShots.Server.Controllers
|
||||
{
|
||||
[ApiController]
|
||||
[Route("/api/[controller]/[action]")]
|
||||
public class PlayersController : ControllerBase, IPlayersController
|
||||
{
|
||||
private readonly ILogger _logger;
|
||||
private readonly PlayersService _service;
|
||||
|
||||
public PlayersController(ILogger<PlayersController> logger, PlayersService service)
|
||||
{
|
||||
_logger = logger;
|
||||
_service = service;
|
||||
}
|
||||
|
||||
private async Task<ApiResponse<T>> ServiceCall<T>(Func<Task<ApiResponse<T>>> serviceCall)
|
||||
where T : class, IApiResponse, new()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!ModelState.IsValid)
|
||||
{
|
||||
_logger.LogError($"Model invalid");
|
||||
|
||||
}
|
||||
_logger.LogInformation($"Request received from client '{Request.HttpContext.Connection.RemoteIpAddress}'");
|
||||
return await serviceCall();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogError(e, "Exception Occured");
|
||||
return new ApiResponse<T>(new OperationResult(e));
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<GetPlayersResponse>> GetPlayers(GetPlayersParameter parameter)
|
||||
=> await ServiceCall(() => _service.GetPlayers(parameter));
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<GetPlayerDetailsResponse>> GetPlayerDetails(GetPlayerDetailsParameter parameter)
|
||||
=> await ServiceCall(() => _service.GetPlayerDetails(parameter));
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<SavePlayerResponse>> SavePlayer(SavePlayerParameter parameter)
|
||||
=> await ServiceCall(() => _service.SavePlayer(parameter));
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<DeletePlayerResponse>> DeletePlayers(DeletePlayerParameter parameter)
|
||||
=> await ServiceCall(() => _service.DeletePlayers(parameter));
|
||||
}
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using EstusShots.Server.Services;
|
||||
using EstusShots.Shared.Interfaces;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace EstusShots.Server.Controllers
|
||||
{
|
||||
[ApiController]
|
||||
[Route("/api/[controller]/[action]")]
|
||||
public class SeasonsController : ControllerBase, ISeasonsController
|
||||
{
|
||||
private readonly ILogger _logger;
|
||||
private readonly SeasonsService _seasonsService;
|
||||
|
||||
|
||||
public SeasonsController(ILogger<SeasonsController> logger, SeasonsService seasonsService)
|
||||
{
|
||||
_seasonsService = seasonsService;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<GetSeasonsResponse>> GetSeasons(GetSeasonsParameter parameter)
|
||||
{
|
||||
try
|
||||
{
|
||||
_logger.LogInformation($"Request received from client '{Request.HttpContext.Connection.RemoteIpAddress}'");
|
||||
return await _seasonsService.GetSeasons(parameter);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogError(e, "Exception Occured");
|
||||
return new ApiResponse<GetSeasonsResponse>(new OperationResult(e));
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<GetSeasonResponse>> GetSeason(GetSeasonParameter parameter)
|
||||
{
|
||||
try
|
||||
{
|
||||
_logger.LogInformation($"Request received from client '{Request.HttpContext.Connection.RemoteIpAddress}'");
|
||||
return await _seasonsService.GetSeason(parameter);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogError(e, "Exception Occured");
|
||||
return new ApiResponse<GetSeasonResponse>(new OperationResult(e));
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ApiResponse<SaveSeasonResponse>> SaveSeason(SaveSeasonParameter parameter)
|
||||
{
|
||||
try
|
||||
{
|
||||
_logger.LogInformation($"Request received from client '{Request.HttpContext.Connection.RemoteIpAddress}'");
|
||||
return await _seasonsService.SaveSeason(parameter);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogError(e, "Exception Occured");
|
||||
return new ApiResponse<SaveSeasonResponse>(new OperationResult(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -26,4 +26,17 @@
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\EstusShots.Shared\EstusShots.Shared.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Update="Controllers\Controllers.tt">
|
||||
<Generator>TextTemplatingFileGenerator</Generator>
|
||||
<LastGenOutput>Controllers.cs</LastGenOutput>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Update="Controllers\Controllers.cs">
|
||||
<DependentUpon>Controllers.tt</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
||||
@@ -3,6 +3,7 @@ using System.Threading.Tasks;
|
||||
using AutoMapper;
|
||||
using EstusShots.Server.Models;
|
||||
using EstusShots.Shared.Interfaces;
|
||||
using EstusShots.Shared.Interfaces.Controllers;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
@@ -4,6 +4,7 @@ using System.Threading.Tasks;
|
||||
using AutoMapper;
|
||||
using EstusShots.Server.Models;
|
||||
using EstusShots.Shared.Interfaces;
|
||||
using EstusShots.Shared.Interfaces.Controllers;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
@@ -5,6 +5,7 @@ using System.Threading.Tasks;
|
||||
using AutoMapper;
|
||||
using EstusShots.Server.Models;
|
||||
using EstusShots.Shared.Interfaces;
|
||||
using EstusShots.Shared.Interfaces.Controllers;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
@@ -3,6 +3,7 @@ using System.Threading.Tasks;
|
||||
using AutoMapper;
|
||||
using EstusShots.Server.Models;
|
||||
using EstusShots.Shared.Interfaces;
|
||||
using EstusShots.Shared.Interfaces.Controllers;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
@@ -65,7 +66,7 @@ namespace EstusShots.Server.Services
|
||||
}
|
||||
}
|
||||
|
||||
public Task<ApiResponse<DeletePlayerResponse>> DeletePlayers(DeletePlayerParameter parameter)
|
||||
public Task<ApiResponse<DeletePlayerResponse>> DeletePlayer(DeletePlayerParameter parameter)
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ using System.Threading.Tasks;
|
||||
using AutoMapper;
|
||||
using EstusShots.Server.Models;
|
||||
using EstusShots.Shared.Interfaces;
|
||||
using EstusShots.Shared.Interfaces.Controllers;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
@@ -2,7 +2,7 @@ using System.Threading.Tasks;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
|
||||
namespace EstusShots.Shared.Interfaces
|
||||
namespace EstusShots.Shared.Interfaces.Controllers
|
||||
{
|
||||
public interface IDrinksController
|
||||
{
|
||||
@@ -2,7 +2,7 @@ using System.Threading.Tasks;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
|
||||
namespace EstusShots.Shared.Interfaces
|
||||
namespace EstusShots.Shared.Interfaces.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// Load and manipulate Enemy objects
|
||||
@@ -2,7 +2,7 @@ using System.Threading.Tasks;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
|
||||
namespace EstusShots.Shared.Interfaces
|
||||
namespace EstusShots.Shared.Interfaces.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// Access to episodes
|
||||
@@ -2,7 +2,7 @@ using System.Threading.Tasks;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
|
||||
namespace EstusShots.Shared.Interfaces
|
||||
namespace EstusShots.Shared.Interfaces.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// Load and manipulate player objects
|
||||
@@ -33,8 +33,8 @@ namespace EstusShots.Shared.Interfaces
|
||||
/// <summary>
|
||||
/// Deletes a player
|
||||
/// </summary>
|
||||
/// <param name="parameter">An <see cref="DeletePlayerParameter"/> instance</param>
|
||||
/// <returns>An ApiResponse instance of type <see cref="DeletePlayerResponse"/></returns>
|
||||
Task<ApiResponse<DeletePlayerResponse>> DeletePlayers(DeletePlayerParameter parameter);
|
||||
/// <param name="parameter">An <see cref="DeletePlayersParameter"/> instance</param>
|
||||
/// <returns>An ApiResponse instance of type <see cref="DeletePlayersResponse"/></returns>
|
||||
Task<ApiResponse<DeletePlayerResponse>> DeletePlayer(DeletePlayerParameter parameter);
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@ using System.Threading.Tasks;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
|
||||
namespace EstusShots.Shared.Interfaces
|
||||
namespace EstusShots.Shared.Interfaces.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// Access many seasons with one request
|
||||
Reference in New Issue
Block a user