public async Task Handle_ReturnsCorrectQRCodeDTO() { // Arrange var qrcode = new QRCodeDTO { Code = "Code", Created = new DateTime(2001, 01, 01), AnimalId = 1 }; var query = new GetQRCodeQuery { AnimalId = 1 }; // Act var handler = new GetQRCodeQuery.GetQRCodeQueryHandler(Context, Mapper); var result = await handler.Handle(query, CancellationToken.None); // Assert result.ShouldBeOfType <QRCodeDTO>(); result.ShouldNotBeNull(); result.Code.ShouldBe(qrcode.Code); result.Created.ShouldBe(qrcode.Created); result.AnimalId.ShouldBe(qrcode.AnimalId); }
/// <summary> /// Страница для получения информации о выбранном животном. /// </summary> /// <param name="id">Идентификатор.</param> /// <returns>Определенное представление.</returns> public async Task <IActionResult> Info(int id) { var userId = await _identityService.GetUserIdByNameAsync(User.Identity.Name); var animalQuery = new GetAnimalQuery { Id = id, UserId = userId, AnotherUser = false }; var userAnimal = await _mediator.Send(animalQuery); if (userAnimal == null) { return(RedirectToAction("Index", "Profile")); } var qrQuery = new GetQRCodeQuery { AnimalId = userAnimal.Id }; QRCodeDTO qrCode = await _mediator.Send(qrQuery); var code = _QRCodeGeneratorService.CreateQRCode(qrCode.Code); var animalViewModel = new AnimalViewModel { Id = userAnimal.Id, UserId = userAnimal.UserId, Kind = userAnimal.Kind, Breed = userAnimal.Breed, Gender = userAnimal.Gender.ToString(), Passport = userAnimal.Passport, BirthDate = userAnimal.BirthDate, Nickname = userAnimal.Nickname, Features = userAnimal.Features, IsPublic = userAnimal.IsPublic, Link = qrCode.Code, Code = code }; _logger.LogInformation($"For {User.Identity.Name} successfully showed animal with id: {userAnimal.Id}."); return(View(animalViewModel)); }
public async Task <IActionResult> Public(int id) { var animalQuery = new GetAnimalQuery { Id = id, AnotherUser = true }; var userAnimal = await _mediator.Send(animalQuery); if (userAnimal == null || !userAnimal.IsPublic) { return(View("PermissionDenied")); } var qrQuery = new GetQRCodeQuery { AnimalId = userAnimal.Id }; QRCodeDTO qrCodeText = await _mediator.Send(qrQuery); var code = _QRCodeGeneratorService.CreateQRCode(qrCodeText.Code); var animalViewModel = new AnimalViewModel { Id = userAnimal.Id, UserId = userAnimal.UserId, Kind = userAnimal.Kind, Breed = userAnimal.Breed, Gender = userAnimal.Gender.ToString(), Passport = userAnimal.Passport, BirthDate = userAnimal.BirthDate, Nickname = userAnimal.Nickname, Features = userAnimal.Features, IsPublic = userAnimal.IsPublic, Code = code }; _logger.LogInformation($"Animal with id: {userAnimal.Id}, successfully showed on public request."); return(View(animalViewModel)); }