public async Task <IActionResult> CreateAsync([FromBody] CreateOutgoingTransactionRequestModel model) { var originatorPlaceOfBirthCountry = Country .List .Single(x => x.Value.Name == model.OriginatorPlaceOfBirth.Country) .Value; var originatorPostalAddressCountry = Country .List .Single(x => x.Value.Name == model.OriginatorPostalAddress.Country) .Value; if (model.Asset != "ETH" && model.Asset != "BTC") { throw new InvalidOperationException("Asset not recognized."); } var asset = model.Asset == "ETH" ? VirtualAssetType.ETH : VirtualAssetType.BTC; var transaction = await _transactionsManager.CreateOutgoingTransactionAsync( model.OriginatorFullName, model.OriginatorVaan, new Core.Models.PlaceOfBirth { Country = originatorPlaceOfBirthCountry, Date = model.OriginatorPlaceOfBirth.Date, Town = model.OriginatorPlaceOfBirth.Town }, new Core.Models.PostalAddress { Country = originatorPostalAddressCountry, AddressLine = model.OriginatorPostalAddress.AddressLine, Building = model.OriginatorPostalAddress.Building, PostCode = model.OriginatorPostalAddress.PostCode, Street = model.OriginatorPostalAddress.Street, Town = model.OriginatorPostalAddress.Town }, model.BeneficiaryFullName, model.BeneficiaryVaan, asset, model.Amount); return(Ok(transaction)); }