예제 #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);
        }