| 123456789101112131415161718192021222324252627282930313233343536 |
- using Application.Abstractions.Data;
- using Application.Abstractions.Messaging;
- using SharedKernel.Results;
- using Microsoft.EntityFrameworkCore;
- namespace Application.Features.Api.MyPage.UpdatePrivacySettings;
- internal sealed class Handler(IAppDbContext db) : ICommandHandler<Command, Result>
- {
- public async Task<Result> Handle(Command request, CancellationToken ct)
- {
- var approve = await db.MemberApprove.FirstOrDefaultAsync(a => a.MemberID == request.MemberID, ct);
- if (approve is null)
- {
- return Result.Failure(Error.NotFound("MyPage.MemberNotFound", "회원 정보를 찾을 수 없습니다."));
- }
- var now = DateTime.UtcNow;
- if (approve.IsRankingPublic != request.IsRankingPublic)
- {
- approve.IsRankingPublic = request.IsRankingPublic;
- approve.RankingPublicConsentAt = now;
- }
- if (approve.IsDonationPublic != request.IsDonationPublic)
- {
- approve.IsDonationPublic = request.IsDonationPublic;
- approve.DonationPublicConsentAt = now;
- }
- await db.SaveChangesAsync(ct);
- return Result.Success();
- }
- }
|