Untitled
unknown
plain_text
3 years ago
1.9 kB
7
Indexable
using Ezrx.AccountIdentity.Application.Contract.Repositories;
using Ezrx.AccountIdentity.Common.Constants;
using Ezrx.AccountIdentity.Common.Exceptions;
using MediatR;
using Microsoft.EntityFrameworkCore;
namespace Ezrx.AccountIdentity.Application.Features.Accounts.Commands
{
public class LogoutCommand : IRequest<Unit>
{
public bool? isMobile { get; set; }
public Guid AccountId { get; set; }
public LogoutCommand(bool? _isMobile)
{
isMobile = _isMobile;
}
public class LogoutCommandHandler : IRequestHandler<LogoutCommand, Unit>
{
private readonly IApplicationDbContext _dbContext;
public LogoutCommandHandler(IApplicationDbContext dbContext)
{
_dbContext = dbContext;
}
public async Task<Unit> Handle(LogoutCommand request, CancellationToken cancellationToken)
{
var accountSetting = await _dbContext.AccountSettings
.Where(x => x.AccountId == request.AccountId)
.Where(x => x.LimitActive == true)
.FirstOrDefaultAsync();
if (accountSetting == null)
throw new BadRequestException(ApplicationConstant.DataNotFoundMessage);
if (request.isMobile.Value)
{
accountSetting.FCMToken = null;
}
else
{
accountSetting.FCMTokenWeb = null;
}
_dbContext.AccountSettings.Update(entity: accountSetting);
await _dbContext.SaveChangesAsync(cancellationToken);
return Unit.Value;
}
}
}
}
Editor is loading...