示例#1
0
        public async Task CreateAsync(Guid facilityId, AccommodationDetails details)
        {
            var api = await apiClientFactory.CreateApiClientAsync();

            var result = await api.CreateAccommodationWithHttpMessagesAsync(facilityId, mapper.MapFrom(details));

            if (result.Response.StatusCode == HttpStatusCode.NotFound)
            {
                throw new FacilityNotFoundException(facilityId);
            }
        }
        public async Task UpdateAsync(int accommodationId, AccommodationDetails details)
        {
            var api = await apiClientFactory.CreateApiClientAsync();

            var result = await api.UpdateAccommodationWithHttpMessagesAsync(accommodationId, mapper.ToUpdateCommand(details));

            if (result.Response.StatusCode == HttpStatusCode.NotFound)
            {
                throw new AccommodationNotFoundException(accommodationId);
            }
        }
        public async Task UpdateAsync(Guid accommodationId, AccommodationDetails details)
        {
            var result = await partitionClientFactory.CreatePartitionClient().InvokeWithRetryAsync(async client =>
            {
                var api = await client.CreateApiClient();
                return(await api.UpdateAccommodationWithHttpMessagesAsync(accommodationId, mapper.MapFrom(details)));
            });

            if (result.Response.StatusCode == HttpStatusCode.NotFound)
            {
                throw new AccommodationNotFoundException(accommodationId);
            }
        }
        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);
        }
        public async Task <Accommodation> UpdateAsync(Guid accommodationId, AccommodationDetails details)
        {
            var accommodation = await accommodationDataSource.FindAsync(accommodationId);

            if (accommodation == null)
            {
                throw new AccommodationNotFoundException(accommodationId);
            }

            var facility = await facilityService.FindAsync(accommodation.FacilityId);

            if (facility == null)
            {
                throw new FacilityNotFoundException(accommodation.FacilityId);
            }

            details.Images        = ImagePathHelper.Merge(accommodation.Details.Images, details.Images);
            accommodation.Details = details;
            await accommodationDataSource.UpdateAsync(accommodation);

            await searchIndexer.IndexAccommodationAsync(accommodation, facility);

            return(accommodation);
        }
 public AccommodationData MapFrom(AccommodationDetails details)
 {
     return(Mapper.Map <AccommodationData>(details));
 }
示例#7
0
 public IList <string> Resolve(AccommodationDetails source, UpdateAccommodationCommand destination, IList <string> destMember, ResolutionContext context)
 {
     return(source.Images?.ToList());
 }
示例#8
0
 public UpdateAccommodationCommand ToUpdateCommand(AccommodationDetails details)
 {
     return(Mapper.Map <UpdateAccommodationCommand>(details));
 }
示例#9
0
 public CreateAccommodationCommand ToCreateCommand(AccommodationDetails details)
 {
     return(Mapper.Map <CreateAccommodationCommand>(details));
 }