Esempio n. 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);
        }
Esempio n. 2
0
        public async Task CreateAnimalWithProcessing_Success()
        {
            var animal = new AnimalForCreationDto()
            {
                Processings = new HashSet <ProcessingDto>()
                {
                    new ProcessingDto()
                    {
                        Id = 1
                    }
                }
            };
            var animalProcessing = new HashSet <AnimalProcessing>()
            {
                new AnimalProcessing()
                {
                    Animal = new Animal()
                    {
                        Id = 1
                    },
                    AnimalId     = 1,
                    ProcessingId = 1,
                    Processing   = new Processing()
                    {
                        Id = 1
                    }
                }
            };
            var model = new Animal()
            {
                Id = 1
            };

            _animalProcessingRepositoryMock.Setup(x => x.TryCreateManyToMany(animalProcessing));
            _animalProcessingRepositoryMock.Setup(x => x.SaveAsync());

            await _service.CreateAnimalWithProcessing(animal, model);

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