Enemy classes and controllers
This commit is contained in:
20
EstusShots.Shared/Dto/Enemy.cs
Normal file
20
EstusShots.Shared/Dto/Enemy.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace EstusShots.Shared.Dto
|
||||
{
|
||||
public class Enemy
|
||||
{
|
||||
public Guid EnemyId { get; set; }
|
||||
|
||||
public string Name { get; set; }
|
||||
|
||||
public bool Boss { get; set; }
|
||||
|
||||
public bool Defeated { get; set; }
|
||||
|
||||
public Guid? SeasonId { get; set; }
|
||||
|
||||
public Season Season { get; set; }
|
||||
}
|
||||
}
|
||||
40
EstusShots.Shared/Interfaces/IEnemiesController.cs
Normal file
40
EstusShots.Shared/Interfaces/IEnemiesController.cs
Normal file
@@ -0,0 +1,40 @@
|
||||
using System.Threading.Tasks;
|
||||
using EstusShots.Shared.Models;
|
||||
using EstusShots.Shared.Models.Parameters;
|
||||
|
||||
namespace EstusShots.Shared.Interfaces
|
||||
{
|
||||
/// <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);
|
||||
}
|
||||
}
|
||||
174
EstusShots.Shared/Models/Parameters/EnemyParameters.cs
Normal file
174
EstusShots.Shared/Models/Parameters/EnemyParameters.cs
Normal file
@@ -0,0 +1,174 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using EstusShots.Shared.Dto;
|
||||
using EstusShots.Shared.Interfaces;
|
||||
|
||||
namespace EstusShots.Shared.Models.Parameters
|
||||
{
|
||||
# region GetEnemies
|
||||
|
||||
/// <summary>
|
||||
/// Parameter class for the GetEnemies API controller.
|
||||
/// </summary>
|
||||
public class GetEnemiesParameter : IApiParameter
|
||||
{
|
||||
/// <summary>
|
||||
/// (Optional) Load enemies for this season
|
||||
/// </summary>
|
||||
public Guid SeasonId { get; set; }
|
||||
|
||||
public GetEnemiesParameter(Guid seasonId)
|
||||
{
|
||||
SeasonId = seasonId;
|
||||
}
|
||||
|
||||
public GetEnemiesParameter()
|
||||
{
|
||||
SeasonId = Guid.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Parameter class returned from the GetEnemies API controller.
|
||||
/// </summary>
|
||||
public class GetEnemiesResponse : IApiResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// The loaded enemies
|
||||
/// </summary>
|
||||
public List<Enemy> Enemies { get; set; }
|
||||
|
||||
public GetEnemiesResponse(List<Enemy> enemies)
|
||||
{
|
||||
Enemies = enemies;
|
||||
}
|
||||
|
||||
public GetEnemiesResponse()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
# endregion
|
||||
|
||||
# region GetEnemy
|
||||
|
||||
/// <summary>
|
||||
/// Parameter class for the GetEnemy API controller.
|
||||
/// </summary>
|
||||
public class GetEnemyParameter : IApiParameter
|
||||
{
|
||||
/// <summary>
|
||||
/// ID of the enemy to load
|
||||
/// </summary>
|
||||
public Guid EnemyId { get; set; }
|
||||
|
||||
public GetEnemyParameter(Guid enemyId)
|
||||
{
|
||||
EnemyId = enemyId;
|
||||
}
|
||||
|
||||
public GetEnemyParameter()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Parameter class returned from the GetEnemy API controller.
|
||||
/// </summary>
|
||||
public class GetEnemyResponse : IApiResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// A detailed Enemy object
|
||||
/// </summary>
|
||||
public Enemy Enemy { get; set; }
|
||||
|
||||
public GetEnemyResponse(Enemy enemy)
|
||||
{
|
||||
Enemy = enemy;
|
||||
}
|
||||
|
||||
public GetEnemyResponse()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
# endregion
|
||||
|
||||
# region SaveEnemy
|
||||
|
||||
/// <summary>
|
||||
/// Parameter class for the SaveEnemy API controller.
|
||||
/// </summary>
|
||||
public class SaveEnemyParameter : IApiParameter
|
||||
{
|
||||
/// <summary>
|
||||
/// The enemy object to create or update
|
||||
/// </summary>
|
||||
public Enemy Enemy { get; set; }
|
||||
|
||||
public SaveEnemyParameter(Enemy enemy)
|
||||
{
|
||||
Enemy = enemy;
|
||||
}
|
||||
|
||||
public SaveEnemyParameter()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Parameter class returned from the SaveEnemy API controller.
|
||||
/// </summary>
|
||||
public class SaveEnemyResponse : IApiResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// ID of the created or updated enemy object
|
||||
/// </summary>
|
||||
public Guid EnemyId { get; set; }
|
||||
|
||||
public SaveEnemyResponse(Guid enemyId)
|
||||
{
|
||||
EnemyId = enemyId;
|
||||
}
|
||||
|
||||
public SaveEnemyResponse()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
# endregion
|
||||
|
||||
# region DeleteEnemy
|
||||
|
||||
/// <summary>
|
||||
/// Parameter class for the DeleteEnemy API controller.
|
||||
/// </summary>
|
||||
public class DeleteEnemyParameter : IApiParameter
|
||||
{
|
||||
/// <summary>
|
||||
/// ID of the enemy to delete
|
||||
/// </summary>
|
||||
public Guid EnemyId { get; set; }
|
||||
|
||||
public DeleteEnemyParameter(Guid enemyId)
|
||||
{
|
||||
EnemyId = enemyId;
|
||||
}
|
||||
|
||||
public DeleteEnemyParameter()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Parameter class returned from the DeleteEnemy API controller.
|
||||
/// </summary>
|
||||
public class DeleteEnemyResponse : IApiResponse
|
||||
{
|
||||
public DeleteEnemyResponse()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
# endregion
|
||||
}
|
||||
Reference in New Issue
Block a user