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