From 1db9fdf6d3bb4225e20f3dd6292b49c121e0015c Mon Sep 17 00:00:00 2001 From: asesidaa <1061472754@qq.com> Date: Mon, 13 Feb 2023 02:12:26 +0800 Subject: [PATCH] Update commands, add option to aggregate --- Application/Dto/AvatarDto.cs | 6 +-- .../Game/Card/CardDependencyAggregate.cs | 7 ++- .../Game/Card/CardRequestHandlerBase.cs | 9 +++- Application/Game/Card/Read/ReadAvatarQuery.cs | 9 ++-- .../Game/Card/Read/ReadCardBDataQuery.cs | 2 +- Application/Game/Card/Read/ReadCoinQuery.cs | 2 +- Application/Game/Card/Read/ReadCondQuery.cs | 2 +- .../Game/Card/Read/ReadEventRewardQuery.cs | 2 +- .../Game/Card/Read/ReadGetMessageQuery.cs | 2 +- Application/Game/Card/Read/ReadItemQuery.cs | 13 +++--- .../Game/Card/Read/ReadMusicAouQuery.cs | 2 +- .../Game/Card/Read/ReadMusicExtraQuery.cs | 2 +- Application/Game/Card/Read/ReadMusicQuery.cs | 2 +- .../Game/Card/Read/ReadNavigatorQuery.cs | 5 ++- Application/Game/Card/Read/ReadSkinQuery.cs | 2 +- .../Game/Card/Read/ReadSoundEffectQuery.cs | 2 +- Application/Game/Card/Read/ReadTitleQuery.cs | 2 +- .../Game/Card/Read/ReadTotalTrophyQuery.cs | 2 +- .../Game/Card/Read/ReadUnlockKeynumQuery.cs | 2 +- .../Game/Card/Read/ReadUnlockRewardQuery.cs | 2 +- .../Interfaces/ICardDependencyAggregate.cs | 6 ++- MainServer/Controllers/Game/CardController.cs | 45 ++++++++++++------- 22 files changed, 76 insertions(+), 52 deletions(-) diff --git a/Application/Dto/AvatarDto.cs b/Application/Dto/AvatarDto.cs index edad571..583a066 100644 --- a/Application/Dto/AvatarDto.cs +++ b/Application/Dto/AvatarDto.cs @@ -23,10 +23,8 @@ public class AvatarDto public string Modified { get; set; } = string.Empty; [XmlElement("new_flag")] - [DefaultValue(1)] - public int NewFlag { get; set; } = 1; + public int NewFlag { get; set; } [XmlElement("use_flag")] - [DefaultValue(1)] - public int UseFlag { get; set; } = 1; + public int UseFlag { get; set; } } \ No newline at end of file diff --git a/Application/Game/Card/CardDependencyAggregate.cs b/Application/Game/Card/CardDependencyAggregate.cs index 1f9d580..9f65917 100644 --- a/Application/Game/Card/CardDependencyAggregate.cs +++ b/Application/Game/Card/CardDependencyAggregate.cs @@ -1,15 +1,20 @@ using Application.Interfaces; +using Domain.Config; +using Microsoft.Extensions.Options; namespace Application.Game.Card; public class CardDependencyAggregate : ICardDependencyAggregate { - public CardDependencyAggregate(ICardDbContext cardDbContext, IMusicDbContext musicDbContext) + public CardDependencyAggregate(ICardDbContext cardDbContext, IMusicDbContext musicDbContext, IOptions options) { CardDbContext = cardDbContext; MusicDbContext = musicDbContext; + Options = options; } public ICardDbContext CardDbContext { get; } public IMusicDbContext MusicDbContext { get; } + + public IOptions Options { get; } } \ No newline at end of file diff --git a/Application/Game/Card/CardRequestHandlerBase.cs b/Application/Game/Card/CardRequestHandlerBase.cs index 5e0d925..b8f1bcb 100644 --- a/Application/Game/Card/CardRequestHandlerBase.cs +++ b/Application/Game/Card/CardRequestHandlerBase.cs @@ -1,20 +1,25 @@ using Application.Common.Models; using Application.Interfaces; +using Domain.Config; using MediatR; using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; namespace Application.Game.Card; public abstract class CardRequestHandlerBase: IRequestHandlerWrapper where TIn : IRequestWrapper { - public ICardDbContext CardDbContext { get; } - public IMusicDbContext MusicDbContext { get; } + protected ICardDbContext CardDbContext { get; } + protected IMusicDbContext MusicDbContext { get; } + + protected GameConfig Config { get; } public CardRequestHandlerBase(ICardDependencyAggregate aggregate) { CardDbContext = aggregate.CardDbContext; MusicDbContext = aggregate.MusicDbContext; + Config = aggregate.Options.Value; } public abstract Task> Handle(TIn request, CancellationToken cancellationToken); diff --git a/Application/Game/Card/Read/ReadAvatarQuery.cs b/Application/Game/Card/Read/ReadAvatarQuery.cs index 27381e3..3211ad4 100644 --- a/Application/Game/Card/Read/ReadAvatarQuery.cs +++ b/Application/Game/Card/Read/ReadAvatarQuery.cs @@ -15,17 +15,14 @@ public record ReadAvatarQuery(long CardId) : IRequestWrapper; public class ReadAvatarQueryHandler : CardRequestHandlerBase { private const string AVATAR_XPATH = "/root/avatar/record"; - - private readonly GameConfig config; - - public ReadAvatarQueryHandler(ICardDependencyAggregate aggregate, IOptions options) : base(aggregate) + + public ReadAvatarQueryHandler(ICardDependencyAggregate aggregate) : base(aggregate) { - config = options.Value; } public override Task> Handle(ReadAvatarQuery request, CancellationToken cancellationToken) { - var count = config.AvatarCount; + var count = Config.AvatarCount; var list = new List(); for (int i = 0; i < count; i++) { diff --git a/Application/Game/Card/Read/ReadCardBDataQuery.cs b/Application/Game/Card/Read/ReadCardBDataQuery.cs index 0b21202..6d62726 100644 --- a/Application/Game/Card/Read/ReadCardBDataQuery.cs +++ b/Application/Game/Card/Read/ReadCardBDataQuery.cs @@ -7,7 +7,7 @@ using Microsoft.EntityFrameworkCore; namespace Application.Game.Card.Read; -public record ReadCardBDataQuery(long CardId, string Data) : IRequestWrapper; +public record ReadCardBDataQuery(long CardId) : IRequestWrapper; public class ReadCardBDataQueryHandler : CardRequestHandlerBase { diff --git a/Application/Game/Card/Read/ReadCoinQuery.cs b/Application/Game/Card/Read/ReadCoinQuery.cs index 12895ff..105ce07 100644 --- a/Application/Game/Card/Read/ReadCoinQuery.cs +++ b/Application/Game/Card/Read/ReadCoinQuery.cs @@ -7,7 +7,7 @@ using Microsoft.EntityFrameworkCore; namespace Application.Game.Card.Read; -public record ReadCoinQuery(long CardId, string Data) : IRequestWrapper; +public record ReadCoinQuery(long CardId) : IRequestWrapper; public class ReadCoinQueryHandler : CardRequestHandlerBase { diff --git a/Application/Game/Card/Read/ReadCondQuery.cs b/Application/Game/Card/Read/ReadCondQuery.cs index 55b7294..97b06ff 100644 --- a/Application/Game/Card/Read/ReadCondQuery.cs +++ b/Application/Game/Card/Read/ReadCondQuery.cs @@ -7,7 +7,7 @@ using Microsoft.EntityFrameworkCore; namespace Application.Game.Card.Read; -public record ReadCondQuery(long CardId, string Data) : IRequestWrapper; +public record ReadCondQuery(long CardId) : IRequestWrapper; public class ReadCondQueryHandler : CardRequestHandlerBase { diff --git a/Application/Game/Card/Read/ReadEventRewardQuery.cs b/Application/Game/Card/Read/ReadEventRewardQuery.cs index 894dd26..99e5180 100644 --- a/Application/Game/Card/Read/ReadEventRewardQuery.cs +++ b/Application/Game/Card/Read/ReadEventRewardQuery.cs @@ -7,7 +7,7 @@ using Microsoft.EntityFrameworkCore; namespace Application.Game.Card.Read; -public record ReadEventRewardQuery(long CardId, string Data) : IRequestWrapper; +public record ReadEventRewardQuery(long CardId) : IRequestWrapper; public class ReadEventRewardQueryHandler : CardRequestHandlerBase { diff --git a/Application/Game/Card/Read/ReadGetMessageQuery.cs b/Application/Game/Card/Read/ReadGetMessageQuery.cs index 598231d..4038892 100644 --- a/Application/Game/Card/Read/ReadGetMessageQuery.cs +++ b/Application/Game/Card/Read/ReadGetMessageQuery.cs @@ -7,7 +7,7 @@ using Microsoft.EntityFrameworkCore; namespace Application.Game.Card.Read; -public record ReadGetMessageQuery(long CardId, string Data) : IRequestWrapper; +public record ReadGetMessageQuery(long CardId) : IRequestWrapper; public class ReadGetMessageQueryHandler : CardRequestHandlerBase { diff --git a/Application/Game/Card/Read/ReadItemQuery.cs b/Application/Game/Card/Read/ReadItemQuery.cs index 33a6b06..aa88156 100644 --- a/Application/Game/Card/Read/ReadItemQuery.cs +++ b/Application/Game/Card/Read/ReadItemQuery.cs @@ -14,21 +14,18 @@ public record ReadItemQuery(long CardId) : IRequestWrapper; public class ReadItemQueryHandler : CardRequestHandlerBase { private const string ITEM_XPATH = "/root/item/record"; - - private readonly GameConfig config; - - public ReadItemQueryHandler(ICardDependencyAggregate aggregate, IOptions options) : base(aggregate) + + public ReadItemQueryHandler(ICardDependencyAggregate aggregate) : base(aggregate) { - config = options.Value; } public override Task> Handle(ReadItemQuery request, CancellationToken cancellationToken) { - var count = config.AvatarCount; + var count = Config.ItemCount; var list = new List(); for (int i = 0; i < count; i++) { - var avatar = new ItemDto() + var item = new ItemDto { Id = i, CardId = request.CardId, @@ -39,7 +36,7 @@ public class ReadItemQueryHandler : CardRequestHandlerBase; +public record ReadMusicAouQuery(long CardId) : IRequestWrapper; public class ReadMusicAouQueryHandler : CardRequestHandlerBase { diff --git a/Application/Game/Card/Read/ReadMusicExtraQuery.cs b/Application/Game/Card/Read/ReadMusicExtraQuery.cs index 08bebd8..6814b44 100644 --- a/Application/Game/Card/Read/ReadMusicExtraQuery.cs +++ b/Application/Game/Card/Read/ReadMusicExtraQuery.cs @@ -7,7 +7,7 @@ using Microsoft.EntityFrameworkCore; namespace Application.Game.Card.Read; -public record ReadMusicExtraQuery(long CardId, string Data) : IRequestWrapper; +public record ReadMusicExtraQuery(long CardId) : IRequestWrapper; public class ReadMusicExtraQueryHandler : CardRequestHandlerBase { diff --git a/Application/Game/Card/Read/ReadMusicQuery.cs b/Application/Game/Card/Read/ReadMusicQuery.cs index e0aa78b..047a789 100644 --- a/Application/Game/Card/Read/ReadMusicQuery.cs +++ b/Application/Game/Card/Read/ReadMusicQuery.cs @@ -7,7 +7,7 @@ using Microsoft.EntityFrameworkCore; namespace Application.Game.Card.Read; -public record ReadMusicQuery(long CardId, string Data) : IRequestWrapper; +public record ReadMusicQuery(long CardId) : IRequestWrapper; public class ReadMusicQueryHandler : CardRequestHandlerBase { diff --git a/Application/Game/Card/Read/ReadNavigatorQuery.cs b/Application/Game/Card/Read/ReadNavigatorQuery.cs index d46a980..e0a9cd9 100644 --- a/Application/Game/Card/Read/ReadNavigatorQuery.cs +++ b/Application/Game/Card/Read/ReadNavigatorQuery.cs @@ -1,16 +1,19 @@ using Application.Common.Extensions; using Application.Common.Models; using Application.Interfaces; +using Domain.Config; using Domain.Enums; using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Options; namespace Application.Game.Card.Read; -public record ReadNavigatorQuery(long CardId, string Data) : IRequestWrapper; +public record ReadNavigatorQuery(long CardId) : IRequestWrapper; public class ReadNavigatorQueryHandler : CardRequestHandlerBase { + public ReadNavigatorQueryHandler(ICardDependencyAggregate aggregate) : base(aggregate) { } diff --git a/Application/Game/Card/Read/ReadSkinQuery.cs b/Application/Game/Card/Read/ReadSkinQuery.cs index e9341a7..68516dd 100644 --- a/Application/Game/Card/Read/ReadSkinQuery.cs +++ b/Application/Game/Card/Read/ReadSkinQuery.cs @@ -7,7 +7,7 @@ using Microsoft.EntityFrameworkCore; namespace Application.Game.Card.Read; -public record ReadSkinQuery(long CardId, string Data) : IRequestWrapper; +public record ReadSkinQuery(long CardId) : IRequestWrapper; public class ReadSkinQueryHandler : CardRequestHandlerBase { diff --git a/Application/Game/Card/Read/ReadSoundEffectQuery.cs b/Application/Game/Card/Read/ReadSoundEffectQuery.cs index aa32bb3..197fb29 100644 --- a/Application/Game/Card/Read/ReadSoundEffectQuery.cs +++ b/Application/Game/Card/Read/ReadSoundEffectQuery.cs @@ -7,7 +7,7 @@ using Microsoft.EntityFrameworkCore; namespace Application.Game.Card.Read; -public record ReadSoundEffectQuery(long CardId, string Data) : IRequestWrapper; +public record ReadSoundEffectQuery(long CardId) : IRequestWrapper; public class ReadSoundEffectQueryHandler : CardRequestHandlerBase { diff --git a/Application/Game/Card/Read/ReadTitleQuery.cs b/Application/Game/Card/Read/ReadTitleQuery.cs index a754385..29eb4d5 100644 --- a/Application/Game/Card/Read/ReadTitleQuery.cs +++ b/Application/Game/Card/Read/ReadTitleQuery.cs @@ -7,7 +7,7 @@ using Microsoft.EntityFrameworkCore; namespace Application.Game.Card.Read; -public record ReadTitleQuery(long CardId, string Data) : IRequestWrapper; +public record ReadTitleQuery(long CardId) : IRequestWrapper; public class ReadTitleQueryHandler : CardRequestHandlerBase { diff --git a/Application/Game/Card/Read/ReadTotalTrophyQuery.cs b/Application/Game/Card/Read/ReadTotalTrophyQuery.cs index f7f0439..047cb2f 100644 --- a/Application/Game/Card/Read/ReadTotalTrophyQuery.cs +++ b/Application/Game/Card/Read/ReadTotalTrophyQuery.cs @@ -7,7 +7,7 @@ using Microsoft.EntityFrameworkCore; namespace Application.Game.Card.Read; -public record ReadTotalTrophyQuery(long CardId, string Data) : IRequestWrapper; +public record ReadTotalTrophyQuery(long CardId) : IRequestWrapper; public class ReadTotalTrophyQueryHandler : CardRequestHandlerBase { diff --git a/Application/Game/Card/Read/ReadUnlockKeynumQuery.cs b/Application/Game/Card/Read/ReadUnlockKeynumQuery.cs index 7120437..cdbeeda 100644 --- a/Application/Game/Card/Read/ReadUnlockKeynumQuery.cs +++ b/Application/Game/Card/Read/ReadUnlockKeynumQuery.cs @@ -7,7 +7,7 @@ using Microsoft.EntityFrameworkCore; namespace Application.Game.Card.Read; -public record ReadUnlockKeynumQuery(long CardId, string Data) : IRequestWrapper; +public record ReadUnlockKeynumQuery(long CardId) : IRequestWrapper; public class ReadUnlockKeynumQueryHandler : CardRequestHandlerBase { diff --git a/Application/Game/Card/Read/ReadUnlockRewardQuery.cs b/Application/Game/Card/Read/ReadUnlockRewardQuery.cs index acee326..d84ea28 100644 --- a/Application/Game/Card/Read/ReadUnlockRewardQuery.cs +++ b/Application/Game/Card/Read/ReadUnlockRewardQuery.cs @@ -7,7 +7,7 @@ using Microsoft.EntityFrameworkCore; namespace Application.Game.Card.Read; -public record ReadUnlockRewardQuery(long CardId, string Data) : IRequestWrapper; +public record ReadUnlockRewardQuery(long CardId) : IRequestWrapper; public class ReadUnlockRewardQueryHandler : CardRequestHandlerBase { diff --git a/Application/Interfaces/ICardDependencyAggregate.cs b/Application/Interfaces/ICardDependencyAggregate.cs index 6944404..4803b73 100644 --- a/Application/Interfaces/ICardDependencyAggregate.cs +++ b/Application/Interfaces/ICardDependencyAggregate.cs @@ -1,4 +1,6 @@ -using Microsoft.Extensions.Logging; +using Domain.Config; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; namespace Application.Interfaces; @@ -6,4 +8,6 @@ public interface ICardDependencyAggregate { ICardDbContext CardDbContext { get; } IMusicDbContext MusicDbContext { get; } + + IOptions Options { get; } } \ No newline at end of file diff --git a/MainServer/Controllers/Game/CardController.cs b/MainServer/Controllers/Game/CardController.cs index 0373da0..baaf4f5 100644 --- a/MainServer/Controllers/Game/CardController.cs +++ b/MainServer/Controllers/Game/CardController.cs @@ -5,7 +5,6 @@ using Application.Game.Card.Management; using Application.Game.Card.Read; using Application.Game.Card.Session; using Application.Game.Card.Write; -using Domain; using Domain.Enums; using Microsoft.AspNetCore.Mvc; using Throw; @@ -47,39 +46,55 @@ public class CardController : BaseController result = await Mediator.Send(new ReadAllCardDetailsQuery(request.CardId)); break; case CardRequestType.ReadCardBData: + result = await Mediator.Send(new ReadCardBDataQuery(request.CardId)); break; case CardRequestType.ReadAvatar: result = await Mediator.Send(new ReadAvatarQuery(request.CardId)); break; case CardRequestType.ReadItem: + result = await Mediator.Send(new ReadItemQuery(request.CardId)); break; case CardRequestType.ReadSkin: + result = await Mediator.Send(new ReadSkinQuery(request.CardId)); break; case CardRequestType.ReadTitle: - break; - case CardRequestType.ReadMusic: - break; - case CardRequestType.ReadEventReward: + result = await Mediator.Send(new ReadTitleQuery(request.CardId)); break; case CardRequestType.ReadNavigator: - break; - case CardRequestType.ReadMusicExtra: - break; - case CardRequestType.ReadMusicAou: - break; - case CardRequestType.ReadCoin: - break; - case CardRequestType.ReadUnlockReward: - break; - case CardRequestType.ReadUnlockKeynum: + result = await Mediator.Send(new ReadNavigatorQuery(request.CardId)); break; case CardRequestType.ReadSoundEffect: + result = await Mediator.Send(new ReadSoundEffectQuery(request.CardId)); + break; + case CardRequestType.ReadMusic: + result = await Mediator.Send(new ReadMusicQuery(request.CardId)); + break; + case CardRequestType.ReadMusicAou: + result = await Mediator.Send(new ReadMusicAouQuery(request.CardId)); + break; + case CardRequestType.ReadMusicExtra: + result = await Mediator.Send(new ReadMusicExtraQuery(request.CardId)); + break; + case CardRequestType.ReadEventReward: + result = await Mediator.Send(new ReadEventRewardQuery(request.CardId)); + break; + case CardRequestType.ReadCoin: + result = await Mediator.Send(new ReadCoinQuery(request.CardId)); + break; + case CardRequestType.ReadUnlockReward: + result = await Mediator.Send(new ReadUnlockRewardQuery(request.CardId)); + break; + case CardRequestType.ReadUnlockKeynum: + result = await Mediator.Send(new ReadUnlockKeynumQuery(request.CardId)); break; case CardRequestType.ReadGetMessage: + result = await Mediator.Send(new ReadGetMessageQuery(request.CardId)); break; case CardRequestType.ReadCond: + result = await Mediator.Send(new ReadCondQuery(request.CardId)); break; case CardRequestType.ReadTotalTrophy: + result = await Mediator.Send(new ReadTotalTrophyQuery(request.CardId)); break; case CardRequestType.GetSession: case CardRequestType.StartSession: