Merge pull request 'SES-154 Endpoint zmiany statusu sklepikarza' (#80) from SES-154 into dev
Reviewed-on: #80
This commit is contained in:
commit
32d645ea19
29319
SessionCompanion/SessionCompanion.Database/Migrations/20210120183221_shopkeepers-update.Designer.cs
generated
Normal file
29319
SessionCompanion/SessionCompanion.Database/Migrations/20210120183221_shopkeepers-update.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,41 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
namespace SessionCompanion.Database.Migrations
|
||||
{
|
||||
public partial class shopkeepersupdate : Migration
|
||||
{
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.UpdateData(
|
||||
table: "Shopkeepers",
|
||||
keyColumn: "Id",
|
||||
keyValue: 3,
|
||||
column: "IsAvailable",
|
||||
value: false);
|
||||
|
||||
migrationBuilder.UpdateData(
|
||||
table: "Shopkeepers",
|
||||
keyColumn: "Id",
|
||||
keyValue: 5,
|
||||
column: "IsAvailable",
|
||||
value: false);
|
||||
}
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.UpdateData(
|
||||
table: "Shopkeepers",
|
||||
keyColumn: "Id",
|
||||
keyValue: 3,
|
||||
column: "IsAvailable",
|
||||
value: true);
|
||||
|
||||
migrationBuilder.UpdateData(
|
||||
table: "Shopkeepers",
|
||||
keyColumn: "Id",
|
||||
keyValue: 5,
|
||||
column: "IsAvailable",
|
||||
value: true);
|
||||
}
|
||||
}
|
||||
}
|
@ -21554,7 +21554,7 @@ namespace SessionCompanion.Database.Migrations
|
||||
new
|
||||
{
|
||||
Id = 3,
|
||||
IsAvailable = true,
|
||||
IsAvailable = false,
|
||||
Name = "Bohr Twarda Zbroja"
|
||||
},
|
||||
new
|
||||
@ -21566,7 +21566,7 @@ namespace SessionCompanion.Database.Migrations
|
||||
new
|
||||
{
|
||||
Id = 5,
|
||||
IsAvailable = true,
|
||||
IsAvailable = false,
|
||||
Name = "Zielony spod Gruszkowego Lasu"
|
||||
},
|
||||
new
|
||||
|
@ -863,7 +863,7 @@ namespace SessionCompanion.Database
|
||||
{
|
||||
Id = 3,
|
||||
Name = "Bohr Twarda Zbroja",
|
||||
IsAvailable = true
|
||||
IsAvailable = false
|
||||
},
|
||||
new Shopkeeper
|
||||
{
|
||||
@ -875,7 +875,7 @@ namespace SessionCompanion.Database
|
||||
{
|
||||
Id = 5,
|
||||
Name = "Zielony spod Gruszkowego Lasu",
|
||||
IsAvailable = true
|
||||
IsAvailable = false
|
||||
},
|
||||
new Shopkeeper
|
||||
{
|
||||
|
@ -14,5 +14,6 @@ namespace SessionCompanion.Services.Interfaces
|
||||
public interface IShopkeeperService : IServiceBase<ShopkeeperViewModel, Shopkeeper>
|
||||
{
|
||||
Task<Either<SuccessResponse, ErrorResponse>> CreateNewShopKeeper(ShopkeeperWithItemsViewModel shopkeeperWithItemsViewModel);
|
||||
Task<Either<SuccessResponse, ErrorResponse>> ChangeShopkeeperStatus(int shopkeeperId, bool availability);
|
||||
}
|
||||
}
|
||||
|
@ -19,6 +19,42 @@ namespace SessionCompanion.Services.Services
|
||||
{
|
||||
public ShopkeeperService(IMapper mapper, IRepository<Shopkeeper> repository) : base(mapper, repository)
|
||||
{ }
|
||||
/// <summary>
|
||||
/// Funkcja zmienia status sprzedawcy
|
||||
/// </summary>
|
||||
/// <param name="shopkeeperId"></param>
|
||||
/// <param name="availability"></param>
|
||||
/// <returns>SuccesResponse/ErrorResponse</returns>
|
||||
public async Task<Either<SuccessResponse, ErrorResponse>> ChangeShopkeeperStatus(int shopkeeperId, bool availability)
|
||||
{
|
||||
try
|
||||
{
|
||||
var shopkeepers = await Repository.Get().ToListAsync();
|
||||
if (availability)
|
||||
{
|
||||
foreach (var shopkeeper in shopkeepers)
|
||||
{
|
||||
if (shopkeeper.Id.Equals(shopkeeperId))
|
||||
shopkeeper.IsAvailable = true;
|
||||
else
|
||||
shopkeeper.IsAvailable = false;
|
||||
await Repository.Update(shopkeeper);
|
||||
}
|
||||
await Repository.Save();
|
||||
return new SuccessResponse("Shopkeepers updated") { SuccessCode = 200 };
|
||||
}
|
||||
|
||||
var newActiveShopkeeper = shopkeepers.Where(c => c.Id.Equals(shopkeeperId)).Single();
|
||||
newActiveShopkeeper.IsAvailable = false;
|
||||
await Repository.Update(newActiveShopkeeper);
|
||||
await Repository.Save();
|
||||
return new SuccessResponse("Shopkeepers updated") { SuccessCode = 200 };
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return new ErrorResponse() { StatusCode = 500, Message = e.Message };
|
||||
}
|
||||
}
|
||||
public async Task<Either<SuccessResponse, ErrorResponse>> CreateNewShopKeeper(ShopkeeperWithItemsViewModel shopkeeperWithItemsViewModel)
|
||||
{
|
||||
try
|
||||
|
@ -12,6 +12,7 @@ namespace SessionCompanion.Controllers
|
||||
using SessionCompanion.ViewModels.CharacterArmorViewModels;
|
||||
using SessionCompanion.ViewModels.CharacterOtherEquipmentViewModels;
|
||||
using SessionCompanion.ViewModels.CharacterWeaponViewModels;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
[Route("api/character/equipment")]
|
||||
[ApiController]
|
||||
@ -38,7 +39,7 @@ namespace SessionCompanion.Controllers
|
||||
/// <param name="characterId"> Id postaci </param>
|
||||
/// <returns> Lista pozostałego ekwipunku lub błąd </returns>
|
||||
[HttpGet("getOtherEquipment")]
|
||||
public async Task<Either<List<CharacterOtherEquipmentWithDetailsViewModel>, ErrorResponse>> GetCharacterOtherEquipment(int characterId)
|
||||
public async Task<Either<List<CharacterOtherEquipmentWithDetailsViewModel>, ErrorResponse>> GetCharacterOtherEquipment([Required] int characterId)
|
||||
{
|
||||
return await this._characterOtherEquipmentService.GetCharacterOtherEquipmentList(characterId);
|
||||
}
|
||||
@ -49,7 +50,7 @@ namespace SessionCompanion.Controllers
|
||||
/// <param name="characterId"> Id postaci </param>
|
||||
/// <returns> Lista pozostałego ekwipunku lub błąd </returns>
|
||||
[HttpGet("getArmors")]
|
||||
public async Task<Either<List<CharacterArmorViewModelDetails>, ErrorResponse>> GetCharacterArmors(int characterId)
|
||||
public async Task<Either<List<CharacterArmorViewModelDetails>, ErrorResponse>> GetCharacterArmors([Required] int characterId)
|
||||
{
|
||||
return await this._characterArmorService.GetCharacterArmorsTaskList(characterId);
|
||||
}
|
||||
@ -60,7 +61,7 @@ namespace SessionCompanion.Controllers
|
||||
/// <param name="characterId"> Id postaci </param>
|
||||
/// <returns> Lista broni lub błąd </returns>
|
||||
[HttpGet("getWeapons")]
|
||||
public async Task<Either<List<CharacterWeaponWithWeaponDetailsViewModel>, ErrorResponse>> GetCharacterWeapons(int characterId)
|
||||
public async Task<Either<List<CharacterWeaponWithWeaponDetailsViewModel>, ErrorResponse>> GetCharacterWeapons([Required] int characterId)
|
||||
{
|
||||
return await this._characterWeaponService.GetCharacterWeaponsList(characterId);
|
||||
}
|
||||
@ -72,7 +73,7 @@ namespace SessionCompanion.Controllers
|
||||
/// <param name="newArmorId"> Id nowej zbroi </param>
|
||||
/// <returns>SuccessResponse/ErrorResponse</returns>
|
||||
[HttpPut("changeArmor")]
|
||||
public async Task<Either<SuccessResponse, ErrorResponse>> ChangeCharacterArmor(int characterId, int newArmorId)
|
||||
public async Task<Either<SuccessResponse, ErrorResponse>> ChangeCharacterArmor([Required] int characterId, [Required] int newArmorId)
|
||||
{
|
||||
var response = await _characterArmorService.ChangeCharacterArmor(characterId, newArmorId);
|
||||
return response;
|
||||
@ -84,7 +85,7 @@ namespace SessionCompanion.Controllers
|
||||
/// <param name="characterArmorViewModel"> View model z odpowiednimi parameterami </param>
|
||||
/// <returns>SuccessResponse/ErrorResponse</returns>
|
||||
[HttpPut("addArmor")]
|
||||
public async Task<Either<SuccessResponse, ErrorResponse>> AddCharacterArmor(CharacterArmorViewModel characterArmorViewModel)
|
||||
public async Task<Either<SuccessResponse, ErrorResponse>> AddCharacterArmor([Required] CharacterArmorViewModel characterArmorViewModel)
|
||||
{
|
||||
if (!ModelState.IsValid)
|
||||
return new ErrorResponse() { StatusCode = 500, Message = "Invalid model!" };
|
||||
@ -106,7 +107,7 @@ namespace SessionCompanion.Controllers
|
||||
/// <param name="characterWeaponViewModel"> View model z odpowiednimi parameterami </param>
|
||||
/// <returns>SuccessResponse/ErrorResponse</returns>
|
||||
[HttpPut("addWeapon")]
|
||||
public async Task<Either<SuccessResponse, ErrorResponse>> AddCharacterWeapon(CharacterWeaponViewModel characterWeaponViewModel)
|
||||
public async Task<Either<SuccessResponse, ErrorResponse>> AddCharacterWeapon([Required] CharacterWeaponViewModel characterWeaponViewModel)
|
||||
{
|
||||
if (!ModelState.IsValid)
|
||||
return new ErrorResponse() { StatusCode = 500, Message = "Invalid model!" };
|
||||
@ -127,7 +128,7 @@ namespace SessionCompanion.Controllers
|
||||
/// <param name=characterWeaponViewModel> View model z odpowiednimi parameterami </param>
|
||||
/// <returns>SuccessResponse/ErrorResponse</returns>
|
||||
[HttpPut("changeWeapon")]
|
||||
public async Task<Either<SuccessResponse, ErrorResponse>> ChangeCharacterWeapon(CharacterWeaponViewModel characterWeaponViewModel)
|
||||
public async Task<Either<SuccessResponse, ErrorResponse>> ChangeCharacterWeapon([Required] CharacterWeaponViewModel characterWeaponViewModel)
|
||||
{
|
||||
if (!ModelState.IsValid)
|
||||
return new ErrorResponse() { StatusCode = 500, Message = "Invalid model!" };
|
||||
|
@ -31,12 +31,16 @@ namespace SessionCompanion.Controllers
|
||||
return _service.Get().ToList();
|
||||
}
|
||||
|
||||
[HttpPost("createNewShopkeeper")]
|
||||
public async Task<Either<SuccessResponse, ErrorResponse>> CreateNewShopKeeper([Required] ShopkeeperWithItemsViewModel shopkeeperWithItemsViewModel)
|
||||
/// <summary>
|
||||
/// Endpoint służacy do zmiany statusu sklepikarza
|
||||
/// </summary>
|
||||
/// <param name="shopkeeperId"></param>
|
||||
/// <param name="availability"></param>
|
||||
/// <returns>SuccesResponse/ErrorResponse</returns>
|
||||
[HttpPut("changeShopkeeperStatus")]
|
||||
public async Task<Either<SuccessResponse, ErrorResponse>> ChangeShopkeeperStatus([Required] int shopkeeperId, [Required] bool availability)
|
||||
{
|
||||
if (!ModelState.IsValid)
|
||||
return new ErrorResponse() { StatusCode = 500, Message = "Model is invalid" };
|
||||
return await _service.CreateNewShopKeeper(shopkeeperWithItemsViewModel);
|
||||
return await _service.ChangeShopkeeperStatus(shopkeeperId, availability);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user