public async Task <Marketplace> GetOrCreateMarketplace(string token, string env, string marketplaceName, string marketplaceID = null) { if (marketplaceID != null) { var marketplace = await VerifyMarketplaceExists(marketplaceID, token); return(marketplace); } else { var marketplace = new Marketplace() { Id = Guid.NewGuid().ToString(), Environment = env, Name = marketplaceName == null ? "My Headstart Marketplace" : marketplaceName }; try { await _portal.GetMarketplace(marketplace.Id, token); return(await GetOrCreateMarketplace(token, env, marketplaceName, marketplaceID)); } catch (Exception ex) { await _portal.CreateMarketplace(marketplace, token); return(await _portal.GetMarketplace(marketplace.Id, token)); } } }