Beispiel #1
0
        private static Entity PrepareBookingAccommodation(Booking bookinginfo, Accommodation accommodation, Guid bookingId, ITracingService trace)
        {
            trace.Trace("Preparing Booking Accommodation information - Start");
            var accommodationEntity = new Entity(EntityName.BookingAccommodation);

            if (accommodation.AccommodationCode != null)
                accommodationEntity[Attributes.BookingAccommodation.SourceMarketHotelCode] = accommodation.AccommodationCode;
            if (!string.IsNullOrEmpty(accommodation.GroupAccommodationCode))
                accommodationEntity[Attributes.BookingAccommodation.HotelId] = new EntityReference(EntityName.Hotel, new Guid(accommodation.GroupAccommodationCode));
            SetNameFor(accommodation, bookinginfo, accommodationEntity);

            accommodationEntity[Attributes.BookingAccommodation.Order] = accommodation.Order.ToString();
            if (!string.IsNullOrWhiteSpace(accommodation.StartDate))
                accommodationEntity[Attributes.BookingAccommodation.StartDateAndTime] = DateTime.Parse(accommodation.StartDate);
            if (!string.IsNullOrWhiteSpace(accommodation.EndDate))
                accommodationEntity[Attributes.BookingAccommodation.EndDateAndTime] = DateTime.Parse(accommodation.EndDate);
            if (!string.IsNullOrWhiteSpace(accommodation.RoomType))
                accommodationEntity[Attributes.BookingAccommodation.RoomType] = accommodation.RoomType;
            accommodationEntity[Attributes.BookingAccommodation.BoardType] = CommonXrm.GetBoardType(accommodation.BoardType);
            accommodationEntity[Attributes.BookingAccommodation.HasSharedRoom] = accommodation.HasSharedRoom;
            accommodationEntity[Attributes.BookingAccommodation.NumberOfParticipants] = accommodation.NumberOfParticipants;
            accommodationEntity[Attributes.BookingAccommodation.NumberOfRooms] = accommodation.NumberOfRooms;
            accommodationEntity[Attributes.BookingAccommodation.WithTransfer] = accommodation.WithTransfer;
            accommodationEntity[Attributes.BookingAccommodation.IsExternalService] = accommodation.IsExternalService;
            accommodationEntity[Attributes.BookingAccommodation.ExternalServiceCode] = CommonXrm.GetExternalServiceCode(accommodation.ExternalServiceCode);
            accommodationEntity[Attributes.BookingAccommodation.NotificationRequired] = accommodation.NotificationRequired;
            accommodationEntity[Attributes.BookingAccommodation.NeedTourGuideAssignment] = accommodation.NeedsTourGuideAssignment;
            accommodationEntity[Attributes.BookingAccommodation.ExternalTransfer] = accommodation.IsExternalTransfer;
            accommodationEntity[Attributes.BookingAccommodation.TransferServiceLevel] = CommonXrm.GetTransferServiceLevel(accommodation.TransferServiceLevel);
            if (!string.IsNullOrWhiteSpace(accommodation.AccommodationDescription))
                accommodationEntity[Attributes.BookingAccommodation.SourceMarketHotelName] = accommodation.AccommodationDescription;
            accommodationEntity[Attributes.BookingAccommodation.BookingId] = new EntityReference(EntityName.Booking, bookingId);
            accommodationEntity[Attributes.BookingAccommodation.Participants] = BookingHelper.PrepareTravelParticipantsInfoForChildRecords(bookinginfo.TravelParticipant, trace, accommodation.TravelParticipantAssignment);
            accommodationEntity[Attributes.Booking.StateCode] = new OptionSetValue((int)Statecode.Active);
            accommodationEntity[Attributes.Booking.StatusCode] = CommonXrm.GetAccommodationStatus(accommodation.Status);
            accommodationEntity[Attributes.Booking.Remarks] = RemarksHelper.GetRemarksTextFromPayload(accommodation.Remark);
            accommodationEntity[Attributes.BookingAccommodation.AccommodationType] = CommonXrm.GetAccommodationType(accommodation.AccommodationType);
            accommodationEntity[Attributes.BookingAccommodation.Duration] = accommodation.Duration;
            trace.Trace("Preparing Booking Transport information - End");

            return accommodationEntity;
        }