コード例 #1
0
        protected override async Task Handle(UpdateAccommodationCommand request, CancellationToken cancellationToken)
        {
            var api = await apiClientFactory.CreateApiClientAsync();

            var result = await api.FindFacilityWithHttpMessagesAsync(request.FacilityId);

            if (result.Response.StatusCode == HttpStatusCode.NotFound)
            {
                return;
            }

            var accommodation = new Accommodation
            {
                Id                  = request.Id,
                FacilityId          = request.FacilityId,
                Name                = request.Name,
                Description         = request.Description,
                RoomCount           = request.RoomCount,
                Images              = request.Images,
                FacilityName        = result.Body.Name,
                FacilityDescription = result.Body.Description,
                FacilityLocation    = new Location
                {
                    Latitude  = result.Body.Latitude,
                    Longitude = result.Body.Longitude
                }
            };

            await searchIndexer.IndexAccommodationAsync(accommodation);
        }
コード例 #2
0
        protected override async Task Handle(UpdateAccommodationCommand request, CancellationToken cancellationToken)
        {
            var facility = await FindFacilityAsync(request.FacilityId);

            if (facility == null)
            {
                return;
            }

            var accommodation = new Accommodation
            {
                Id                  = request.Id,
                FacilityId          = request.FacilityId,
                Name                = request.Name,
                Description         = request.Description,
                RoomCount           = request.RoomCount,
                Images              = request.Images,
                FacilityName        = facility.Name,
                FacilityDescription = facility.Description,
                Location            = new Location
                {
                    Latitude  = facility.Latitude,
                    Longitude = facility.Longitude
                }
            };

            await searchIndexer.IndexAccommodationAsync(accommodation);
        }
コード例 #3
0
        public async Task <Accommodation> CreateAsync(Guid facilityId, AccommodationDetails details)
        {
            await facilityService.CheckFacilityAsync(facilityId);

            details.Images = ImagePathHelper.CleanUp(details.Images);
            var accommodation = new Accommodation
            {
                Id         = Guid.NewGuid(),
                FacilityId = facilityId,
                Details    = details
            };

            await accommodationDataSource.CreateAsync(accommodation);

            await facilityService.IncrementAccommodationCountAsync(facilityId);

            var facility = await facilityService.FindAsync(facilityId);

            await searchIndexer.IndexAccommodationAsync(accommodation, facility);

            return(accommodation);
        }