Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        /// <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));
        }
Exemplo n.º 3
0
        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));
        }