public async Task <int> CreateListing(CreateListingRequest request, int userId) { Listing listing = new Listing { Title = request.Title, About = request.About, Currency = Currencies.GBP, UserId = userId, Price = request.Price, Created = DateTime.Now, Status = Models.Domain.Status.Open, }; listing.Id = await _listingRepository.AddListing(listing); await _listingRepository.AddSearchTags(request.SearchTags, listing.Id); List <SearchTagType> searchTagTypes = await _listingRepository.GetRelatedSearchTagsForListing(listing.Id); ElasticListing elasticListing = (ElasticListing)listing; elasticListing.Tags = ElasticListing.SearchTagTypesToElasticTags(searchTagTypes); IndexResponse indexListing = await _elastic.IndexDocumentAsync(elasticListing); return(listing.Id); }