public async Task <int> RegisterProperty(PropertyViewModel propertyViewModel, List <IFormFile> imagens) { var property = Mapper.PropertyMap(propertyViewModel); property.Detail = Mapper.DetailMap(propertyViewModel.Detalhe); property.Address = Mapper.AddressMap(propertyViewModel.Endereco); if (!ExecuteValidation(new PropertyValidation(), property)) { return(0); } var insertedPropertyId = await _propertyRepository.Insert(property); property.Detail.PropertyId = insertedPropertyId; property.Address.PropertyId = insertedPropertyId; var insertedAddressId = await _addressRepository.Insert(property.Address); var insertedDetailId = await _detailsRepository.Insert(property.Detail); await _propertyRepository.UpdateAddressAndDetail(insertedAddressId, insertedDetailId, insertedPropertyId); foreach (var arquivo in imagens) { PropertyImage novaImagem = new() { Active = true, FileId = Guid.NewGuid(), FileType = arquivo.ContentType, Name = arquivo.FileName, PropertyId = insertedPropertyId, RegisterDate = DateTime.Now }; await FileHelper.CreateFile(arquivo, novaImagem.FileId.ToString()); await _imageRepository.Insert(novaImagem); } return(insertedPropertyId); }