Esempio n. 1
0
        public async Task <Result <CommandResult> > Handle(UpdateCardCommand request, CancellationToken cancellationToken)
        {
            if (!request.IsValid())
            {
                await PublishValidationErrorsAsync(request);

                return(Result.Failure <CommandResult>(ApplicationMessages.Update_Failed));
            }


            var project = await _projectRepository.GetByIdAsync(request.Id);

            var exist = await _projectRepository.ExistByNameAsync(project.Id, request.Name);

            if (exist)
            {
                await _mediator.Publish(new DomainNotification("", ApplicationMessages.Name_Already_Exist));

                return(Result.Failure <CommandResult>(ApplicationMessages.Update_Failed));
            }

            project.SetName(request.Name);
            project.SetDescription(request.Description);
            project.SetType(request.Type);

            await _projectRepository.UpdateAsync(project);

            return(Result.Success(new CommandResult(project.Id, ApplicationMessages.Update_Success)));
        }
        public async Task <IActionResult> UpdateCardAsync([FromBody] UpdateCardCommand command)
        {
            if (command == null)
            {
                return(BadRequest());
            }

            var cardToUpdate = new Card
            {
                Id          = command.Id,
                Name        = command.Name,
                Description = command.Description
            };

            var updatedCard = await _cardsService.UpdateCardAsync(cardToUpdate);

            if (updatedCard == null)
            {
                return(NotFound());
            }

            var response = new CardResponse
            {
                Id          = updatedCard.Id,
                Name        = updatedCard.Name,
                Description = updatedCard.Description
            };

            return(Ok(response));
        }
        public async Task Given_A_Valid_Card_ISuccessful_Should_Be_True()
        {
            // Arrange
            var command = new UpdateCardCommand
            {
                Card = new CardInputModel
                {
                    CardType    = YgoCardType.Spell,
                    Name        = "Monster Reborn",
                    Description = "Special Summon a monster from any graveyard",
                    ImageUrl    = new Uri("http://cardimageurl.com/card/image.jpg")
                }
            };

            _cardService.Update(Arg.Any <CardModel>()).Returns(new Card {
                Id = 23424
            });
            _settings.Value.Returns(new AppSettings
            {
                CardImageFolderPath = "C:/cards/images"
            });


            // Act
            var result = await _sut.Handle(command, CancellationToken.None);

            // Assert
            result.IsSuccessful.Should().BeTrue();
        }
        public Task <bool> Handle(UpdateCardCommand message, CancellationToken cancellationToken)
        {
            if (!message.IsValid())
            {
                NotifyValidationErrors(message);
                return(Task.FromResult(false));
            }

            var card         = new Card(message.Id, message.IdCustomer, message.IdBrand, message.IdCardType, message.CardNumber, message.ExpirationDate, message.HasPassword, message.Password, message.Limit, message.LimitAvailable, message.Attempts, message.Blocked);
            var existingCard = _cardRepository.GetByCardNumber(card.CardNumber);

            if (existingCard != null && existingCard.Id != card.Id)
            {
                if (!existingCard.Equals(card))
                {
                    Bus.RaiseEvent(new DomainNotification(message.MessageType, "The card number has already been taken."));
                    return(Task.FromResult(false));
                }
            }

            _cardRepository.Update(card);

            if (Commit())
            {
                Bus.RaiseEvent(new CardUpdatedEvent(message.Id, message.IdCustomer, message.IdBrand, message.IdCardType, message.CardNumber, message.ExpirationDate, message.HasPassword, StringCipher.Encrypt(message.Password, "StefanSilva@#@Stone##2019"), message.Limit, message.LimitAvailable, message.Attempts, message.Blocked));
            }

            return(Task.FromResult(true));
        }
        public async Task Given_A_Valid_Card_With_An_ImageUrl_Should_Invoke_DownloadImageCommand()
        {
            // Arrange
            var command = new UpdateCardCommand
            {
                Card = new CardInputModel
                {
                    CardType    = YgoCardType.Spell,
                    Name        = "Monster Reborn",
                    Description = "Special Summon a monster from any graveyard",
                    ImageUrl    = new Uri("http://cardimageurl.com/card/image.jpg")
                }
            };

            _cardService.Update(Arg.Any <CardModel>()).Returns(new Card {
                Id = 23424
            });
            _settings.Value.Returns(new AppSettings
            {
                CardImageFolderPath = "C:/cards/images"
            });

            // Act
            await _sut.Handle(command, CancellationToken.None);

            // Assert
            await _mediator.Received(1).Send(Arg.Any <DownloadImageCommand>(), Arg.Any <CancellationToken>());
        }
        public async Task Given_A_Valid_Card_Should_Invoke_CardService_Update_Method_Once()
        {
            // Arrange
            var command = new UpdateCardCommand
            {
                Card = new CardInputModel
                {
                    CardType    = YgoCardType.Trap,
                    Name        = "Call of the Haunted",
                    Description = "Activate this card by targeting 1 monster in your GY; Special Summon that target in Attack Position. When this card leaves the field, destroy that target. When that target is destroyed, destroy this card",
                    ImageUrl    = new Uri("http://cardimageurl.com/card/image.jpg")
                }
            };

            _cardService.Update(Arg.Any <CardModel>()).Returns(new Card {
                Id = 23424
            });
            _settings.Value.Returns(new AppSettings
            {
                CardImageFolderPath = "C:/cards/images"
            });


            // Act
            await _sut.Handle(command, CancellationToken.None);

            // Assert
            await _cardService.Received(1).Update(Arg.Any <CardModel>());
        }
