コード例 #1
0
        public async Task <AnimalDto> CreateAnimal(AnimalForCreationDto animal)
        {
            var model = new Animal();

            _mapper.Map(animal, model);
            using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                model.BreedId = await _breedService.CreateAnimalWithBreed(animal, model);

                await _repository.AddAsync(model);

                await _descriptionService.CreateAnimalWithDescription(animal, model);

                await _locationHistoryService.WriteAnimalLocationHistory(model);

                await _isNewService.CreateCheckNewOld(animal, model);

                await _keepingService.CreateAnimalWithKeepings(animal, model);

                await _needsService.CreateAnimalWithNeeds(animal, model);

                await _vaccinationService.CreateAnimalWithVaccination(animal, model);

                await _processingService.CreateAnimalWithProcessing(animal, model);

                await _attitudesToService.CreateAnimalWithAttitudes(animal, model);

                await _defectService.CreateAnimalWithDefects(animal, model);

                scope.Complete();
            }
            var returnModel = GetById(model.Id);

            return(returnModel);
        }
コード例 #2
0
        public async Task CreateAnimalWithVaccination_Success()
        {
            var animal = new AnimalForCreationDto()
            {
                Vaccinations = new HashSet <VaccinationFullForCreationDto>()
                {
                    new VaccinationFullForCreationDto()
                    {
                        Id              = 1,
                        Name            = "testName",
                        Type            = "testType",
                        VaccinationDate = new System.DateTime(2020, 4, 20)
                    }
                }
            };
            var animalVaccinations = new HashSet <AnimalVaccination>()
            {
                new AnimalVaccination()
                {
                    AnimalId = 1,
                    Animal   = new Animal()
                    {
                        Id = 1
                    },
                    VaccinationId = 1,
                    Vaccination   = new Vaccination()
                    {
                        Id = 1
                    }
                }
            };
            var model = new Animal()
            {
                Id = 1
            };

            _animalVaccinationRepositoryMock.Setup(x => x.TryCreateManyToMany(animalVaccinations));
            _animalVaccinationRepositoryMock.Setup(x => x.SaveAsync());

            await _service.CreateAnimalWithVaccination(animal, model);

            _animalVaccinationRepositoryMock.Verify(x => x.TryCreateManyToMany(It.IsAny <IEnumerable <AnimalVaccination> >()),
                                                    Times.Once());
            _animalVaccinationRepositoryMock.Verify(x => x.SaveAsync(), Times.Once());
        }