Add code generation.

Replaces the client and server controller implementations with generated code from the shared project.
This commit is contained in:
2020-03-13 20:16:53 +01:00
parent 7bd44091cf
commit 42bca48742
29 changed files with 542 additions and 499 deletions

View File

@@ -0,0 +1,30 @@
using System.Threading.Tasks;
using EstusShots.Shared.Models;
using EstusShots.Shared.Models.Parameters;
namespace EstusShots.Shared.Interfaces.Controllers
{
public interface IDrinksController
{
/// <summary>
/// Load all drinks from the database
/// </summary>
/// <param name="parameter">An <see cref="GetDrinksParameter"/> instance</param>
/// <returns>An ApiResponse instance of type <see cref="GetDrinksResponse"/></returns>
Task<ApiResponse<GetDrinksResponse>> GetDrinks(GetDrinksParameter parameter);
/// <summary>
/// Load detailed information on a single drink
/// </summary>
/// <param name="parameter">An <see cref="GetDrinkDetailsParameter"/> instance</param>
/// <returns>An ApiResponse instance of type <see cref="GetDrinkDetailsResponse"/></returns>
Task<ApiResponse<GetDrinkDetailsResponse>> GetDrinkDetails(GetDrinkDetailsParameter parameter);
/// <summary>
/// Creates or Updates a drink object
/// </summary>
/// <param name="parameter">An <see cref="SaveDrinkParameter"/> instance</param>
/// <returns>An ApiResponse instance of type <see cref="SaveDrinkResponse"/></returns>
Task<ApiResponse<SaveDrinkResponse>> SaveDrink(SaveDrinkParameter parameter);
}
}

View File

@@ -0,0 +1,40 @@
using System.Threading.Tasks;
using EstusShots.Shared.Models;
using EstusShots.Shared.Models.Parameters;
namespace EstusShots.Shared.Interfaces.Controllers
{
/// <summary>
/// Load and manipulate Enemy objects
/// </summary>
public interface IEnemiesController
{
/// <summary>
/// Load all enemies or enemies for a specific season
/// </summary>
/// <param name="parameter">An <see cref="GetEnemiesParameter"/> instance</param>
/// <returns>An ApiResponse instance of type <see cref="GetEnemiesResponse"/></returns>
Task<ApiResponse<GetEnemiesResponse>> GetEnemies(GetEnemiesParameter parameter);
/// <summary>
/// Load detailed information on a single enemy
/// </summary>
/// <param name="parameter">An <see cref="GetEnemyParameter"/> instance</param>
/// <returns>An ApiResponse instance of type <see cref="GetEnemyResponse"/></returns>
Task<ApiResponse<GetEnemyResponse>> GetEnemy(GetEnemyParameter parameter);
/// <summary>
/// Creates or updates an enemy object
/// </summary>
/// <param name="parameter">An <see cref="SaveEnemyParameter"/> instance</param>
/// <returns>An ApiResponse instance of type <see cref="SaveEnemyResponse"/></returns>
Task<ApiResponse<SaveEnemyResponse>> SaveEnemy(SaveEnemyParameter parameter);
/// <summary>
/// Deletes an enemy object
/// </summary>
/// <param name="parameter">An <see cref="DeleteEnemyParameter"/> instance</param>
/// <returns>An ApiResponse instance of type <see cref="DeleteEnemyResponse"/></returns>
Task<ApiResponse<DeleteEnemyResponse>> DeleteEnemy(DeleteEnemyParameter parameter);
}
}

View File

@@ -0,0 +1,33 @@
using System.Threading.Tasks;
using EstusShots.Shared.Models;
using EstusShots.Shared.Models.Parameters;
namespace EstusShots.Shared.Interfaces.Controllers
{
/// <summary>
/// Access to episodes
/// </summary>
public interface IEpisodesController
{
/// <summary>
/// Load all episodes for a season
/// </summary>
/// <param name="parameter">The parameter object</param>
/// <returns>The GetEpisodes response object</returns>
Task<ApiResponse<GetEpisodesResponse>> GetEpisodes(GetEpisodesParameter parameter);
/// <summary>
/// Load a single episode
/// </summary>
/// <param name="parameter">Parameter object for loading a single episode</param>
/// <returns>The GetEpisode response object</returns>
Task<ApiResponse<GetEpisodeResponse>> GetEpisode(GetEpisodeParameter parameter);
/// <summary>
/// Creates or updates an episode object
/// </summary>
/// <param name="parameter">The parameter object</param>
/// <returns>The response object</returns>
Task<ApiResponse<SaveEpisodeResponse>> SaveEpisode(SaveEpisodeParameter parameter);
}
}

View File

@@ -0,0 +1,40 @@
using System.Threading.Tasks;
using EstusShots.Shared.Models;
using EstusShots.Shared.Models.Parameters;
namespace EstusShots.Shared.Interfaces.Controllers
{
/// <summary>
/// Load and manipulate player objects
/// </summary>
public interface IPlayersController
{
/// <summary>
/// Loads a list of all players in the database
/// </summary>
/// <param name="parameter">An <see cref="GetPlayersParameter"/> instance</param>
/// <returns>An ApiResponse instance of type <see cref="GetPlayersResponse"/></returns>
Task<ApiResponse<GetPlayersResponse>> GetPlayers(GetPlayersParameter parameter);
/// <summary>
/// Loads detailed information on a single player
/// </summary>
/// <param name="parameter">An <see cref="GetPlayerDetailsParameter"/> instance</param>
/// <returns>An ApiResponse instance of type <see cref="GetPlayerDetailsResponse"/></returns>
Task<ApiResponse<GetPlayerDetailsResponse>> GetPlayerDetails(GetPlayerDetailsParameter parameter);
/// <summary>
/// Creates or updates a player object
/// </summary>
/// <param name="parameter">An <see cref="SavePlayerParameter"/> instance</param>
/// <returns>An ApiResponse instance of type <see cref="SavePlayerResponse"/></returns>
Task<ApiResponse<SavePlayerResponse>> SavePlayer(SavePlayerParameter parameter);
/// <summary>
/// Deletes a player
/// </summary>
/// <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);
}
}

View File

@@ -0,0 +1,23 @@
using System.Threading.Tasks;
using EstusShots.Shared.Models;
using EstusShots.Shared.Models.Parameters;
namespace EstusShots.Shared.Interfaces.Controllers
{
/// <summary>
/// Access many seasons with one request
/// </summary>
public interface ISeasonsController
{
/// <summary>
/// Get a list of all seasons in the system
/// </summary>
/// <param name="parameter"></param>
/// <returns></returns>
Task<ApiResponse<GetSeasonsResponse>> GetSeasons(GetSeasonsParameter parameter);
Task<ApiResponse<GetSeasonResponse>> GetSeason(GetSeasonParameter parameter);
Task<ApiResponse<SaveSeasonResponse>> SaveSeason(SaveSeasonParameter parameter);
}
}