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); }
public async Task UpdateListing(UpdateListingRequest request) { await _listingRepository.UpdateSearchTags(request.Id, request.SearchTags); _listingRepository.UpdateListing(request.Id, request.Title, request.About, request.Price); List <SearchTagType> searchTags = await _listingRepository.GetRelatedSearchTagsForListing(request.Id); await _elastic.UpdateAsync <ElasticListing>(request.Id, u => u.Index("listings") .Doc(new ElasticListing { Title = request.Title, About = request.About, Price = request.Price, Tags = ElasticListing.SearchTagTypesToElasticTags(searchTags) })); }