mirror of
https://github.com/TomasiDeveloping/PlayerManagement.git
synced 2026-04-16 17:22:21 +00:00
- Implemented pagination for all tables to improve usability and navigation.
- Expanded the zombie siege table to display all waves survived by the entire alliance
This commit is contained in:
parent
bb2dee0cf8
commit
19182e7b36
@ -34,17 +34,16 @@ namespace Api.Controllers.v1
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("Alliance/{allianceId:guid}")]
|
[HttpGet("Alliance/{allianceId:guid}")]
|
||||||
public async Task<ActionResult<List<CustomEventDto>>> GetAllianceCustomEvents(Guid allianceId,
|
public async Task<ActionResult<List<CustomEventDto>>> GetAllianceCustomEvents(Guid allianceId, CancellationToken cancellationToken, [FromQuery] int pageNumber = 1, [FromQuery] int pageSize = 10)
|
||||||
[FromQuery] int take, CancellationToken cancellationToken)
|
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var allianceCustomEventsResult =
|
var allianceCustomEventsResult =
|
||||||
await customEventRepository.GetAllianceCustomEventsAsync(allianceId, take, cancellationToken);
|
await customEventRepository.GetAllianceCustomEventsAsync(allianceId, pageNumber, pageSize, cancellationToken);
|
||||||
|
|
||||||
if (allianceCustomEventsResult.IsFailure) return BadRequest(allianceCustomEventsResult.Error);
|
if (allianceCustomEventsResult.IsFailure) return BadRequest(allianceCustomEventsResult.Error);
|
||||||
|
|
||||||
return allianceCustomEventsResult.Value.Count > 0
|
return allianceCustomEventsResult.Value.Data.Count > 0
|
||||||
? Ok(allianceCustomEventsResult.Value)
|
? Ok(allianceCustomEventsResult.Value)
|
||||||
: NoContent();
|
: NoContent();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,17 +34,16 @@ namespace Api.Controllers.v1
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("Alliance/{allianceId:guid}")]
|
[HttpGet("Alliance/{allianceId:guid}")]
|
||||||
public async Task<ActionResult<List<DesertStormDto>>> GetAllianceDesertStorms(Guid allianceId,
|
public async Task<ActionResult<List<DesertStormDto>>> GetAllianceDesertStorms(Guid allianceId, CancellationToken cancellationToken, [FromQuery] int pageNumber = 1, [FromQuery] int pageSize = 10)
|
||||||
[FromQuery] int take, CancellationToken cancellationToken)
|
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var allianceDesertStormsResult =
|
var allianceDesertStormsResult =
|
||||||
await desertStormRepository.GetAllianceDesertStormsAsync(allianceId, take, cancellationToken);
|
await desertStormRepository.GetAllianceDesertStormsAsync(allianceId, pageNumber, pageSize, cancellationToken);
|
||||||
|
|
||||||
if (allianceDesertStormsResult.IsFailure) return BadRequest(allianceDesertStormsResult.Error);
|
if (allianceDesertStormsResult.IsFailure) return BadRequest(allianceDesertStormsResult.Error);
|
||||||
|
|
||||||
return allianceDesertStormsResult.Value.Count > 0
|
return allianceDesertStormsResult.Value.Data.Count > 0
|
||||||
? Ok(allianceDesertStormsResult.Value)
|
? Ok(allianceDesertStormsResult.Value)
|
||||||
: NoContent();
|
: NoContent();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,17 +34,16 @@ namespace Api.Controllers.v1
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("Alliance/{allianceId:guid}")]
|
[HttpGet("Alliance/{allianceId:guid}")]
|
||||||
public async Task<ActionResult<List<MarshalGuardDto>>> GetAllianceMarshalGuards(Guid allianceId, [FromQuery] int take,
|
public async Task<ActionResult<List<MarshalGuardDto>>> GetAllianceMarshalGuards(Guid allianceId, CancellationToken cancellationToken, [FromQuery] int pageNumber = 1, [FromQuery] int pageSize = 10)
|
||||||
CancellationToken cancellationToken)
|
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var allianceMarshalGuardsResult =
|
var allianceMarshalGuardsResult =
|
||||||
await marshalGuardRepository.GetAllianceMarshalGuardsAsync(allianceId, take, cancellationToken);
|
await marshalGuardRepository.GetAllianceMarshalGuardsAsync(allianceId, pageNumber, pageSize, cancellationToken);
|
||||||
|
|
||||||
if (allianceMarshalGuardsResult.IsFailure) return BadRequest(allianceMarshalGuardsResult.Error);
|
if (allianceMarshalGuardsResult.IsFailure) return BadRequest(allianceMarshalGuardsResult.Error);
|
||||||
|
|
||||||
return allianceMarshalGuardsResult.Value.Count > 0
|
return allianceMarshalGuardsResult.Value.Data.Count > 0
|
||||||
? Ok(allianceMarshalGuardsResult.Value)
|
? Ok(allianceMarshalGuardsResult.Value)
|
||||||
: NoContent();
|
: NoContent();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using Application.DataTransferObjects.ExcelImport;
|
using Application.DataTransferObjects;
|
||||||
|
using Application.DataTransferObjects.ExcelImport;
|
||||||
using Application.DataTransferObjects.Player;
|
using Application.DataTransferObjects.Player;
|
||||||
using Application.Errors;
|
using Application.Errors;
|
||||||
using Application.Interfaces;
|
using Application.Interfaces;
|
||||||
@ -55,16 +56,16 @@ namespace Api.Controllers.v1
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("Alliance/dismiss/{allianceId:guid}")]
|
[HttpGet("Alliance/dismiss/{allianceId:guid}")]
|
||||||
public async Task<ActionResult<List<PlayerDto>>> GetAllianceDismissPlayers(Guid allianceId, CancellationToken cancellationToken)
|
public async Task<ActionResult<PagedResponseDto<PlayerDto>>> GetAllianceDismissPlayers(Guid allianceId, CancellationToken cancellationToken, [FromQuery] int pageNumber = 1, [FromQuery] int pageSize = 10)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var allianceDismissPlayersResult =
|
var allianceDismissPlayersResult =
|
||||||
await playerRepository.GetAllianceDismissPlayersAsync(allianceId, cancellationToken);
|
await playerRepository.GetAllianceDismissPlayersAsync(allianceId, pageNumber, pageSize, cancellationToken);
|
||||||
|
|
||||||
if (allianceDismissPlayersResult.IsFailure) return BadRequest(allianceDismissPlayersResult.Error);
|
if (allianceDismissPlayersResult.IsFailure) return BadRequest(allianceDismissPlayersResult.Error);
|
||||||
|
|
||||||
return allianceDismissPlayersResult.Value.Count > 0
|
return allianceDismissPlayersResult.Value.Data.Count > 0
|
||||||
? Ok(allianceDismissPlayersResult.Value)
|
? Ok(allianceDismissPlayersResult.Value)
|
||||||
: NoContent();
|
: NoContent();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using Application.DataTransferObjects.VsDuel;
|
using Application.DataTransferObjects;
|
||||||
|
using Application.DataTransferObjects.VsDuel;
|
||||||
using Application.Errors;
|
using Application.Errors;
|
||||||
using Application.Interfaces;
|
using Application.Interfaces;
|
||||||
using Asp.Versioning;
|
using Asp.Versioning;
|
||||||
@ -32,17 +33,16 @@ namespace Api.Controllers.v1
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("Alliance/{allianceId:guid}")]
|
[HttpGet("Alliance/{allianceId:guid}")]
|
||||||
public async Task<ActionResult<List<VsDuelDto>>> GetAllianceVsDuels(Guid allianceId, [FromQuery] int take,
|
public async Task<ActionResult<PagedResponseDto<VsDuelDto>>> GetAllianceVsDuels(Guid allianceId, CancellationToken cancellationToken, [FromQuery] int pageNumber = 1, [FromQuery] int pageSize = 10)
|
||||||
CancellationToken cancellationToken)
|
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var allianceVsDuelsResult =
|
var allianceVsDuelsResult =
|
||||||
await vsDuelRepository.GetAllianceVsDuelsAsync(allianceId, take, cancellationToken);
|
await vsDuelRepository.GetAllianceVsDuelsAsync(allianceId, pageNumber, pageSize, cancellationToken);
|
||||||
|
|
||||||
if (allianceVsDuelsResult.IsFailure) return BadRequest(allianceVsDuelsResult.Error);
|
if (allianceVsDuelsResult.IsFailure) return BadRequest(allianceVsDuelsResult.Error);
|
||||||
|
|
||||||
return allianceVsDuelsResult.Value.Count > 0
|
return allianceVsDuelsResult.Value.Data.Count > 0
|
||||||
? Ok(allianceVsDuelsResult.Value)
|
? Ok(allianceVsDuelsResult.Value)
|
||||||
: NoContent();
|
: NoContent();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using Application.DataTransferObjects.ZombieSiege;
|
using Application.DataTransferObjects;
|
||||||
|
using Application.DataTransferObjects.ZombieSiege;
|
||||||
using Application.Errors;
|
using Application.Errors;
|
||||||
using Application.Interfaces;
|
using Application.Interfaces;
|
||||||
using Asp.Versioning;
|
using Asp.Versioning;
|
||||||
@ -34,17 +35,17 @@ namespace Api.Controllers.v1
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("Alliance/{allianceId:guid}")]
|
[HttpGet("Alliance/{allianceId:guid}")]
|
||||||
public async Task<ActionResult<List<ZombieSiegeDto>>> GetAllianceZombieSieges(Guid allianceId, [FromQuery] int take,
|
public async Task<ActionResult<PagedResponseDto<ZombieSiegeDto>>> GetAllianceZombieSieges(Guid allianceId, CancellationToken cancellationToken, [FromQuery] int pageNumber = 1, [FromQuery] int pageSize = 10)
|
||||||
CancellationToken cancellationToken)
|
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var allianceZombieSiegesResult =
|
var allianceZombieSiegesResult =
|
||||||
await zombieSiegeRepository.GetAllianceZombieSiegesAsync(allianceId, take, cancellationToken);
|
await zombieSiegeRepository.GetAllianceZombieSiegesAsync(allianceId, pageNumber, pageSize,
|
||||||
|
cancellationToken);
|
||||||
|
|
||||||
if (allianceZombieSiegesResult.IsFailure) return BadRequest(allianceZombieSiegesResult.Error);
|
if (allianceZombieSiegesResult.IsFailure) return BadRequest(allianceZombieSiegesResult.Error);
|
||||||
|
|
||||||
return allianceZombieSiegesResult.Value.Count > 0
|
return allianceZombieSiegesResult.Value.TotalRecords > 0
|
||||||
? Ok(allianceZombieSiegesResult.Value)
|
? Ok(allianceZombieSiegesResult.Value)
|
||||||
: NoContent();
|
: NoContent();
|
||||||
}
|
}
|
||||||
|
|||||||
12
Application/DataTransferObjects/PagedResponseDto.cs
Normal file
12
Application/DataTransferObjects/PagedResponseDto.cs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
namespace Application.DataTransferObjects;
|
||||||
|
|
||||||
|
public class PagedResponseDto<T>
|
||||||
|
{
|
||||||
|
public int TotalRecords { get; set; }
|
||||||
|
|
||||||
|
public int PageSize { get; set; }
|
||||||
|
|
||||||
|
public int PageNumber { get; set; }
|
||||||
|
|
||||||
|
public List<T> Data { get; set; } = [];
|
||||||
|
}
|
||||||
@ -8,6 +8,8 @@ public class ZombieSiegeDto
|
|||||||
|
|
||||||
public int TotalLevel20Players { get; set; }
|
public int TotalLevel20Players { get; set; }
|
||||||
|
|
||||||
|
public int TotalWavesSurvived { get; set; }
|
||||||
|
|
||||||
public Guid AllianceId { get; set; }
|
public Guid AllianceId { get; set; }
|
||||||
|
|
||||||
public DateTime EventDate { get; set; }
|
public DateTime EventDate { get; set; }
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using Application.Classes;
|
using Application.Classes;
|
||||||
|
using Application.DataTransferObjects;
|
||||||
using Application.DataTransferObjects.CustomEvent;
|
using Application.DataTransferObjects.CustomEvent;
|
||||||
|
|
||||||
namespace Application.Interfaces;
|
namespace Application.Interfaces;
|
||||||
@ -9,7 +10,7 @@ public interface ICustomEventRepository
|
|||||||
|
|
||||||
Task<Result<CustomEventDetailDto>> GetCustomEventDetailAsync(Guid customEventId, CancellationToken cancellationToken);
|
Task<Result<CustomEventDetailDto>> GetCustomEventDetailAsync(Guid customEventId, CancellationToken cancellationToken);
|
||||||
|
|
||||||
Task<Result<List<CustomEventDto>>> GetAllianceCustomEventsAsync(Guid allianceId, int take, CancellationToken cancellationToken);
|
Task<Result<PagedResponseDto<CustomEventDto>>> GetAllianceCustomEventsAsync(Guid allianceId, int pageNumber, int pageSize, CancellationToken cancellationToken);
|
||||||
|
|
||||||
Task<Result<CustomEventDto>> CreateCustomEventAsync(CreateCustomEventDto createCustomEventDto, string createdBy,
|
Task<Result<CustomEventDto>> CreateCustomEventAsync(CreateCustomEventDto createCustomEventDto, string createdBy,
|
||||||
CancellationToken cancellationToken);
|
CancellationToken cancellationToken);
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using Application.Classes;
|
using Application.Classes;
|
||||||
|
using Application.DataTransferObjects;
|
||||||
using Application.DataTransferObjects.DesertStorm;
|
using Application.DataTransferObjects.DesertStorm;
|
||||||
|
|
||||||
namespace Application.Interfaces;
|
namespace Application.Interfaces;
|
||||||
@ -7,7 +8,7 @@ public interface IDesertStormRepository
|
|||||||
{
|
{
|
||||||
Task<Result<DesertStormDto>> GetDesertStormAsync(Guid desertStormId, CancellationToken cancellationToken);
|
Task<Result<DesertStormDto>> GetDesertStormAsync(Guid desertStormId, CancellationToken cancellationToken);
|
||||||
|
|
||||||
Task<Result<List<DesertStormDto>>> GetAllianceDesertStormsAsync(Guid allianceId, int take, CancellationToken cancellationToken);
|
Task<Result<PagedResponseDto<DesertStormDto>>> GetAllianceDesertStormsAsync(Guid allianceId, int pageNumber, int pageSize, CancellationToken cancellationToken);
|
||||||
|
|
||||||
Task<Result<DesertStormDetailDto>> GetDesertStormDetailAsync(Guid desertStormId, CancellationToken cancellationToken);
|
Task<Result<DesertStormDetailDto>> GetDesertStormDetailAsync(Guid desertStormId, CancellationToken cancellationToken);
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using Application.Classes;
|
using Application.Classes;
|
||||||
|
using Application.DataTransferObjects;
|
||||||
using Application.DataTransferObjects.MarshalGuard;
|
using Application.DataTransferObjects.MarshalGuard;
|
||||||
|
|
||||||
namespace Application.Interfaces;
|
namespace Application.Interfaces;
|
||||||
@ -9,7 +10,7 @@ public interface IMarshalGuardRepository
|
|||||||
|
|
||||||
Task<Result<MarshalGuardDetailDto>> GetMarshalGuardDetailAsync(Guid marshalGuardId, CancellationToken cancellationToken);
|
Task<Result<MarshalGuardDetailDto>> GetMarshalGuardDetailAsync(Guid marshalGuardId, CancellationToken cancellationToken);
|
||||||
|
|
||||||
Task<Result<List<MarshalGuardDto>>> GetAllianceMarshalGuardsAsync(Guid allianceId, int take, CancellationToken cancellationToken);
|
Task<Result<PagedResponseDto<MarshalGuardDto>>> GetAllianceMarshalGuardsAsync(Guid allianceId, int pageNumber, int pageSize, CancellationToken cancellationToken);
|
||||||
|
|
||||||
Task<Result<MarshalGuardDto>> CreateMarshalGuardsAsync(CreateMarshalGuardDto createMarshalGuardDto, string createdBy, CancellationToken cancellationToken);
|
Task<Result<MarshalGuardDto>> CreateMarshalGuardsAsync(CreateMarshalGuardDto createMarshalGuardDto, string createdBy, CancellationToken cancellationToken);
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using Application.Classes;
|
using Application.Classes;
|
||||||
|
using Application.DataTransferObjects;
|
||||||
using Application.DataTransferObjects.Player;
|
using Application.DataTransferObjects.Player;
|
||||||
|
|
||||||
namespace Application.Interfaces;
|
namespace Application.Interfaces;
|
||||||
@ -9,7 +10,7 @@ public interface IPlayerRepository
|
|||||||
|
|
||||||
Task<Result<List<PlayerDto>>> GetAlliancePlayersAsync(Guid allianceId, CancellationToken cancellationToken);
|
Task<Result<List<PlayerDto>>> GetAlliancePlayersAsync(Guid allianceId, CancellationToken cancellationToken);
|
||||||
|
|
||||||
Task<Result<List<PlayerDto>>> GetAllianceDismissPlayersAsync(Guid allianceId, CancellationToken cancellationToken);
|
Task<Result<PagedResponseDto<PlayerDto>>> GetAllianceDismissPlayersAsync(Guid allianceId, int pageNumber, int pageSize, CancellationToken cancellationToken);
|
||||||
|
|
||||||
Task<Result<List<PlayerMvpDto>>> GetAlliancePlayersMvp(Guid allianceId, CancellationToken cancellationToken);
|
Task<Result<List<PlayerMvpDto>>> GetAlliancePlayersMvp(Guid allianceId, CancellationToken cancellationToken);
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using Application.Classes;
|
using Application.Classes;
|
||||||
|
using Application.DataTransferObjects;
|
||||||
using Application.DataTransferObjects.VsDuel;
|
using Application.DataTransferObjects.VsDuel;
|
||||||
|
|
||||||
namespace Application.Interfaces;
|
namespace Application.Interfaces;
|
||||||
@ -9,7 +10,7 @@ public interface IVsDuelRepository
|
|||||||
|
|
||||||
Task<Result<VsDuelDetailDto>> GetVsDuelDetailAsync(Guid vsDuelId, CancellationToken cancellationToken);
|
Task<Result<VsDuelDetailDto>> GetVsDuelDetailAsync(Guid vsDuelId, CancellationToken cancellationToken);
|
||||||
|
|
||||||
Task<Result<List<VsDuelDto>>> GetAllianceVsDuelsAsync(Guid allianceId, int take, CancellationToken cancellationToken);
|
Task<Result<PagedResponseDto<VsDuelDto>>> GetAllianceVsDuelsAsync(Guid allianceId, int pageNumber, int pageSize, CancellationToken cancellationToken);
|
||||||
|
|
||||||
Task<Result<VsDuelDto>> CreateVsDuelAsync(CreateVsDuelDto createVsDuelDto, string createdBy, CancellationToken cancellationToken);
|
Task<Result<VsDuelDto>> CreateVsDuelAsync(CreateVsDuelDto createVsDuelDto, string createdBy, CancellationToken cancellationToken);
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using Application.Classes;
|
using Application.Classes;
|
||||||
|
using Application.DataTransferObjects;
|
||||||
using Application.DataTransferObjects.ZombieSiege;
|
using Application.DataTransferObjects.ZombieSiege;
|
||||||
|
|
||||||
namespace Application.Interfaces;
|
namespace Application.Interfaces;
|
||||||
@ -9,7 +10,7 @@ public interface IZombieSiegeRepository
|
|||||||
|
|
||||||
Task<Result<ZombieSiegeDetailDto>> GetZombieSiegeDetailAsync(Guid zombieSiegeId, CancellationToken cancellationToken);
|
Task<Result<ZombieSiegeDetailDto>> GetZombieSiegeDetailAsync(Guid zombieSiegeId, CancellationToken cancellationToken);
|
||||||
|
|
||||||
Task<Result<List<ZombieSiegeDto>>> GetAllianceZombieSiegesAsync(Guid allianceId, int take, CancellationToken cancellationToken);
|
Task<Result<PagedResponseDto<ZombieSiegeDto>>> GetAllianceZombieSiegesAsync(Guid allianceId, int pageNumber, int pageSize, CancellationToken cancellationToken);
|
||||||
|
|
||||||
Task<Result<ZombieSiegeDto>> CreateZombieSiegeAsync(CreateZombieSiegeDto createZombieSiegeDto, string createdBy, CancellationToken cancellationToken);
|
Task<Result<ZombieSiegeDto>> CreateZombieSiegeAsync(CreateZombieSiegeDto createZombieSiegeDto, string createdBy, CancellationToken cancellationToken);
|
||||||
|
|
||||||
|
|||||||
@ -9,10 +9,14 @@ public class ZombieSiegeProfile : Profile
|
|||||||
public ZombieSiegeProfile()
|
public ZombieSiegeProfile()
|
||||||
{
|
{
|
||||||
CreateMap<ZombieSiege, ZombieSiegeDto>()
|
CreateMap<ZombieSiege, ZombieSiegeDto>()
|
||||||
|
.ForMember(des => des.TotalWavesSurvived,
|
||||||
|
opt => opt.MapFrom(scr => scr.ZombieSiegeParticipants.Sum(p => p.SurvivedWaves)))
|
||||||
.ForMember(des => des.TotalLevel20Players,
|
.ForMember(des => des.TotalLevel20Players,
|
||||||
opt => opt.MapFrom(src => src.ZombieSiegeParticipants.Count(p => p.SurvivedWaves == 20)));
|
opt => opt.MapFrom(src => src.ZombieSiegeParticipants.Count(p => p.SurvivedWaves == 20)));
|
||||||
|
|
||||||
CreateMap<ZombieSiege, ZombieSiegeDetailDto>()
|
CreateMap<ZombieSiege, ZombieSiegeDetailDto>()
|
||||||
|
.ForMember(des => des.TotalWavesSurvived,
|
||||||
|
opt => opt.MapFrom(scr => scr.ZombieSiegeParticipants.Sum(p => p.SurvivedWaves)))
|
||||||
.ForMember(des => des.TotalLevel20Players,
|
.ForMember(des => des.TotalLevel20Players,
|
||||||
opt => opt.MapFrom(src => src.ZombieSiegeParticipants.Count(p => p.SurvivedWaves == 20)));
|
opt => opt.MapFrom(src => src.ZombieSiegeParticipants.Count(p => p.SurvivedWaves == 20)));
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using Application.Classes;
|
using Application.Classes;
|
||||||
|
using Application.DataTransferObjects;
|
||||||
using Application.DataTransferObjects.CustomEvent;
|
using Application.DataTransferObjects.CustomEvent;
|
||||||
using Application.Errors;
|
using Application.Errors;
|
||||||
using Application.Interfaces;
|
using Application.Interfaces;
|
||||||
@ -37,17 +38,28 @@ public class CustomEventRepository(ApplicationContext context, IMapper mapper, I
|
|||||||
: Result.Success(customEventDetail);
|
: Result.Success(customEventDetail);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Result<List<CustomEventDto>>> GetAllianceCustomEventsAsync(Guid allianceId, int take, CancellationToken cancellationToken)
|
public async Task<Result<PagedResponseDto<CustomEventDto>>> GetAllianceCustomEventsAsync(Guid allianceId, int pageNumber, int pageSize, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var allianceCustomEvents = await context.CustomEvents
|
var query = context.CustomEvents
|
||||||
.Where(customEvent => customEvent.AllianceId == allianceId)
|
.Where(customEvent => customEvent.AllianceId == allianceId)
|
||||||
.ProjectTo<CustomEventDto>(mapper.ConfigurationProvider)
|
|
||||||
.AsNoTracking()
|
|
||||||
.OrderByDescending(customEvent => customEvent.EventDate)
|
.OrderByDescending(customEvent => customEvent.EventDate)
|
||||||
.Take(take)
|
.AsNoTracking();
|
||||||
|
|
||||||
|
var totalRecord = await query.CountAsync(cancellationToken);
|
||||||
|
|
||||||
|
var pagedCustomEvents = await query
|
||||||
|
.Skip((pageNumber - 1) * pageSize)
|
||||||
|
.Take(pageSize)
|
||||||
|
.ProjectTo<CustomEventDto>(mapper.ConfigurationProvider)
|
||||||
.ToListAsync(cancellationToken);
|
.ToListAsync(cancellationToken);
|
||||||
|
|
||||||
return Result.Success(allianceCustomEvents);
|
return Result.Success(new PagedResponseDto<CustomEventDto>
|
||||||
|
{
|
||||||
|
Data = pagedCustomEvents,
|
||||||
|
TotalRecords = totalRecord,
|
||||||
|
PageSize = pageSize,
|
||||||
|
PageNumber = pageNumber
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Result<CustomEventDto>> CreateCustomEventAsync(CreateCustomEventDto createCustomEventDto, string createdBy,
|
public async Task<Result<CustomEventDto>> CreateCustomEventAsync(CreateCustomEventDto createCustomEventDto, string createdBy,
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using Application.Classes;
|
using Application.Classes;
|
||||||
|
using Application.DataTransferObjects;
|
||||||
using Application.DataTransferObjects.DesertStorm;
|
using Application.DataTransferObjects.DesertStorm;
|
||||||
using Application.Errors;
|
using Application.Errors;
|
||||||
using Application.Interfaces;
|
using Application.Interfaces;
|
||||||
@ -25,17 +26,28 @@ public class DesertStormRepository(ApplicationContext context, IMapper mapper, I
|
|||||||
: Result.Success(desertStormById);
|
: Result.Success(desertStormById);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Result<List<DesertStormDto>>> GetAllianceDesertStormsAsync(Guid allianceId, int take, CancellationToken cancellationToken)
|
public async Task<Result<PagedResponseDto<DesertStormDto>>> GetAllianceDesertStormsAsync(Guid allianceId, int pageNumber, int pageSize, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var allianceDesertStorms = await context.DesertStorms
|
var query = context.DesertStorms
|
||||||
.Where(desertStorm => desertStorm.AllianceId == allianceId)
|
.Where(desertStorm => desertStorm.AllianceId == allianceId)
|
||||||
.ProjectTo<DesertStormDto>(mapper.ConfigurationProvider)
|
|
||||||
.AsNoTracking()
|
|
||||||
.OrderByDescending(desertStorm => desertStorm.EventDate)
|
.OrderByDescending(desertStorm => desertStorm.EventDate)
|
||||||
.Take(take)
|
.AsNoTracking();
|
||||||
|
|
||||||
|
var totalRecord = await query.CountAsync(cancellationToken);
|
||||||
|
|
||||||
|
var pagedDesertStorms = await query
|
||||||
|
.Skip((pageNumber - 1) * pageSize)
|
||||||
|
.Take(pageSize)
|
||||||
|
.ProjectTo<DesertStormDto>(mapper.ConfigurationProvider)
|
||||||
.ToListAsync(cancellationToken);
|
.ToListAsync(cancellationToken);
|
||||||
|
|
||||||
return Result.Success(allianceDesertStorms);
|
return Result.Success(new PagedResponseDto<DesertStormDto>
|
||||||
|
{
|
||||||
|
Data = pagedDesertStorms,
|
||||||
|
TotalRecords = totalRecord,
|
||||||
|
PageSize = pageSize,
|
||||||
|
PageNumber = pageNumber
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Result<DesertStormDetailDto>> GetDesertStormDetailAsync(Guid desertStormId, CancellationToken cancellationToken)
|
public async Task<Result<DesertStormDetailDto>> GetDesertStormDetailAsync(Guid desertStormId, CancellationToken cancellationToken)
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using Application.Classes;
|
using Application.Classes;
|
||||||
|
using Application.DataTransferObjects;
|
||||||
using Application.DataTransferObjects.MarshalGuard;
|
using Application.DataTransferObjects.MarshalGuard;
|
||||||
using Application.Errors;
|
using Application.Errors;
|
||||||
using Application.Interfaces;
|
using Application.Interfaces;
|
||||||
@ -37,17 +38,28 @@ public class MarshalGuardRepository(ApplicationContext context, IMapper mapper,
|
|||||||
: Result.Success(detailMarshalGuard);
|
: Result.Success(detailMarshalGuard);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Result<List<MarshalGuardDto>>> GetAllianceMarshalGuardsAsync(Guid allianceId, int take, CancellationToken cancellationToken)
|
public async Task<Result<PagedResponseDto<MarshalGuardDto>>> GetAllianceMarshalGuardsAsync(Guid allianceId, int pageNumber, int pageSize, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var allianceMarshalGuards = await context.MarshalGuards
|
var query = context.MarshalGuards
|
||||||
.Where(marshalGuard => marshalGuard.AllianceId == allianceId)
|
.Where(marshalGuard => marshalGuard.AllianceId == allianceId)
|
||||||
.OrderByDescending(marshalGuard => marshalGuard.EventDate)
|
.OrderByDescending(marshalGuard => marshalGuard.EventDate)
|
||||||
|
.AsNoTracking();
|
||||||
|
|
||||||
|
var totalRecord = await query.CountAsync(cancellationToken);
|
||||||
|
|
||||||
|
var pagedMarshalGuards = await query
|
||||||
|
.Skip((pageNumber - 1) * pageSize)
|
||||||
|
.Take(pageSize)
|
||||||
.ProjectTo<MarshalGuardDto>(mapper.ConfigurationProvider)
|
.ProjectTo<MarshalGuardDto>(mapper.ConfigurationProvider)
|
||||||
.AsNoTracking()
|
|
||||||
.Take(take)
|
|
||||||
.ToListAsync(cancellationToken);
|
.ToListAsync(cancellationToken);
|
||||||
|
|
||||||
return Result.Success(allianceMarshalGuards);
|
return Result.Success(new PagedResponseDto<MarshalGuardDto>
|
||||||
|
{
|
||||||
|
Data = pagedMarshalGuards,
|
||||||
|
TotalRecords = totalRecord,
|
||||||
|
PageSize = pageSize,
|
||||||
|
PageNumber = pageNumber
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using Application.Classes;
|
using Application.Classes;
|
||||||
|
using Application.DataTransferObjects;
|
||||||
using Application.DataTransferObjects.Player;
|
using Application.DataTransferObjects.Player;
|
||||||
using Application.Errors;
|
using Application.Errors;
|
||||||
using Application.Interfaces;
|
using Application.Interfaces;
|
||||||
@ -36,16 +37,30 @@ public class PlayerRepository(ApplicationContext context, IMapper mapper, ILogge
|
|||||||
return Result.Success(alliancePlayers);
|
return Result.Success(alliancePlayers);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Result<List<PlayerDto>>> GetAllianceDismissPlayersAsync(Guid allianceId, CancellationToken cancellationToken)
|
public async Task<Result<PagedResponseDto<PlayerDto>>> GetAllianceDismissPlayersAsync(Guid allianceId, int pageNumber, int pageSize, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var dismissAlliancePlayers = await context.Players
|
var query = context.Players
|
||||||
.IgnoreQueryFilters()
|
.IgnoreQueryFilters()
|
||||||
.ProjectTo<PlayerDto>(mapper.ConfigurationProvider)
|
|
||||||
.AsNoTracking()
|
|
||||||
.Where(player => player.AllianceId == allianceId && player.IsDismissed)
|
.Where(player => player.AllianceId == allianceId && player.IsDismissed)
|
||||||
|
.OrderByDescending(player => player.DismissedAt)
|
||||||
|
.AsNoTracking();
|
||||||
|
|
||||||
|
var totalRecord = await query.CountAsync(cancellationToken);
|
||||||
|
|
||||||
|
var pagedDismissPlayers = await query
|
||||||
|
.Skip((pageNumber - 1) * pageSize)
|
||||||
|
.Take(pageSize)
|
||||||
|
.ProjectTo<PlayerDto>(mapper.ConfigurationProvider)
|
||||||
.ToListAsync(cancellationToken);
|
.ToListAsync(cancellationToken);
|
||||||
|
|
||||||
return Result.Success(dismissAlliancePlayers);
|
|
||||||
|
return Result.Success(new PagedResponseDto<PlayerDto>
|
||||||
|
{
|
||||||
|
Data = pagedDismissPlayers,
|
||||||
|
TotalRecords = totalRecord,
|
||||||
|
PageSize = pageSize,
|
||||||
|
PageNumber = pageNumber
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Result<List<PlayerMvpDto>>> GetAlliancePlayersMvp(Guid allianceId, CancellationToken cancellationToken)
|
public async Task<Result<List<PlayerMvpDto>>> GetAlliancePlayersMvp(Guid allianceId, CancellationToken cancellationToken)
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using Application.Classes;
|
using Application.Classes;
|
||||||
|
using Application.DataTransferObjects;
|
||||||
using Application.DataTransferObjects.VsDuel;
|
using Application.DataTransferObjects.VsDuel;
|
||||||
using Application.Errors;
|
using Application.Errors;
|
||||||
using Application.Interfaces;
|
using Application.Interfaces;
|
||||||
@ -37,17 +38,28 @@ public class VsDuelRepository(ApplicationContext context, IMapper mapper, ILogge
|
|||||||
: Result.Success(vsDuelDetail);
|
: Result.Success(vsDuelDetail);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Result<List<VsDuelDto>>> GetAllianceVsDuelsAsync(Guid allianceId, int take, CancellationToken cancellationToken)
|
public async Task<Result<PagedResponseDto<VsDuelDto>>> GetAllianceVsDuelsAsync(Guid allianceId, int pageNumber, int pageSize, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var allianceVsDuels = await context.VsDuels
|
var query = context.VsDuels
|
||||||
.Where(vsDuel => vsDuel.AllianceId == allianceId)
|
.Where(vsDuel => vsDuel.AllianceId == allianceId)
|
||||||
.ProjectTo<VsDuelDto>(mapper.ConfigurationProvider)
|
|
||||||
.OrderByDescending(vsDuel => vsDuel.EventDate)
|
.OrderByDescending(vsDuel => vsDuel.EventDate)
|
||||||
.Take(take)
|
.AsNoTracking();
|
||||||
.AsNoTracking()
|
|
||||||
|
var totalRecord = await query.CountAsync(cancellationToken);
|
||||||
|
|
||||||
|
var pagedVsDuels = await query
|
||||||
|
.Skip((pageNumber - 1) * pageSize)
|
||||||
|
.Take(pageSize)
|
||||||
|
.ProjectTo<VsDuelDto>(mapper.ConfigurationProvider)
|
||||||
.ToListAsync(cancellationToken);
|
.ToListAsync(cancellationToken);
|
||||||
|
|
||||||
return Result.Success(allianceVsDuels);
|
return Result.Success(new PagedResponseDto<VsDuelDto>
|
||||||
|
{
|
||||||
|
Data = pagedVsDuels,
|
||||||
|
TotalRecords = totalRecord,
|
||||||
|
PageSize = pageSize,
|
||||||
|
PageNumber = pageNumber
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Result<VsDuelDto>> CreateVsDuelAsync(CreateVsDuelDto createVsDuelDto, string createdBy, CancellationToken cancellationToken)
|
public async Task<Result<VsDuelDto>> CreateVsDuelAsync(CreateVsDuelDto createVsDuelDto, string createdBy, CancellationToken cancellationToken)
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using Application.Classes;
|
using Application.Classes;
|
||||||
|
using Application.DataTransferObjects;
|
||||||
using Application.DataTransferObjects.ZombieSiege;
|
using Application.DataTransferObjects.ZombieSiege;
|
||||||
using Application.Errors;
|
using Application.Errors;
|
||||||
using Application.Interfaces;
|
using Application.Interfaces;
|
||||||
@ -37,17 +38,28 @@ public class ZombieSiegeRepository(ApplicationContext context, IMapper mapper, I
|
|||||||
: Result.Success(zombieSiegeDetail);
|
: Result.Success(zombieSiegeDetail);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Result<List<ZombieSiegeDto>>> GetAllianceZombieSiegesAsync(Guid allianceId, int take, CancellationToken cancellationToken)
|
public async Task<Result<PagedResponseDto<ZombieSiegeDto>>> GetAllianceZombieSiegesAsync(Guid allianceId, int pageNumber, int pageSize, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var allianceZombieSieges = await context.ZombieSieges
|
var query = context.ZombieSieges
|
||||||
.Where(zombieSiege => zombieSiege.AllianceId == allianceId)
|
.Where(zombieSiege => zombieSiege.AllianceId == allianceId)
|
||||||
.OrderByDescending(zombieSiege => zombieSiege.EventDate)
|
.OrderByDescending(zombieSiege => zombieSiege.EventDate)
|
||||||
|
.AsNoTracking();
|
||||||
|
|
||||||
|
var totalRecord = await query.CountAsync(cancellationToken);
|
||||||
|
|
||||||
|
var pagedZombieSieges = await query
|
||||||
|
.Skip((pageNumber - 1) * pageSize)
|
||||||
|
.Take(pageSize)
|
||||||
.ProjectTo<ZombieSiegeDto>(mapper.ConfigurationProvider)
|
.ProjectTo<ZombieSiegeDto>(mapper.ConfigurationProvider)
|
||||||
.AsNoTracking()
|
|
||||||
.Take(take)
|
|
||||||
.ToListAsync(cancellationToken);
|
.ToListAsync(cancellationToken);
|
||||||
|
|
||||||
return Result.Success(allianceZombieSieges);
|
return Result.Success(new PagedResponseDto<ZombieSiegeDto>
|
||||||
|
{
|
||||||
|
Data = pagedZombieSieges,
|
||||||
|
TotalRecords = totalRecord,
|
||||||
|
PageSize = pageSize,
|
||||||
|
PageNumber = pageNumber
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Result<ZombieSiegeDto>> CreateZombieSiegeAsync(CreateZombieSiegeDto createZombieSiegeDto, string createdBy,
|
public async Task<Result<ZombieSiegeDto>> CreateZombieSiegeAsync(CreateZombieSiegeDto createZombieSiegeDto, string createdBy,
|
||||||
|
|||||||
@ -6,6 +6,14 @@ This project is currently in the **Beta Phase**.
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
### **[0.6.0-beta]** - *2025-01-28*
|
||||||
|
#### ✨ Added
|
||||||
|
- **Pagination**: Implemented and adjusted for all tables.
|
||||||
|
- **Zombie Siege**: Expanded the table to display all waves survived by the entire alliance.
|
||||||
|
|
||||||
|
#### 🛠️ Fixed
|
||||||
|
- *(N/A)*
|
||||||
|
|
||||||
### **[0.5.1-beta]** - *2025-01-27*
|
### **[0.5.1-beta]** - *2025-01-27*
|
||||||
#### ✨ Added
|
#### ✨ Added
|
||||||
- *(N/A)*
|
- *(N/A)*
|
||||||
|
|||||||
6
Ui/src/app/models/pagedResponse.model.ts
Normal file
6
Ui/src/app/models/pagedResponse.model.ts
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
export interface PagedResponseModel<T> {
|
||||||
|
totalRecords: number;
|
||||||
|
pageNumber: number;
|
||||||
|
pageSize: number;
|
||||||
|
data: T[]
|
||||||
|
}
|
||||||
@ -10,6 +10,7 @@ export interface ZombieSiegeModel {
|
|||||||
allianceSize: number;
|
allianceSize: number;
|
||||||
level: number;
|
level: number;
|
||||||
totalLevel20Players: number;
|
totalLevel20Players: number;
|
||||||
|
totalWavesSurvived: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ZombieSiegeDetailModel extends ZombieSiegeModel{
|
export interface ZombieSiegeDetailModel extends ZombieSiegeModel{
|
||||||
|
|||||||
@ -115,7 +115,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@for (customEvent of customEvents; track customEvent.id) {
|
@for (customEvent of customEvents | paginate: { id: 'customEventTable', itemsPerPage: pageSize, totalItems: totalRecord, currentPage: pageNumber}; track customEvent.id) {
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{customEvent.eventDate | date: 'dd.MM.yyyy'}}</td>
|
<td>{{customEvent.eventDate | date: 'dd.MM.yyyy'}}</td>
|
||||||
<td>{{customEvent.name}}</td>
|
<td>{{customEvent.name}}</td>
|
||||||
@ -145,6 +145,20 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- Pagination Controls -->
|
||||||
|
<div class="d-flex justify-content-between mt-3 flex-column flex-md-row">
|
||||||
|
<pagination-controls class="custom-pagination" [id]="'customEventTable'" [responsive]="true" [autoHide]=" true"
|
||||||
|
(pageChange)="pageChanged($event)"></pagination-controls>
|
||||||
|
|
||||||
|
<!-- Showing total results with improved styling -->
|
||||||
|
<div class="align-self-center text-muted mt-2 mt-md-0">
|
||||||
|
<small>
|
||||||
|
Showing
|
||||||
|
<strong>{{ (pageNumber - 1) * pageSize + 1 }} - {{ pageNumber * pageSize > totalRecord ? totalRecord : pageNumber * pageSize }}</strong>
|
||||||
|
of <strong>{{ totalRecord }}</strong> results
|
||||||
|
</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
} @else {
|
} @else {
|
||||||
<div class="alert alert-secondary text-center mt-5" role="alert">
|
<div class="alert alert-secondary text-center mt-5" role="alert">
|
||||||
No saved custom events
|
No saved custom events
|
||||||
|
|||||||
@ -37,20 +37,25 @@ export class CustomEventComponent implements OnInit {
|
|||||||
private readonly _toastr: ToastrService = inject(ToastrService);
|
private readonly _toastr: ToastrService = inject(ToastrService);
|
||||||
private allianceId: string = this._tokenService.getAllianceId()!;
|
private allianceId: string = this._tokenService.getAllianceId()!;
|
||||||
|
|
||||||
|
public totalRecord: number = 0;
|
||||||
|
public pageNumber: number = 1;
|
||||||
|
public pageSize: number = 10
|
||||||
|
|
||||||
get f() {
|
get f() {
|
||||||
return this.customEventForm.controls;
|
return this.customEventForm.controls;
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.getCustomEvents(10);
|
this.getCustomEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
getCustomEvents(take: number) {
|
getCustomEvents() {
|
||||||
this.customEvents = [];
|
this.customEvents = [];
|
||||||
this._customEventService.getAllianceCustomEvents(this.allianceId, take).subscribe({
|
this._customEventService.getAllianceCustomEvents(this.allianceId, this.pageNumber, this.pageSize).subscribe({
|
||||||
next: ((response: CustomEventModel[]) => {
|
next: ((response) => {
|
||||||
if (response) {
|
if (response) {
|
||||||
this.customEvents = response;
|
this.customEvents = response.data;
|
||||||
|
this.totalRecord = response.totalRecords;
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
error: (error) => {
|
error: (error) => {
|
||||||
@ -150,7 +155,7 @@ export class CustomEventComponent implements OnInit {
|
|||||||
next: (() => {
|
next: (() => {
|
||||||
this.playerParticipated = [];
|
this.playerParticipated = [];
|
||||||
this.onCancel();
|
this.onCancel();
|
||||||
this.getCustomEvents(10);
|
this.resetAndGetCustomEvents();
|
||||||
}),
|
}),
|
||||||
error: (error) => {
|
error: (error) => {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
@ -194,7 +199,7 @@ export class CustomEventComponent implements OnInit {
|
|||||||
title: "Deleted!",
|
title: "Deleted!",
|
||||||
text: "Custom event has been deleted",
|
text: "Custom event has been deleted",
|
||||||
icon: "success"
|
icon: "success"
|
||||||
}).then(_ => this.getCustomEvents(10));
|
}).then(_ => this.resetAndGetCustomEvents());
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
error: (error: Error) => {
|
error: (error: Error) => {
|
||||||
@ -235,7 +240,7 @@ export class CustomEventComponent implements OnInit {
|
|||||||
if (participantsToUpdate.length <= 0) {
|
if (participantsToUpdate.length <= 0) {
|
||||||
this._toastr.success('Successfully updated!', 'Successfully');
|
this._toastr.success('Successfully updated!', 'Successfully');
|
||||||
this.onCancel();
|
this.onCancel();
|
||||||
this.getCustomEvents(10);
|
this.resetAndGetCustomEvents();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -249,9 +254,19 @@ export class CustomEventComponent implements OnInit {
|
|||||||
if (response) {
|
if (response) {
|
||||||
this._toastr.success('Successfully updated!', 'Successfully');
|
this._toastr.success('Successfully updated!', 'Successfully');
|
||||||
this.onCancel();
|
this.onCancel();
|
||||||
this.getCustomEvents(10);
|
this.resetAndGetCustomEvents();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pageChanged(event: number) {
|
||||||
|
this.pageNumber = event;
|
||||||
|
this.getCustomEvents();
|
||||||
|
}
|
||||||
|
|
||||||
|
resetAndGetCustomEvents() {
|
||||||
|
this.pageNumber = 1;
|
||||||
|
this.getCustomEvents();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -127,7 +127,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@for (desertStorm of desertStorms; track desertStorm.id) {
|
@for (desertStorm of desertStorms | paginate: { id: 'desertStormTable', itemsPerPage: pageSize, totalItems: totalRecord, currentPage: pageNumber}; track desertStorm.id) {
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{desertStorm.eventDate | date: 'dd.MM.yyyy'}}</td>
|
<td>{{desertStorm.eventDate | date: 'dd.MM.yyyy'}}</td>
|
||||||
<td>{{desertStorm.opponentName}}</td>
|
<td>{{desertStorm.opponentName}}</td>
|
||||||
@ -153,6 +153,20 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- Pagination Controls -->
|
||||||
|
<div class="d-flex justify-content-between mt-3 flex-column flex-md-row">
|
||||||
|
<pagination-controls class="custom-pagination" [id]="'desertStormTable'" [responsive]="true" [autoHide]=" true"
|
||||||
|
(pageChange)="pageChanged($event)"></pagination-controls>
|
||||||
|
|
||||||
|
<!-- Showing total results with improved styling -->
|
||||||
|
<div class="align-self-center text-muted mt-2 mt-md-0">
|
||||||
|
<small>
|
||||||
|
Showing
|
||||||
|
<strong>{{ (pageNumber - 1) * pageSize + 1 }} - {{ pageNumber * pageSize > totalRecord ? totalRecord : pageNumber * pageSize }}</strong>
|
||||||
|
of <strong>{{ totalRecord }}</strong> results
|
||||||
|
</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
} @else {
|
} @else {
|
||||||
<div class="alert alert-secondary text-center mt-5" role="alert">
|
<div class="alert alert-secondary text-center mt-5" role="alert">
|
||||||
No saved Desert storm events
|
No saved Desert storm events
|
||||||
|
|||||||
@ -33,6 +33,8 @@ export class DesertStormComponent implements OnInit {
|
|||||||
private readonly _modalService: NgbModal = inject(NgbModal);
|
private readonly _modalService: NgbModal = inject(NgbModal);
|
||||||
private readonly _toastr: ToastrService = inject(ToastrService);
|
private readonly _toastr: ToastrService = inject(ToastrService);
|
||||||
|
|
||||||
|
private allianceId: string = this._tokenService.getAllianceId()!;
|
||||||
|
|
||||||
isCreateDessertStorm: boolean = false;
|
isCreateDessertStorm: boolean = false;
|
||||||
public desertStorms: DesertStormModel[] = [];
|
public desertStorms: DesertStormModel[] = [];
|
||||||
currentDate: Date = new Date();
|
currentDate: Date = new Date();
|
||||||
@ -44,24 +46,29 @@ export class DesertStormComponent implements OnInit {
|
|||||||
desertStormForm!: FormGroup;
|
desertStormForm!: FormGroup;
|
||||||
isUpdate: boolean = false;
|
isUpdate: boolean = false;
|
||||||
|
|
||||||
|
public totalRecord: number = 0;
|
||||||
|
public pageNumber: number = 1;
|
||||||
|
public pageSize: number = 10;
|
||||||
|
|
||||||
get f() {
|
get f() {
|
||||||
return this.desertStormForm.controls;
|
return this.desertStormForm.controls;
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.getDesertStorms(10);
|
this.getDesertStorms();
|
||||||
}
|
}
|
||||||
|
|
||||||
getDesertStorms(take: number) {
|
getDesertStorms() {
|
||||||
this._desertStormService.getAllianceDesertStorms(this._tokenService.getAllianceId()!, take).subscribe({
|
this._desertStormService.getAllianceDesertStorms(this.allianceId, this.pageNumber, this.pageSize).subscribe({
|
||||||
next: (response) => {
|
next: (response) => {
|
||||||
if (response) {
|
if (response) {
|
||||||
response.forEach((desertStorm: DesertStormModel) => {
|
response.data.forEach((desertStorm: DesertStormModel) => {
|
||||||
if (this._weekPipe.transform(desertStorm.eventDate) === this._weekPipe.transform(new Date())) {
|
if (this._weekPipe.transform(desertStorm.eventDate) === this._weekPipe.transform(new Date())) {
|
||||||
this.currentWeekDuelExists = true;
|
this.currentWeekDuelExists = true;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
this.desertStorms = response;
|
this.desertStorms = response.data;
|
||||||
|
this.totalRecord = response.totalRecords;
|
||||||
} else {
|
} else {
|
||||||
this.desertStorms = [];
|
this.desertStorms = [];
|
||||||
this.currentWeekDuelExists = false;
|
this.currentWeekDuelExists = false;
|
||||||
@ -130,7 +137,7 @@ export class DesertStormComponent implements OnInit {
|
|||||||
title: "Deleted!",
|
title: "Deleted!",
|
||||||
text: "Desert storm has been deleted",
|
text: "Desert storm has been deleted",
|
||||||
icon: "success"
|
icon: "success"
|
||||||
}).then(_ => this.getDesertStorms(10));
|
}).then(_ => this.resetAndGetDesertStorms());
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
error: (error: Error) => {
|
error: (error: Error) => {
|
||||||
@ -188,7 +195,7 @@ export class DesertStormComponent implements OnInit {
|
|||||||
next: (() => {
|
next: (() => {
|
||||||
this._toastr.success('Successfully created!', 'Successfully');
|
this._toastr.success('Successfully created!', 'Successfully');
|
||||||
this.onCancel();
|
this.onCancel();
|
||||||
this.getDesertStorms(10);
|
this.resetAndGetDesertStorms();
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -234,7 +241,7 @@ export class DesertStormComponent implements OnInit {
|
|||||||
if (desertStormParticipants.length <= 0) {
|
if (desertStormParticipants.length <= 0) {
|
||||||
this._toastr.success('Successfully updated!', 'Successfully');
|
this._toastr.success('Successfully updated!', 'Successfully');
|
||||||
this.onCancel();
|
this.onCancel();
|
||||||
this.getDesertStorms(10);
|
this.resetAndGetDesertStorms();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const requests: Observable<DesertStormParticipantModel>[] = [];
|
const requests: Observable<DesertStormParticipantModel>[] = [];
|
||||||
@ -248,9 +255,19 @@ export class DesertStormComponent implements OnInit {
|
|||||||
if (response) {
|
if (response) {
|
||||||
this._toastr.success('Successfully updated!', 'Successfully');
|
this._toastr.success('Successfully updated!', 'Successfully');
|
||||||
this.onCancel();
|
this.onCancel();
|
||||||
this.getDesertStorms(10);
|
this.resetAndGetDesertStorms();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pageChanged(event: number) {
|
||||||
|
this.pageNumber = event;
|
||||||
|
this.getDesertStorms();
|
||||||
|
}
|
||||||
|
|
||||||
|
resetAndGetDesertStorms() {
|
||||||
|
this.pageNumber = 1;
|
||||||
|
this.getDesertStorms();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,7 +14,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@for (player of dismissedPlayers | paginate: { itemsPerPage: itemsPerPage, currentPage: page, id: 'dismissedTable'}; track player.id) {
|
@for (player of dismissedPlayers | paginate: { totalItems: totalRecord, itemsPerPage: pageSize, currentPage: pageNumber, id: 'dismissedTable'}; track player.id) {
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{player.playerName}}</td>
|
<td>{{player.playerName}}</td>
|
||||||
<td>{{player.dismissedAt | date: 'dd.MM.yyyy'}}</td>
|
<td>{{player.dismissedAt | date: 'dd.MM.yyyy'}}</td>
|
||||||
@ -32,8 +32,20 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- Pagination Controls -->
|
||||||
|
<div class="d-flex justify-content-between mt-3 flex-column flex-md-row">
|
||||||
|
<pagination-controls class="custom-pagination" [id]="'dismissedTable'" [responsive]="true" [autoHide]=" true"
|
||||||
|
(pageChange)="pageChanged($event)"></pagination-controls>
|
||||||
|
|
||||||
<pagination-controls class="custom-pagination" [responsive]="true" [id]="'dismissedTable'" (pageChange)="page = $event"></pagination-controls>
|
<!-- Showing total results with improved styling -->
|
||||||
|
<div class="align-self-center text-muted mt-2 mt-md-0">
|
||||||
|
<small>
|
||||||
|
Showing
|
||||||
|
<strong>{{ (pageNumber - 1) * pageSize + 1 }} - {{ pageNumber * pageSize > totalRecord ? totalRecord : pageNumber * pageSize }}</strong>
|
||||||
|
of <strong>{{ totalRecord }}</strong> results
|
||||||
|
</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
} @else {
|
} @else {
|
||||||
<div class="alert alert-secondary text-center mt-5" role="alert">
|
<div class="alert alert-secondary text-center mt-5" role="alert">
|
||||||
No dismissed players
|
No dismissed players
|
||||||
|
|||||||
@ -26,8 +26,10 @@ export class DismissPlayerComponent implements OnInit {
|
|||||||
private allianceId: string = this._tokenService.getAllianceId()!;
|
private allianceId: string = this._tokenService.getAllianceId()!;
|
||||||
|
|
||||||
public dismissedPlayers: PlayerModel[] = [];
|
public dismissedPlayers: PlayerModel[] = [];
|
||||||
itemsPerPage: string | number = 10;
|
|
||||||
page: string | number = 1;
|
public totalRecord: number = 0;
|
||||||
|
public pageNumber: number = 1;
|
||||||
|
public pageSize: number = 10;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -36,10 +38,11 @@ export class DismissPlayerComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getDismissedPlayers() {
|
getDismissedPlayers() {
|
||||||
this._playerService.getDismissedPlayers(this.allianceId).subscribe({
|
this._playerService.getDismissedPlayers(this.allianceId, this.pageNumber, this.pageSize).subscribe({
|
||||||
next: ((response) => {
|
next: ((response) => {
|
||||||
if (response) {
|
if (response) {
|
||||||
this.dismissedPlayers = response;
|
this.dismissedPlayers = response.data;
|
||||||
|
this.totalRecord = response.totalRecords;
|
||||||
} else {
|
} else {
|
||||||
this.dismissedPlayers = [];
|
this.dismissedPlayers = [];
|
||||||
}
|
}
|
||||||
@ -114,4 +117,9 @@ export class DismissPlayerComponent implements OnInit {
|
|||||||
{animation: true, backdrop: true, centered: true, size: 'lg', scrollable: true});
|
{animation: true, backdrop: true, centered: true, size: 'lg', scrollable: true});
|
||||||
modalRef.componentInstance.playerId = player.id;
|
modalRef.componentInstance.playerId = player.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pageChanged(event: number) {
|
||||||
|
this.pageNumber = event;
|
||||||
|
this.getDismissedPlayers();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -89,7 +89,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@for (marshalGuard of marshalGuards; track marshalGuard.id) {
|
@for (marshalGuard of marshalGuards | paginate: { id: 'marshalGuardTable', itemsPerPage: pageSize, totalItems: totalRecord, currentPage: pageNumber}; track marshalGuard.id) {
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{marshalGuard.eventDate | date: 'dd.MM.yyyy'}}</td>
|
<td>{{marshalGuard.eventDate | date: 'dd.MM.yyyy'}}</td>
|
||||||
<td>{{marshalGuard.level}}</td>
|
<td>{{marshalGuard.level}}</td>
|
||||||
@ -120,6 +120,20 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- Pagination Controls -->
|
||||||
|
<div class="d-flex justify-content-between mt-3 flex-column flex-md-row">
|
||||||
|
<pagination-controls class="custom-pagination" [id]="'marshalGuardTable'" [responsive]="true" [autoHide]=" true"
|
||||||
|
(pageChange)="pageChanged($event)"></pagination-controls>
|
||||||
|
|
||||||
|
<!-- Showing total results with improved styling -->
|
||||||
|
<div class="align-self-center text-muted mt-2 mt-md-0">
|
||||||
|
<small>
|
||||||
|
Showing
|
||||||
|
<strong>{{ (pageNumber - 1) * pageSize + 1 }} - {{ pageNumber * pageSize > totalRecord ? totalRecord : pageNumber * pageSize }}</strong>
|
||||||
|
of <strong>{{ totalRecord }}</strong> results
|
||||||
|
</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
} @else {
|
} @else {
|
||||||
<div class="alert alert-secondary text-center mt-5" role="alert">
|
<div class="alert alert-secondary text-center mt-5" role="alert">
|
||||||
No saved marshal guards
|
No saved marshal guards
|
||||||
|
|||||||
@ -50,6 +50,10 @@ export class MarshalGuardComponent implements OnInit {
|
|||||||
public playerSelected: boolean = false;
|
public playerSelected: boolean = false;
|
||||||
public marshalGuards: MarshalGuardModel[] = [];
|
public marshalGuards: MarshalGuardModel[] = [];
|
||||||
|
|
||||||
|
public totalRecord: number = 0;
|
||||||
|
public pageNumber: number = 1;
|
||||||
|
public pageSize: number = 10;
|
||||||
|
|
||||||
private allianceId: string = this._tokenService.getAllianceId()!;
|
private allianceId: string = this._tokenService.getAllianceId()!;
|
||||||
|
|
||||||
get f() {
|
get f() {
|
||||||
@ -57,14 +61,15 @@ export class MarshalGuardComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.getMarshalGuards(10);
|
this.getMarshalGuards();
|
||||||
}
|
}
|
||||||
|
|
||||||
public getMarshalGuards(take: number) {
|
public getMarshalGuards() {
|
||||||
this._marshalGuardService.getAllianceMarshalGuards(this.allianceId, take).subscribe({
|
this._marshalGuardService.getAllianceMarshalGuards(this.allianceId, this.pageNumber, this.pageSize).subscribe({
|
||||||
next: ((response) => {
|
next: ((response) => {
|
||||||
if (response) {
|
if (response) {
|
||||||
this.marshalGuards = response;
|
this.marshalGuards = response.data;
|
||||||
|
this.totalRecord = response.totalRecords;
|
||||||
} else {
|
} else {
|
||||||
this.marshalGuards = [];
|
this.marshalGuards = [];
|
||||||
}
|
}
|
||||||
@ -185,7 +190,7 @@ export class MarshalGuardComponent implements OnInit {
|
|||||||
this._marshalGuardParticipantService.insertMarshalGuardOParticipants(marshalGuardParticipants).subscribe({
|
this._marshalGuardParticipantService.insertMarshalGuardOParticipants(marshalGuardParticipants).subscribe({
|
||||||
next: (() => {
|
next: (() => {
|
||||||
this.onCancel();
|
this.onCancel();
|
||||||
this.getMarshalGuards(10);
|
this.resetAndGetMarshalGuard();
|
||||||
this.playerParticipated = [];
|
this.playerParticipated = [];
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -234,7 +239,7 @@ export class MarshalGuardComponent implements OnInit {
|
|||||||
private updateMarshalGuardParticipants() {
|
private updateMarshalGuardParticipants() {
|
||||||
if (this.participantToUpdate.length <= 0) {
|
if (this.participantToUpdate.length <= 0) {
|
||||||
this.onCancel();
|
this.onCancel();
|
||||||
this.getMarshalGuards(10);
|
this.resetAndGetMarshalGuard();
|
||||||
this.playerParticipated = [];
|
this.playerParticipated = [];
|
||||||
this.participantToUpdate = [];
|
this.participantToUpdate = [];
|
||||||
this._toastr.success('Successfully updated marshalGuard', 'Update marshalGuard')
|
this._toastr.success('Successfully updated marshalGuard', 'Update marshalGuard')
|
||||||
@ -250,7 +255,7 @@ export class MarshalGuardComponent implements OnInit {
|
|||||||
next: ((response) => {
|
next: ((response) => {
|
||||||
if (response) {
|
if (response) {
|
||||||
this.onCancel();
|
this.onCancel();
|
||||||
this.getMarshalGuards(10);
|
this.resetAndGetMarshalGuard();
|
||||||
this.playerParticipated = [];
|
this.playerParticipated = [];
|
||||||
this.participantToUpdate = [];
|
this.participantToUpdate = [];
|
||||||
this._toastr.success('Successfully updated marshalGuard', 'Update marshalGuard');
|
this._toastr.success('Successfully updated marshalGuard', 'Update marshalGuard');
|
||||||
@ -290,7 +295,7 @@ export class MarshalGuardComponent implements OnInit {
|
|||||||
title: "Deleted!",
|
title: "Deleted!",
|
||||||
text: "Marshal guards has been deleted",
|
text: "Marshal guards has been deleted",
|
||||||
icon: "success"
|
icon: "success"
|
||||||
}).then(_ => this.getMarshalGuards(10));
|
}).then(_ => this.resetAndGetMarshalGuard());
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
error: (error: Error) => {
|
error: (error: Error) => {
|
||||||
@ -304,4 +309,14 @@ export class MarshalGuardComponent implements OnInit {
|
|||||||
onGoToMarshalGuardDetail(marshalGuard: MarshalGuardModel) {
|
onGoToMarshalGuardDetail(marshalGuard: MarshalGuardModel) {
|
||||||
this._router.navigate(['marshal-guard-detail', marshalGuard.id]).then();
|
this._router.navigate(['marshal-guard-detail', marshalGuard.id]).then();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resetAndGetMarshalGuard() {
|
||||||
|
this.pageNumber = 1;
|
||||||
|
this.getMarshalGuards();
|
||||||
|
}
|
||||||
|
|
||||||
|
pageChanged(event: number) {
|
||||||
|
this.pageNumber = event;
|
||||||
|
this.getMarshalGuards();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -50,7 +50,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@for (player of filteredPlayers | paginate: { itemsPerPage: itemsPerPage, currentPage: page, id: 'playerTable'}; track player.id) {
|
@for (player of filteredPlayers | paginate: { itemsPerPage: pageSize, currentPage: pageNumber, id: 'playerTable'}; track player.id) {
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@ -75,8 +75,20 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- Pagination Controls -->
|
||||||
|
<div class="d-flex justify-content-between mt-3 flex-column flex-md-row">
|
||||||
|
<pagination-controls class="custom-pagination" [id]="'playerTable'" [responsive]="true" [autoHide]=" true"
|
||||||
|
(pageChange)="pageNumber = $event"></pagination-controls>
|
||||||
|
|
||||||
<pagination-controls class="custom-pagination" [responsive]="true" [id]="'playerTable'" (pageChange)="page = $event"></pagination-controls>
|
<!-- Showing total results with improved styling -->
|
||||||
|
<div class="align-self-center text-muted mt-2 mt-md-0">
|
||||||
|
<small>
|
||||||
|
Showing
|
||||||
|
<strong>{{ (pageNumber - 1) * pageSize + 1 }} - {{ pageNumber * pageSize > players.length ? players.length : pageNumber * pageSize }}</strong>
|
||||||
|
of <strong>{{ players.length }}</strong> results
|
||||||
|
</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
} @else {
|
} @else {
|
||||||
<div class="alert alert-secondary text-center mt-5" role="alert">
|
<div class="alert alert-secondary text-center mt-5" role="alert">
|
||||||
No registered players
|
No registered players
|
||||||
|
|||||||
@ -39,8 +39,9 @@ export class PlayerComponent implements OnInit {
|
|||||||
public r3Players: PlayerModel[] = [];
|
public r3Players: PlayerModel[] = [];
|
||||||
public r4Players: PlayerModel[] = [];
|
public r4Players: PlayerModel[] = [];
|
||||||
public filteredPlayers: PlayerModel[] = [];
|
public filteredPlayers: PlayerModel[] = [];
|
||||||
public page: number = 1;
|
|
||||||
public itemsPerPage: number = 10;
|
public pageNumber: number = 1;
|
||||||
|
public pageSize: number = 10;
|
||||||
public filter = new FormControl('', { nonNullable: true });
|
public filter = new FormControl('', { nonNullable: true });
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -36,7 +36,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@for (vsDuel of vsDuels | paginate: { itemsPerPage: 10, currentPage: page, id: 'vsDuelTable'}; track vsDuel.id) {
|
@for (vsDuel of vsDuels | paginate: { id: 'vsDuelTable', itemsPerPage: pageSize, totalItems: totalRecord, currentPage: pageNumber}; track vsDuel.id) {
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{vsDuel.eventDate | date: 'yyyy'}}</td>
|
<td>{{vsDuel.eventDate | date: 'yyyy'}}</td>
|
||||||
<td>{{vsDuel.eventDate | week}}</td>
|
<td>{{vsDuel.eventDate | week}}</td>
|
||||||
@ -73,7 +73,20 @@
|
|||||||
}
|
}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<pagination-controls class="custom-pagination" [responsive]="true" [id]="'vsDuelTable'" (pageChange)="page = $event"></pagination-controls>
|
</div>
|
||||||
|
<!-- Pagination Controls -->
|
||||||
|
<div class="d-flex justify-content-between mt-3 flex-column flex-md-row">
|
||||||
|
<pagination-controls class="custom-pagination" [id]="'marshalGuardTable'" [responsive]="true" [autoHide]=" true"
|
||||||
|
(pageChange)="pageChanged($event)"></pagination-controls>
|
||||||
|
|
||||||
|
<!-- Showing total results with improved styling -->
|
||||||
|
<div class="align-self-center text-muted mt-2 mt-md-0">
|
||||||
|
<small>
|
||||||
|
Showing
|
||||||
|
<strong>{{ (pageNumber - 1) * pageSize + 1 }} - {{ pageNumber * pageSize > totalRecord ? totalRecord : pageNumber * pageSize }}</strong>
|
||||||
|
of <strong>{{ totalRecord }}</strong> results
|
||||||
|
</small>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -20,22 +20,27 @@ export class VsDuelComponent implements OnInit {
|
|||||||
private readonly _tokenService: JwtTokenService = inject(JwtTokenService);
|
private readonly _tokenService: JwtTokenService = inject(JwtTokenService);
|
||||||
private readonly _modalService : NgbModal = inject(NgbModal);
|
private readonly _modalService : NgbModal = inject(NgbModal);
|
||||||
private readonly _vsDuelService: VsDuelService = inject(VsDuelService);
|
private readonly _vsDuelService: VsDuelService = inject(VsDuelService);
|
||||||
public readonly _router: Router = inject(Router);
|
private readonly _router: Router = inject(Router);
|
||||||
|
|
||||||
|
private allianceId = this._tokenService.getAllianceId()!;
|
||||||
|
|
||||||
public currentDate: Date = new Date();
|
public currentDate: Date = new Date();
|
||||||
public vsDuels: VsDuelModel[] = [];
|
public vsDuels: VsDuelModel[] = [];
|
||||||
public page: number = 1;
|
|
||||||
public currentWeekDuelExists: boolean = false;
|
public currentWeekDuelExists: boolean = false;
|
||||||
|
|
||||||
|
public totalRecord: number = 0;
|
||||||
|
public pageNumber: number = 1;
|
||||||
|
public pageSize: number = 10
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.getVsDuels(this._tokenService.getAllianceId()!, 10);
|
this.getVsDuels();
|
||||||
}
|
}
|
||||||
|
|
||||||
onCreateEvent() {
|
onCreateEvent() {
|
||||||
const vsDuel: VsDuelModel = {
|
const vsDuel: VsDuelModel = {
|
||||||
eventDate: new Date(),
|
eventDate: new Date(),
|
||||||
opponentName: '',
|
opponentName: '',
|
||||||
allianceId: this._tokenService.getAllianceId()!,
|
allianceId: this.allianceId,
|
||||||
id: '',
|
id: '',
|
||||||
won: false,
|
won: false,
|
||||||
opponentPower: 0,
|
opponentPower: 0,
|
||||||
@ -57,7 +62,7 @@ export class VsDuelComponent implements OnInit {
|
|||||||
modalRef.closed.subscribe({
|
modalRef.closed.subscribe({
|
||||||
next: ((response: VsDuelModel) => {
|
next: ((response: VsDuelModel) => {
|
||||||
if (response) {
|
if (response) {
|
||||||
this.getVsDuels(response.allianceId, 10);
|
this.resetAndGetVsDuels();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -89,7 +94,7 @@ export class VsDuelComponent implements OnInit {
|
|||||||
title: "Deleted!",
|
title: "Deleted!",
|
||||||
text: "VS-Duel has been deleted",
|
text: "VS-Duel has been deleted",
|
||||||
icon: "success"
|
icon: "success"
|
||||||
}).then(_ => this.getVsDuels(vsDuel.allianceId, 10));
|
}).then(_ => this.resetAndGetVsDuels());
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
error: (error: Error) => {
|
error: (error: Error) => {
|
||||||
@ -100,20 +105,31 @@ export class VsDuelComponent implements OnInit {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private getVsDuels(allianceId: string, take: number) {
|
private getVsDuels() {
|
||||||
this.vsDuels = []
|
this.vsDuels = []
|
||||||
this.currentWeekDuelExists = false;
|
this.currentWeekDuelExists = false;
|
||||||
this._vsDuelService.getAllianceVsDuels(allianceId, take).subscribe({
|
this._vsDuelService.getAllianceVsDuels(this.allianceId, this.pageNumber, this.pageSize).subscribe({
|
||||||
next: ((response) => {
|
next: ((response) => {
|
||||||
if (response) {
|
if (response.data) {
|
||||||
response.forEach((vsDuel: VsDuelModel) => {
|
response.data.forEach((vsDuel: VsDuelModel) => {
|
||||||
if (this._weekPipe.transform(vsDuel.eventDate) === this._weekPipe.transform(new Date())) {
|
if (this._weekPipe.transform(vsDuel.eventDate) === this._weekPipe.transform(new Date())) {
|
||||||
this.currentWeekDuelExists = true;
|
this.currentWeekDuelExists = true;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
this.vsDuels = response;
|
this.vsDuels = response.data;
|
||||||
|
this.totalRecord = response.totalRecords;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pageChanged(event: number) {
|
||||||
|
this.pageNumber = event;
|
||||||
|
this.getVsDuels();
|
||||||
|
}
|
||||||
|
|
||||||
|
resetAndGetVsDuels() {
|
||||||
|
this.pageNumber = 1;
|
||||||
|
this.getVsDuels();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,6 +14,7 @@
|
|||||||
<h5 class="card-title">Level: <span class="text-primary">{{zombieSiegeDetail.level}}</span></h5>
|
<h5 class="card-title">Level: <span class="text-primary">{{zombieSiegeDetail.level}}</span></h5>
|
||||||
<p class="card-text">Alliance size: <span class="text-primary">{{zombieSiegeDetail.allianceSize}}</span></p>
|
<p class="card-text">Alliance size: <span class="text-primary">{{zombieSiegeDetail.allianceSize}}</span></p>
|
||||||
<p class="card-text">Wave 20 Survivor: <span class="text-primary">{{zombieSiegeDetail.totalLevel20Players}}</span></p>
|
<p class="card-text">Wave 20 Survivor: <span class="text-primary">{{zombieSiegeDetail.totalLevel20Players}}</span></p>
|
||||||
|
<p class="card-text">Total Waves Survived: <span class="text-primary">{{zombieSiegeDetail.totalWavesSurvived}}</span> </p>
|
||||||
<hr>
|
<hr>
|
||||||
<div>
|
<div>
|
||||||
<p class="card-text">Creator: <span class="text-primary">{{zombieSiegeDetail.createdBy}}</span></p>
|
<p class="card-text">Creator: <span class="text-primary">{{zombieSiegeDetail.createdBy}}</span></p>
|
||||||
|
|||||||
@ -38,7 +38,8 @@
|
|||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<div class="form-floating mb-3 is-invalid">
|
<div class="form-floating mb-3 is-invalid">
|
||||||
<input type="number" class="form-control" id="allianceSize" placeholder="allianceSize" formControlName="allianceSize">
|
<input type="number" class="form-control" id="allianceSize" placeholder="allianceSize"
|
||||||
|
formControlName="allianceSize">
|
||||||
<label for="level">allianceSize</label>
|
<label for="level">allianceSize</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -48,21 +49,25 @@
|
|||||||
</div>
|
</div>
|
||||||
} @else {
|
} @else {
|
||||||
<div class="d-flex justify-content-center">
|
<div class="d-flex justify-content-center">
|
||||||
<p><span class="fw-bold text-warning">{{playerParticipated.length}}</span> player(s) selected</p>
|
<p><span class="fw-bold text-warning">{{ playerParticipated.length }}</span> player(s) selected</p>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
||||||
<div class="d-grid gap-2 col-6 mx-auto">
|
<div class="d-grid gap-2 col-6 mx-auto">
|
||||||
<button (click)="onAddParticipants()" class="btn btn-primary" type="button">{{isUpdate || playerParticipated.length > 0 ? 'Update Participants' : 'Add Participants'}}</button>
|
<button (click)="onAddParticipants()" class="btn btn-primary"
|
||||||
|
type="button">{{ isUpdate || playerParticipated.length > 0 ? 'Update Participants' : 'Add Participants' }}
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="d-flex justify-content-between">
|
<div class="d-flex justify-content-between">
|
||||||
<button (click)="onCancel()" type="button" class="btn btn-warning">Cancel</button>
|
<button (click)="onCancel()" type="button" class="btn btn-warning">Cancel</button>
|
||||||
<button [disabled]="zombieSiegeForm.invalid || playerParticipated.length <= 0" (click)="onSubmit()" type="submit" class="btn btn-success">{{isUpdate ? 'Update': 'Create'}}</button>
|
<button [disabled]="zombieSiegeForm.invalid || playerParticipated.length <= 0" (click)="onSubmit()"
|
||||||
|
type="submit" class="btn btn-success">{{ isUpdate ? 'Update' : 'Create' }}
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
}
|
}
|
||||||
|
|
||||||
@if(!isCreateZombieSiege) {
|
@if (!isCreateZombieSiege) {
|
||||||
@if (zombieSieges.length > 0) {
|
@if (zombieSieges.length > 0) {
|
||||||
<div class="table-responsive mt-5">
|
<div class="table-responsive mt-5">
|
||||||
<table class="table table-striped table-bordered">
|
<table class="table table-striped table-bordered">
|
||||||
@ -72,29 +77,39 @@
|
|||||||
<th scope="col">Level</th>
|
<th scope="col">Level</th>
|
||||||
<th scope="col">Alliance Size</th>
|
<th scope="col">Alliance Size</th>
|
||||||
<th scope="col">Survived 20 waves</th>
|
<th scope="col">Survived 20 waves</th>
|
||||||
|
<th scope="col">Total Waves Survived</th>
|
||||||
<th scope="col">Creator</th>
|
<th scope="col">Creator</th>
|
||||||
<th scope="col">Action</th>
|
<th scope="col">Action</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@for (zombieSiege of zombieSieges; track zombieSiege.id) {
|
@for (zombieSiege of zombieSieges | paginate: {
|
||||||
|
id: 'zombieSiegeTable',
|
||||||
|
itemsPerPage: pageSize,
|
||||||
|
totalItems: totalRecord,
|
||||||
|
currentPage: pageNumber
|
||||||
|
}; track zombieSiege.id) {
|
||||||
<tr class="">
|
<tr class="">
|
||||||
<td>{{zombieSiege.eventDate | date: 'dd.MM.yyyy'}}</td>
|
<td>{{ zombieSiege.eventDate | date: 'dd.MM.yyyy' }}</td>
|
||||||
<td>{{zombieSiege.level}}</td>
|
<td>{{ zombieSiege.level }}</td>
|
||||||
<td>{{zombieSiege.allianceSize}}</td>
|
<td>{{ zombieSiege.allianceSize }}</td>
|
||||||
<td>{{zombieSiege.totalLevel20Players}}
|
<td>{{ zombieSiege.totalLevel20Players }}
|
||||||
@if (zombieSiege.totalLevel20Players < 20) {
|
@if (zombieSiege.totalLevel20Players < 20) {
|
||||||
<i class="ps-3 bi bi-emoji-frown-fill text-danger"></i>
|
<i class="ps-3 bi bi-emoji-frown-fill text-danger"></i>
|
||||||
} @else {
|
} @else {
|
||||||
<i class="ps-3 bi bi-emoji-smile-fill text-success"></i>
|
<i class="ps-3 bi bi-emoji-smile-fill text-success"></i>
|
||||||
}
|
}
|
||||||
</td>
|
</td>
|
||||||
<td>{{zombieSiege.createdBy}}</td>
|
<td>{{ zombieSiege.totalWavesSurvived }}</td>
|
||||||
|
<td>{{ zombieSiege.createdBy }}</td>
|
||||||
<td>
|
<td>
|
||||||
<div class="d-flex gap-3 justify-content-around">
|
<div class="d-flex gap-3 justify-content-around">
|
||||||
<i ngbTooltip="Show details" placement="auto" (click)="onGoToZombieSiegeDetail(zombieSiege)" class="bi custom-info-icon bi-info-circle-fill"></i>
|
<i ngbTooltip="Show details" placement="auto" (click)="onGoToZombieSiegeDetail(zombieSiege)"
|
||||||
<i ngbTooltip="Edit" placement="auto" (click)="onEditZombieSiege(zombieSiege)" class="bi custom-edit-icon bi-pencil-fill"></i>
|
class="bi custom-info-icon bi-info-circle-fill"></i>
|
||||||
<i ngbTooltip="Delete" placement="auto" (click)="onDeleteZombieSiege(zombieSiege)" class="bi custom-delete-icon bi-trash3"></i>
|
<i ngbTooltip="Edit" placement="auto" (click)="onEditZombieSiege(zombieSiege)"
|
||||||
|
class="bi custom-edit-icon bi-pencil-fill"></i>
|
||||||
|
<i ngbTooltip="Delete" placement="auto" (click)="onDeleteZombieSiege(zombieSiege)"
|
||||||
|
class="bi custom-delete-icon bi-trash3"></i>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -102,6 +117,20 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- Pagination Controls -->
|
||||||
|
<div class="d-flex justify-content-between mt-3 flex-column flex-md-row">
|
||||||
|
<pagination-controls class="custom-pagination" [id]="'zombieSiegeTable'" [responsive]="true" [autoHide]=" true"
|
||||||
|
(pageChange)="pageChanged($event)"></pagination-controls>
|
||||||
|
|
||||||
|
<!-- Showing total results with improved styling -->
|
||||||
|
<div class="align-self-center text-muted mt-2 mt-md-0">
|
||||||
|
<small>
|
||||||
|
Showing
|
||||||
|
<strong>{{ (pageNumber - 1) * pageSize + 1 }} - {{ pageNumber * pageSize > totalRecord ? totalRecord : pageNumber * pageSize }}</strong>
|
||||||
|
of <strong>{{ totalRecord }}</strong> results
|
||||||
|
</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
} @else {
|
} @else {
|
||||||
<div class="alert alert-secondary text-center mt-5" role="alert">
|
<div class="alert alert-secondary text-center mt-5" role="alert">
|
||||||
No saved zombie sieges
|
No saved zombie sieges
|
||||||
|
|||||||
@ -18,11 +18,12 @@ import {ZombieSiegeParticipantService} from "../../services/zombie-siege-partici
|
|||||||
import Swal from "sweetalert2";
|
import Swal from "sweetalert2";
|
||||||
import {Router} from "@angular/router";
|
import {Router} from "@angular/router";
|
||||||
import {forkJoin, Observable} from "rxjs";
|
import {forkJoin, Observable} from "rxjs";
|
||||||
|
import {PagedResponseModel} from "../../models/pagedResponse.model";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-zombie-siege',
|
selector: 'app-zombie-siege',
|
||||||
templateUrl: './zombie-siege.component.html',
|
templateUrl: './zombie-siege.component.html',
|
||||||
styleUrl: './zombie-siege.component.css'
|
styleUrl: './zombie-siege.component.css',
|
||||||
})
|
})
|
||||||
export class ZombieSiegeComponent implements OnInit {
|
export class ZombieSiegeComponent implements OnInit {
|
||||||
|
|
||||||
@ -36,6 +37,10 @@ export class ZombieSiegeComponent implements OnInit {
|
|||||||
|
|
||||||
private allianceId: string = this._tokenService.getAllianceId()!;
|
private allianceId: string = this._tokenService.getAllianceId()!;
|
||||||
|
|
||||||
|
public totalRecord: number = 0;
|
||||||
|
public pageNumber: number = 1;
|
||||||
|
public pageSize: number = 10;
|
||||||
|
|
||||||
public isCreateZombieSiege: boolean = false;
|
public isCreateZombieSiege: boolean = false;
|
||||||
public playerSelected: boolean = false;
|
public playerSelected: boolean = false;
|
||||||
public zombieSiegeForm!: FormGroup;
|
public zombieSiegeForm!: FormGroup;
|
||||||
@ -51,14 +56,15 @@ export class ZombieSiegeComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.getZombieSieges(10);
|
this.getZombieSieges();
|
||||||
}
|
}
|
||||||
|
|
||||||
getZombieSieges(limit: number) {
|
getZombieSieges() {
|
||||||
this._zombieSiegeService.getAllianceZombieSieges(this.allianceId, limit).subscribe({
|
this._zombieSiegeService.getAllianceZombieSieges(this.allianceId, this.pageNumber, this.pageSize).subscribe({
|
||||||
next: ((response: any) => {
|
next: ((response: PagedResponseModel<ZombieSiegeModel>) => {
|
||||||
if (response) {
|
if (response) {
|
||||||
this.zombieSieges = response;
|
this.zombieSieges = response.data;
|
||||||
|
this.totalRecord = response.totalRecords;
|
||||||
} else {
|
} else {
|
||||||
this.zombieSieges = [];
|
this.zombieSieges = [];
|
||||||
}
|
}
|
||||||
@ -162,7 +168,7 @@ export class ZombieSiegeComponent implements OnInit {
|
|||||||
title: "Deleted!",
|
title: "Deleted!",
|
||||||
text: "Zombie Siege has been deleted",
|
text: "Zombie Siege has been deleted",
|
||||||
icon: "success"
|
icon: "success"
|
||||||
}).then(_ => this.getZombieSieges(10));
|
}).then(_ => this.resetAndGetZombieSieges());
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
error: (error: Error) => {
|
error: (error: Error) => {
|
||||||
@ -218,7 +224,7 @@ export class ZombieSiegeComponent implements OnInit {
|
|||||||
this._zombieSiegeParticipantService.insertZombieSiegeParticipants(createZombieSiegeParticipants).subscribe({
|
this._zombieSiegeParticipantService.insertZombieSiegeParticipants(createZombieSiegeParticipants).subscribe({
|
||||||
next: (() => {
|
next: (() => {
|
||||||
this.onCancel();
|
this.onCancel();
|
||||||
this.getZombieSieges(10);
|
this.resetAndGetZombieSieges()
|
||||||
this.playerParticipated = [];
|
this.playerParticipated = [];
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
@ -246,7 +252,7 @@ export class ZombieSiegeComponent implements OnInit {
|
|||||||
if (zombieSiegeParticipants.length <= 0) {
|
if (zombieSiegeParticipants.length <= 0) {
|
||||||
this._toastr.success('Successfully updated!', 'Successfully');
|
this._toastr.success('Successfully updated!', 'Successfully');
|
||||||
this.onCancel();
|
this.onCancel();
|
||||||
this.getZombieSieges(10);
|
this.resetAndGetZombieSieges();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const requests: Observable<ZombieSiegeParticipantModel>[] = [];
|
const requests: Observable<ZombieSiegeParticipantModel>[] = [];
|
||||||
@ -260,9 +266,19 @@ export class ZombieSiegeComponent implements OnInit {
|
|||||||
if (response) {
|
if (response) {
|
||||||
this._toastr.success('Successfully updated!', 'Successfully');
|
this._toastr.success('Successfully updated!', 'Successfully');
|
||||||
this.onCancel();
|
this.onCancel();
|
||||||
this.getZombieSieges(10);
|
this.resetAndGetZombieSieges();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pageChanged(event: number) {
|
||||||
|
this.pageNumber = event;
|
||||||
|
this.getZombieSieges()
|
||||||
|
}
|
||||||
|
|
||||||
|
resetAndGetZombieSieges() {
|
||||||
|
this.pageNumber = 1;
|
||||||
|
this.getZombieSieges();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import {environment} from "../../environments/environment";
|
|||||||
import {HttpClient, HttpParams} from "@angular/common/http";
|
import {HttpClient, HttpParams} from "@angular/common/http";
|
||||||
import {Observable} from "rxjs";
|
import {Observable} from "rxjs";
|
||||||
import {CreateCustomEventModel, CustomEventDetailModel, CustomEventModel} from "../models/customEvent.model";
|
import {CreateCustomEventModel, CustomEventDetailModel, CustomEventModel} from "../models/customEvent.model";
|
||||||
|
import {PagedResponseModel} from "../models/pagedResponse.model";
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root'
|
providedIn: 'root'
|
||||||
@ -13,10 +14,11 @@ export class CustomEventService {
|
|||||||
private readonly _httpClient: HttpClient = inject(HttpClient);
|
private readonly _httpClient: HttpClient = inject(HttpClient);
|
||||||
|
|
||||||
|
|
||||||
getAllianceCustomEvents(allianceId: string, take: number): Observable<CustomEventModel[]> {
|
getAllianceCustomEvents(allianceId: string, pageNumber: number, pageSize: number): Observable<PagedResponseModel<CustomEventModel>> {
|
||||||
let params = new HttpParams();
|
let params = new HttpParams();
|
||||||
params = params.append('take', take);
|
params = params.append('pageNumber', pageNumber);
|
||||||
return this._httpClient.get<CustomEventModel[]>(this._serviceUrl + 'Alliance/' + allianceId, {params: params});
|
params = params.append('pageSize', pageSize);
|
||||||
|
return this._httpClient.get<PagedResponseModel<CustomEventModel>>(this._serviceUrl + 'Alliance/' + allianceId, {params: params});
|
||||||
}
|
}
|
||||||
|
|
||||||
getCustomEventDetail(customEventId: string): Observable<CustomEventDetailModel> {
|
getCustomEventDetail(customEventId: string): Observable<CustomEventDetailModel> {
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import {environment} from "../../environments/environment";
|
|||||||
import {HttpClient, HttpParams} from "@angular/common/http";
|
import {HttpClient, HttpParams} from "@angular/common/http";
|
||||||
import {CreateDesertStormModel, DesertStormDetailModel, DesertStormModel} from "../models/desertStorm.model";
|
import {CreateDesertStormModel, DesertStormDetailModel, DesertStormModel} from "../models/desertStorm.model";
|
||||||
import {Observable} from "rxjs";
|
import {Observable} from "rxjs";
|
||||||
|
import {PagedResponseModel} from "../models/pagedResponse.model";
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root'
|
providedIn: 'root'
|
||||||
@ -16,10 +17,11 @@ export class DesertStormService {
|
|||||||
return this._httpClient.post<DesertStormModel>(this._serviceUrl, createModel);
|
return this._httpClient.post<DesertStormModel>(this._serviceUrl, createModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
getAllianceDesertStorms(allianceId: string, take: number): Observable<DesertStormModel[]> {
|
getAllianceDesertStorms(allianceId: string, pageNumber: number, pageSize: number): Observable<PagedResponseModel<DesertStormModel>> {
|
||||||
let params = new HttpParams();
|
let params = new HttpParams();
|
||||||
params = params.append('take', take);
|
params = params.append('pageNumber', pageNumber);
|
||||||
return this._httpClient.get<DesertStormModel[]>(this._serviceUrl + 'Alliance/' + allianceId, {params: params});
|
params = params.append('pageSize', pageSize);
|
||||||
|
return this._httpClient.get<PagedResponseModel<DesertStormModel>>(this._serviceUrl + 'Alliance/' + allianceId, {params: params});
|
||||||
}
|
}
|
||||||
|
|
||||||
getDesertStormDetail(desertStormId: string): Observable<DesertStormDetailModel> {
|
getDesertStormDetail(desertStormId: string): Observable<DesertStormDetailModel> {
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import {
|
|||||||
UpdateMarshalGuardModel
|
UpdateMarshalGuardModel
|
||||||
} from "../models/marshalGuard.model";
|
} from "../models/marshalGuard.model";
|
||||||
import {Observable} from "rxjs";
|
import {Observable} from "rxjs";
|
||||||
|
import {PagedResponseModel} from "../models/pagedResponse.model";
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root'
|
providedIn: 'root'
|
||||||
@ -26,10 +27,11 @@ export class MarshalGuardService {
|
|||||||
return this._httpClient.get<MarshalGuardDetailModel>(this._serviceUrl + 'GetMarshalGuardDetail/' + marshalGuardId);
|
return this._httpClient.get<MarshalGuardDetailModel>(this._serviceUrl + 'GetMarshalGuardDetail/' + marshalGuardId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public getAllianceMarshalGuards(allianceId: string, take: number): Observable<MarshalGuardModel[]> {
|
public getAllianceMarshalGuards(allianceId: string, pageNumber: number, pageSize: number): Observable<PagedResponseModel<MarshalGuardModel>> {
|
||||||
let params = new HttpParams();
|
let params = new HttpParams();
|
||||||
params = params.append('take', take);
|
params = params.append('pageNumber', pageNumber);
|
||||||
return this._httpClient.get<MarshalGuardModel[]>(this._serviceUrl + 'Alliance/' + allianceId, {params: params});
|
params = params.append('pageSize', pageSize);
|
||||||
|
return this._httpClient.get<PagedResponseModel<MarshalGuardModel>>(this._serviceUrl + 'Alliance/' + allianceId, {params: params});
|
||||||
}
|
}
|
||||||
|
|
||||||
public updateMarshalGuard(marshalGuardId: string, marshalGuard: UpdateMarshalGuardModel): Observable<MarshalGuardModel> {
|
public updateMarshalGuard(marshalGuardId: string, marshalGuard: UpdateMarshalGuardModel): Observable<MarshalGuardModel> {
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import {inject, Injectable} from '@angular/core';
|
import {inject, Injectable} from '@angular/core';
|
||||||
import {environment} from "../../environments/environment";
|
import {environment} from "../../environments/environment";
|
||||||
import {HttpClient} from "@angular/common/http";
|
import {HttpClient, HttpParams} from "@angular/common/http";
|
||||||
import {Observable} from "rxjs";
|
import {Observable} from "rxjs";
|
||||||
import {
|
import {
|
||||||
CreatePlayerModel,
|
CreatePlayerModel,
|
||||||
@ -9,6 +9,7 @@ import {
|
|||||||
UpdatePlayerModel
|
UpdatePlayerModel
|
||||||
} from "../models/player.model";
|
} from "../models/player.model";
|
||||||
import {ExcelImportResponseModel} from "../models/excelImportResponse.model";
|
import {ExcelImportResponseModel} from "../models/excelImportResponse.model";
|
||||||
|
import {PagedResponseModel} from "../models/pagedResponse.model";
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root'
|
providedIn: 'root'
|
||||||
@ -26,8 +27,11 @@ export class PlayerService {
|
|||||||
return this._httpClient.get<PlayerModel[]>(this._serviceUrl + 'Alliance/' + allianceId);
|
return this._httpClient.get<PlayerModel[]>(this._serviceUrl + 'Alliance/' + allianceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public getDismissedPlayers(allianceId: string): Observable<PlayerModel[]> {
|
public getDismissedPlayers(allianceId: string, pageNumber: number, pageSize: number): Observable<PagedResponseModel<PlayerModel>> {
|
||||||
return this._httpClient.get<PlayerModel[]>(this._serviceUrl + 'Alliance/dismiss/' + allianceId);
|
let params = new HttpParams();
|
||||||
|
params = params.append('pageNumber', pageNumber);
|
||||||
|
params = params.append('pageSize', pageSize);
|
||||||
|
return this._httpClient.get<PagedResponseModel<PlayerModel>>(this._serviceUrl + 'Alliance/dismiss/' + allianceId, {params: params});
|
||||||
}
|
}
|
||||||
|
|
||||||
public getDismissPlayerInformation(playerId: string): Observable<DismissPlayerInformationModel> {
|
public getDismissPlayerInformation(playerId: string): Observable<DismissPlayerInformationModel> {
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import {environment} from "../../environments/environment";
|
|||||||
import {HttpClient, HttpParams} from "@angular/common/http";
|
import {HttpClient, HttpParams} from "@angular/common/http";
|
||||||
import {Observable} from "rxjs";
|
import {Observable} from "rxjs";
|
||||||
import {VsDuelDetailModel, VsDuelModel} from "../models/vsDuel.model";
|
import {VsDuelDetailModel, VsDuelModel} from "../models/vsDuel.model";
|
||||||
|
import {PagedResponseModel} from "../models/pagedResponse.model";
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root'
|
providedIn: 'root'
|
||||||
@ -16,10 +17,11 @@ export class VsDuelService {
|
|||||||
return this._httpClient.get<VsDuelModel>(this._serviceUrl + vsDuelId);
|
return this._httpClient.get<VsDuelModel>(this._serviceUrl + vsDuelId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public getAllianceVsDuels(allianceId: string, take: number): Observable<VsDuelModel[]> {
|
public getAllianceVsDuels(allianceId: string, pageNumber: number, pageSize: number): Observable<PagedResponseModel<VsDuelModel>> {
|
||||||
let params = new HttpParams();
|
let params = new HttpParams();
|
||||||
params = params.append('take', take);
|
params = params.append('pageNumber', pageNumber);
|
||||||
return this._httpClient.get<VsDuelModel[]>(this._serviceUrl + 'Alliance/' + allianceId, {params: params});
|
params = params.append('pageSize', pageSize);
|
||||||
|
return this._httpClient.get<PagedResponseModel<VsDuelModel>>(this._serviceUrl + 'Alliance/' + allianceId, {params: params});
|
||||||
}
|
}
|
||||||
|
|
||||||
public getVsDuelDetail(vsDuelId: string): Observable<VsDuelDetailModel> {
|
public getVsDuelDetail(vsDuelId: string): Observable<VsDuelDetailModel> {
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import {environment} from "../../environments/environment";
|
|||||||
import {HttpClient, HttpParams} from "@angular/common/http";
|
import {HttpClient, HttpParams} from "@angular/common/http";
|
||||||
import {Observable} from "rxjs";
|
import {Observable} from "rxjs";
|
||||||
import {CreateZombieSiegeModel, ZombieSiegeDetailModel, ZombieSiegeModel} from "../models/zombieSiege.model";
|
import {CreateZombieSiegeModel, ZombieSiegeDetailModel, ZombieSiegeModel} from "../models/zombieSiege.model";
|
||||||
|
import {PagedResponseModel} from "../models/pagedResponse.model";
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root'
|
providedIn: 'root'
|
||||||
@ -16,10 +17,11 @@ export class ZombieSiegeService {
|
|||||||
return this._httpClient.get<ZombieSiegeDetailModel>(this._serviceUrl + 'GetZombieSiegeDetail/' + zombieSiegeId);
|
return this._httpClient.get<ZombieSiegeDetailModel>(this._serviceUrl + 'GetZombieSiegeDetail/' + zombieSiegeId);
|
||||||
}
|
}
|
||||||
|
|
||||||
getAllianceZombieSieges(allianceId: string, take: number): Observable<ZombieSiegeModel[]> {
|
getAllianceZombieSieges(allianceId: string, pageNumber: number, pageSize: number): Observable<PagedResponseModel<ZombieSiegeModel>> {
|
||||||
let params = new HttpParams();
|
let params = new HttpParams();
|
||||||
params = params.append('take', take);
|
params = params.append('pageNumber', pageNumber);
|
||||||
return this._httpClient.get<ZombieSiegeModel[]>(this._serviceUrl + 'Alliance/' + allianceId, {params: params});
|
params = params.append('pageSize', pageSize);
|
||||||
|
return this._httpClient.get<PagedResponseModel<ZombieSiegeModel>>(this._serviceUrl + 'Alliance/' + allianceId, {params: params});
|
||||||
}
|
}
|
||||||
|
|
||||||
createZombieSiege(createZombieSiege: CreateZombieSiegeModel): Observable<ZombieSiegeModel> {
|
createZombieSiege(createZombieSiege: CreateZombieSiegeModel): Observable<ZombieSiegeModel> {
|
||||||
|
|||||||
@ -22,6 +22,16 @@ html, body {
|
|||||||
color: #2ea805;
|
color: #2ea805;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.custom-pagination .ngx-pagination .current {
|
||||||
|
background: #6175d5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-pagination .ngx-pagination li {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
.custom-pagination .ngx-pagination li a{
|
.custom-pagination .ngx-pagination li a{
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user