コード例 #1
0
        public async void UnSubscribeBook()
        {
            var mockDb      = _repositoryMock as MockBookRepository <Domain.Entities.Subscription>;
            var subsciption = new Domain.Entities.Subscription(Guid.NewGuid(), Guid.NewGuid(), "Author");

            mockDb.Table.Add(subsciption.SubsciptionId, subsciption);

            var mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork.Setup(a => a.SaveAsync());
            var commandHandler = new UnSubscribeCommandHandler(_repositoryMock, mockUnitOfWork.Object);


            var command = new UnSubscribeCommand
            {
                SubcriptionId = subsciption.SubsciptionId
            };

            await commandHandler.HandleAsync(command);

            var dbCheck = _repositoryMock as MockBookRepository <Domain.Entities.Subscription>;

            var row = dbCheck.Table[subsciption.SubsciptionId];

            Assert.False(row.IsSubscribed);
        }
コード例 #2
0
    public async Task <Result <Guid> > Handle(UnSubscribeCommand command, CancellationToken cancellationToken)
    {
        var subscription = await _context.Subscriptions.Include(x => x.ChannelSubscriptions).FirstOrDefaultAsync(subscription => subscription.SubredditId == command.SubredditId && subscription.Sort == command.Sort, cancellationToken);

        if (subscription == null)
        {
            return((await Result.FailAsync("Not subscribed!")) as Result <Guid>);
        }

        var channel = subscription.ChannelSubscriptions.FirstOrDefault(subscription => subscription.GuildChannelId == command.ChannelId);

        if (channel == null)
        {
            return((await Result.FailAsync("Not subscribed!")) as Result <Guid>);
        }

        subscription.ChannelSubscriptions.Remove(channel);

        if (subscription.ChannelSubscriptions.Any())
        {
            _context.Subscriptions.Update(subscription);
        }
        else
        {
            _context.Subscriptions.Remove(subscription);
        }


        await _context.SaveChangesAsync(cancellationToken);

        return(await Result <Guid> .SuccessAsync(subscription.Id));
    }
コード例 #3
0
        public async Task <IActionResult> UnSubscribeCommand([FromBody] UnSubscribeDto value)
        {
            _logger.LogInformation("UnSubscribe for subriptionId:{0} ", value.SubcriptionId);
            var command = new UnSubscribeCommand {
                SubcriptionId = value.SubcriptionId
            };
            await _mediator.DispatchAsync(command);

            _logger.LogInformation("UnSubscribed for subriptionId:{0} ", value.SubcriptionId);
            return(Ok());
        }
コード例 #4
0
 public async Task <IActionResult> Unsubscribe(UnSubscribeCommand command)
 {
     return(Ok(await Mediator.Send(command)));
 }