Esempio n. 7
0
        public Task <UpdateCardCommandResult> Update(UpdateCardCommand command)
        {
            Task <UpdateCardCommandResult> result;

            result = _mediator.Send(command);

            return(result);
        }
Esempio n. 8
0
        public async Task <IActionResult> Update(
            [FromServices] IMediator mediator,
            [FromBody] BusinessCardDto cardDto)
        {
            var command = new UpdateCardCommand(cardDto);

            var data = await mediator.Send(command);

            return(new JsonResult(data.Card));
        }
Esempio n. 9
0
        public async Task <ActionResult> Update(UpdateCardCommand command)
        {
            await Mediator.Send(new UpdateCardCommand
            {
                Id    = command.Id,
                Back  = command.Back,
                Front = command.Front
            });

            return(NoContent());
        }
Esempio n. 10
0
        public async Task <ActionResult> Update(int id, UpdateCardCommand command)
        {
            if (id != command.Id)
            {
                return(BadRequest());
            }

            await Mediator.Send(command);

            return(NoContent());
        }
        public async Task Given_An_Invalid_UpdateCardCommand_Should_Return_A_List_Of_Errors()
        {
            // Arrange
            var command = new UpdateCardCommand {
                Card = new CardInputModel()
            };

            // Act
            var result = await _sut.Handle(command, CancellationToken.None);

            // Assert
            result.Errors.Should().NotBeEmpty();
        }
        public async Task Given_An_Invalid_UpdateCardCommand_Validation_Should_Fail()
        {
            // Arrange
            var command = new UpdateCardCommand {
                Card = new CardInputModel()
            };

            // Act
            var result = await _sut.Handle(command, CancellationToken.None);

            // Assert
            result.IsSuccessful.Should().BeFalse();
        }
        public async Task <UpdateCardCommand> MapToUpdateCommand(YugiohCard yugiohCard, Card cardToUpdate)
        {
            ICollection <Category> categories = await _categoryService.AllCategories();

            ICollection <SubCategory> subCategories = await _subCategoryService.AllSubCategories();

            var command = new UpdateCardCommand
            {
                Card = await MapToCardInputModel(yugiohCard, new CardInputModel(), categories, subCategories, cardToUpdate)
            };

            return(command);
        }
Esempio n. 14
0
        void AndGivenRequest()
        {
            var content = new UpdateCardCommand
            {
                Id    = 1,
                Front = new Side {
                    Value = "heads123", Example = "example123"
                },
                Back = new Side {
                    Value = "tails123", Example = "example456"
                },
                IsVisible = false
            };

            Request.Content = new StringContent(JsonSerializer.Serialize(content), Encoding.UTF8, "application/json");
        }
        public async Task Given_A_Valid_Card_And_UpdateCardCommand_Fails_Should_Return_Error_List()
        {
            // Arrange
            var command = new UpdateCardCommand
            {
                Card = new CardInputModel
                {
                    CardType    = YgoCardType.Spell,
                    Name        = "Monster Reborn",
                    Description = "Special Summon a monster from any graveyard"
                }
            };

            _cardService.Update(Arg.Any <CardModel>()).Returns((Card)null);

            // Act
            var result = await _sut.Handle(command, CancellationToken.None);

            // Assert
            result.Errors.Should().NotBeEmpty();
        }
Esempio n. 16
0
 public Task <Card> Update(UpdateCardCommand command)
 {
     return(_restClient.Put <UpdateCardCommand, Card>($"{_config.ApiUrl}/api/Cards", command));
 }
Esempio n. 17
0
 public async Task <IActionResult> UpdateCard([FromBody] UpdateCardCommand command)
 {
     return(Ok(await Mediator.Send(command)));
 }
Esempio n. 18
0
        public WebApiResult <CardItem> Put(int id, [FromBody] UpdateCardCommand command)
        {
            var result = _repository.ExecuteCommand(command);

            return(AutoMapper.Mapper.Map <CommandResult <Card>, WebApiResult <CardItem> >(result));
        }
Esempio n. 19
0
        public async Task <IActionResult> Update(UpdateCardCommand command)
        {
            var card = await Mediator.Send(command);

            return(Ok(card));
        }
        public async Task <IActionResult> Update([FromBody] UpdateCardCommand command)
        {
            var vm = await Mediator.Send(command);

            return(Ok(vm));
        }
Esempio n. 21
0
 public async Task <IActionResult> Update([FromBody] UpdateCardCommand command) => await HandleCommand(command);