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); }
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()); }