示例#1
0
        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);
        }
示例#2
0
        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)
            }));
        }