Пример #1
0
        public void Can_Lookup_TimeZone_NewYork()
        {
            var tz = TimeZoneLookup.GetTimeZone(40.67, -73.94).Result;

            Assert.AreEqual("America/New_York", tz);
        }
Пример #2
0
        public void Can_Lookup_TimeZone_LosAngeles()
        {
            var tz = TimeZoneLookup.GetTimeZone(34.0500, -118.25).Result;

            Assert.AreEqual("America/Los_Angeles", tz);
        }
Пример #3
0
        public void Can_Lookup_TimeZone_PaigntonPier()
        {
            var tz = TimeZoneLookup.GetTimeZone(50.4372, -3.5559).Result;

            Assert.AreEqual("Europe/London", tz);
        }
Пример #4
0
        public void Can_Lookup_TimeZone_Phoenix()
        {
            var tz = TimeZoneLookup.GetTimeZone(33.45, -112.0667).Result;

            Assert.AreEqual("America/Phoenix", tz);
        }
Пример #5
0
        public void Can_Lookup_TimeZone_LordHoweIsland()
        {
            var tz = TimeZoneLookup.GetTimeZone(-31.55, 159.0833).Result;

            Assert.AreEqual("Australia/Lord_Howe", tz);
        }
Пример #6
0
        public async void ExecuteSubmitCommand()
        {
            IsEnabledSubmitButton = false;
            try
            {
                //if (!Validate())
                //{
                //    await DependencyService.Get<IXSnack>().ShowMessageAsync(Error);
                //    return;
                //}

                if (!HttpRequest.CheckConnection())
                {
                    //DependencyService.Get<IProgressBar>().Show(Resx.AppResources.pleaseWait);
                    using (await MaterialDialog.Instance.LoadingDialogAsync(message: Resx.AppResources.pleaseWait))
                    {
                        var request      = new GeolocationRequest(GeolocationAccuracy.High);
                        var fakelocation = await Geolocation.GetLocationAsync(request);

                        if (fakelocation != null)
                        {
                            if (fakelocation.IsFromMockProvider)
                            {
                                await DependencyService.Get <IXSnack>().ShowMessageAsync("You are using Fake Location.");

                                return;
                            }
                        }
                        var locator = CrossGeolocator.Current;
                        if (locator.IsGeolocationAvailable && locator.IsGeolocationEnabled)
                        {
                            var sourceLocation = await locator.GetPositionAsync(TimeSpan.FromSeconds(10));

                            if (sourceLocation != null)
                            {
                                Location sourceCoordinates = new Location(sourceLocation.Latitude, sourceLocation.Longitude);
                                double   distance          = Location.CalculateDistance(sourceCoordinates, LatLongLocation, DistanceUnits.Kilometers);
                                double   distanceMeter     = distance * 1000;

                                var locationDataOfflone = new LocationData()
                                {
                                    lat    = sourceCoordinates.Latitude,
                                    lng    = sourceCoordinates.Longitude,
                                    radius = distanceMeter
                                };
                                var locjsonStringOfflone = Newtonsoft.Json.JsonConvert.SerializeObject(locationDataOfflone);
                                var tzIana = TimeZoneLookup.GetTimeZone(sourceCoordinates.Latitude, sourceCoordinates.Longitude).Result;
                                var tzInfo = TimeZoneInfo.FindSystemTimeZoneById(tzIana);
                                GPSDateTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, tzInfo);
                                var postDataOfflone = new List <BookingModel>()
                                {
                                    new BookingModel()
                                    {
                                        DateTime        = GPSDateTime,
                                        Direction       = Direction,
                                        Location        = locjsonStringOfflone,
                                        HappinessOption = SelectedHappinessOption?.HappynessCode,
                                        ReasonCode      = SelectedReason?.code
                                    }
                                };
                                foreach (var item in postDataOfflone)
                                {
                                    DBBookingModel dbdata = new DBBookingModel();
                                    dbdata.DateTime        = item.DateTime;
                                    dbdata.Direction       = item.Direction;
                                    dbdata.HappinessOption = item.HappinessOption;
                                    dbdata.Location        = item.Location;
                                    dbdata.ReasonCode      = item.ReasonCode;
                                    App.Database.SaveBooking(dbdata);
                                }


                                IsUserExist = true;
                                await _navigation.PopAsync();

                                await DependencyService.Get <IXSnack>().ShowMessageAsync(Resx.AppResources.youAreChecked + " " + Direction + " " + Resx.AppResources.successfully);
                            }
                        }
                        else
                        {
                            await DependencyService.Get <IXSnack>().ShowMessageAsync(Resx.AppResources.pleaseEnableYourLocationService);
                        }
                    }

                    return;
                }


                using (await MaterialDialog.Instance.LoadingDialogAsync(message: Resx.AppResources.pleaseWait))
                {
                    var request      = new GeolocationRequest(GeolocationAccuracy.High);
                    var fakelocation = await Geolocation.GetLocationAsync(request);

                    if (fakelocation != null)
                    {
                        if (fakelocation.IsFromMockProvider)
                        {
                            await DependencyService.Get <IXSnack>().ShowMessageAsync("You are using Fake Location.");

                            return;
                        }
                    }
                    var locator = CrossGeolocator.Current;
                    if (locator.IsGeolocationAvailable && locator.IsGeolocationEnabled)
                    {
                        var sourceLocation = await locator.GetPositionAsync(TimeSpan.FromSeconds(10));

                        if (sourceLocation != null)
                        {
                            Location sourceCoordinates = new Location(sourceLocation.Latitude, sourceLocation.Longitude);
                            double   distance          = Location.CalculateDistance(sourceCoordinates, LatLongLocation, DistanceUnits.Kilometers);
                            double   distanceMeter     = distance * 1000;

                            var locationData = new LocationData()
                            {
                                lat    = sourceCoordinates.Latitude,
                                lng    = sourceCoordinates.Longitude,
                                radius = distanceMeter
                            };
                            var locjsonString = Newtonsoft.Json.JsonConvert.SerializeObject(locationData);
                            var tzIana        = TimeZoneLookup.GetTimeZone(sourceCoordinates.Latitude, sourceCoordinates.Longitude).Result;
                            var tzInfo        = TimeZoneInfo.FindSystemTimeZoneById(tzIana);
                            GPSDateTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, tzInfo);
                            var postData = new List <BookingModel>()
                            {
                                new BookingModel()
                                {
                                    DateTime        = GPSDateTime,
                                    Direction       = Direction,
                                    Location        = locjsonString,
                                    HappinessOption = SelectedHappinessOption?.HappynessCode,
                                    ReasonCode      = SelectedReason?.code
                                }
                            };
                            var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(postData);

                            var loginInfo = await CommonMethods.BookingAttendance(jsonString);

                            if (loginInfo.Status)
                            {
                                IsUserExist = true;
                                await DependencyService.Get <IXSnack>().ShowMessageAsync(Resx.AppResources.youAreChecked + " " + Direction + " " + Resx.AppResources.successfully);

                                await _navigation.PopAsync();
                            }
                            else
                            {
                                //DependencyService.Get<IProgressBar>().Hide();
                                await DependencyService.Get <IXSnack>().ShowMessageAsync(loginInfo.Message);

                                IsUserExist = false;
                            }
                        }
                    }
                    else
                    {
                        await DependencyService.Get <IXSnack>().ShowMessageAsync(Resx.AppResources.pleaseEnableYourLocationService);
                    }
                }
                //DependencyService.Get<IProgressBar>().Show(Resx.AppResources.pleaseWait);
            }
            catch (Exception ex)
            {
                //DependencyService.Get<IProgressBar>().Hide();
                IsUserExist = false;
                await DependencyService.Get <IXSnack>().ShowMessageAsync(ex.Message);
            }
            finally
            {
                IsUserExist           = false;
                IsEnabledSubmitButton = true;
                //DependencyService.Get<IProgressBar>().Hide();
            }
        }
        public void Can_Lookup_Offset_SsLulworthHillWreck()
        {
            var tz = TimeZoneLookup.GetTimeZone(-10.166667, 1).Result;

            Assert.Equal("UTC", tz);
        }
Пример #8
0
        public void Can_Lookup_TimeZone_SaoPaulo()
        {
            var tz = TimeZoneLookup.GetTimeZone(-23.55, -46.6333).Result;

            Assert.AreEqual("America/Sao_Paulo", tz);
        }
Пример #9
0
 public Geolocation(double latitude, double longitude)
 {
     Latitude  = latitude;
     Longitude = longitude;
     TimeZone  = TimeZoneLookup.GetTimeZone(latitude, longitude).Result;
 }
        public void Can_Lookup_Offset_SsFortLeeWreck()
        {
            var tz = TimeZoneLookup.GetTimeZone(-27.583333, 83.183333).Result;

            Assert.Equal("Etc/GMT-6", tz);
        }
Пример #11
0
        public static string GetTimeZoneDisplayName(double latitude, double longitude)
        {
            TimeZoneResult timeZoneResult = TimeZoneLookup.GetTimeZone(latitude, longitude);

            return(TZConvert.GetTimeZoneInfo(timeZoneResult.Result).DisplayName);
        }
Пример #12
0
        private static void CreateMapFromPoints(List <Position> points, Settings settings)
        {
            points = points.Select(LocationUtils.ToMercator).ToList();
            var boundingBox = LocationUtils.GetBoundingBox(points);

            var mapper = Tiler.RenderMap(boundingBox, settings.VideoConfig.Width, settings.VideoConfig.Height);

            points = mapper.GetPixels(points).ToList();
            points = points.SkipTooClose(8).ToList();
            points = points.SmoothLineChaikin(settings.SofteningSettings);

            mapper.Save(Path.Combine(settings.OutputDirectory, "empty-map.png"));

            var writer = new AviWriter(Path.Combine(settings.OutputDirectory, "map.avi"))
            {
                FramesPerSecond = settings.VideoConfig.Framerate,
                EmitIndex1      = true
            };

            IAviVideoStream stream = new NullVideoStream(settings.VideoConfig.Width, settings.VideoConfig.Height);

            if (settings.VideoConfig.ProduceVideo)
            {
                var encoder = new MotionJpegVideoEncoderWpf(settings.VideoConfig.Width, settings.VideoConfig.Height, 70);
                stream        = writer.AddEncodingVideoStream(encoder, true, settings.VideoConfig.Width, settings.VideoConfig.Height);
                stream.Width  = settings.VideoConfig.Width;
                stream.Height = settings.VideoConfig.Height;
            }

            double lengthSeconds       = settings.VideoConfig.VideoDuration.TotalSeconds;
            double totalDistanceMeters = 0;

            double yieldFrame = Math.Max(1, (points.Count / (lengthSeconds * settings.VideoConfig.Framerate)));

            double nextFrame   = 1;
            int    wroteFrames = 0;

            for (int i = 1; i < points.Count; i++)
            {
                var previousPoint = mapper.FromPixelsToMercator(points[i - 1]);
                var currentPoint  = mapper.FromPixelsToMercator(points[i]);
                totalDistanceMeters += previousPoint.DistanceMeters(currentPoint);

                if (mapper.IsStashed)
                {
                    mapper.StashPop();
                }

                mapper.DrawLine(points[i - 1], points[i]);
                if (settings.DisplayDistance || settings.DisplayDateTime)
                {
                    mapper.Stash();
                }
                if (settings.DisplayDistance)
                {
                    mapper.WriteText(string.Format("{0:0}km", totalDistanceMeters / 1000));
                }

                if (settings.DisplayDateTime)
                {
                    // mapper.WriteText(points[i].Time.ToString(), settings.VideoConfig.Height - 200);
                    Position positionWgs84 = currentPoint.GetWgs84();
                    var      ianaTz        = TimeZoneLookup.GetTimeZone(positionWgs84.Latitude, positionWgs84.Longitude).Result;
                    TimeSpan offset        = TimeZoneConverter.TZConvert.GetTimeZoneInfo(ianaTz).GetUtcOffset(points[i].Time);
                    mapper.WriteText(points[i].Time.ToUniversalTime().Add(offset).ToString("MM/dd hh tt"), settings.VideoConfig.Height - 100);
                }

                if (i >= nextFrame)
                {
                    byte[] frameData = mapper.GetBitmap();
                    stream.WriteFrame(true, frameData, 0, frameData.Length);
                    wroteFrames++;

                    nextFrame += yieldFrame;
                }
            }
            if (mapper.IsStashed)
            {
                mapper.StashPop();
            }
            byte[] lastFrameData = mapper.GetBitmap();
            stream.WriteFrame(true, lastFrameData, 0, lastFrameData.Length);
            writer.Close();
            // DrawBoundingBox(boundingBox, mapper);
            string path = Path.Combine(settings.OutputDirectory, "complete-map.png");

            mapper.Save(path);
            Console.WriteLine("Wrote frames: {0}, points.Count={1}, yieldFrame={2}, path={3}", wroteFrames, points.Count, yieldFrame, path);
        }
Пример #13
0
        protected override async Task <ICommandResult> Handle(ReserveTimeSlotCommand command)
        {
            ReserveTimeSlotCommandResult results = new ReserveTimeSlotCommandResult();
            ReserveTimeSlotReqestModel   reserveTimelotRequestModel = new ReserveTimeSlotReqestModel();

            IEnumerable <long> eventTicketAttributeIds = command.EventTicketAttributeList.Select(s => s.Id).Distinct();
            IEnumerable <Contracts.Models.EventTicketAttribute> eventTicketAttributes = AutoMapper.Mapper.Map <IEnumerable <Contracts.Models.EventTicketAttribute> >(_eventTicketAttributeRepository.GetByIds(eventTicketAttributeIds));

            var allETD = _eventTicketDetailRepository.GetByEventTicketDetailsIds(eventTicketAttributes.Select(s => s.EventTicketDetailId).Distinct()).Distinct();
            var allTC  = _ticketCategoryRepository.GetByTicketCategoryIds(allETD.Select(s => s.TicketCategoryId).Distinct()).Distinct();
            var allED  = _eventDetailRepository.GetByIds(allETD.Select(s => s.EventDetailId).Distinct()).Distinct().FirstOrDefault();
            var citySightEventDetails        = _citySightSeeingEventDetailMappingRepository.GetByEventDetailId(allED.Id);
            var citySightSeeingTickets       = _citySightSeeingTicketRepository.Get(citySightEventDetails.CitySightSeeingTicketId);
            var citySightSeeingTicketDetails = _citySightSeeingTicketDetailRepository.GetByTicketId(citySightSeeingTickets.TicketId);
            var citySightSeeingLocations     = _citySightSeeingLocationRepository.Get(citySightSeeingTickets.CitySightSeeingLocationId);

            var locationDetail = await _googleMapApi.GetLatLongFromAddress(citySightSeeingLocations.Name);

            string tz = ""; DateTime fromDate = DateTime.Now;; var offset = "";

            if (locationDetail.Success)
            {
                double lat = Convert.ToDouble(locationDetail.Result.lat);
                double lng = Convert.ToDouble(locationDetail.Result.lng);
                tz = TimeZoneLookup.GetTimeZone(lat, lng).Result;
                TimeZoneInfo tzi       = TZConvert.GetTimeZoneInfo(tz);
                var          visitDate = command.EventTicketAttributeList[0].VisitDate;
                var          timeSlot  = command.EventTicketAttributeList[0].TimeSlot;
                var          utcOffset = tzi.BaseUtcOffset.ToString().Split(":")[0];
                var          minutes   = Convert.ToInt64(tzi.BaseUtcOffset.ToString().Split(":")[1]);
                if (utcOffset.Contains("-"))
                {
                    var hours = Convert.ToInt64((tzi.BaseUtcOffset.ToString().Split(":")[0]).Split("-")[1]);
                    visitDate = visitDate.AddHours(hours).AddMinutes(minutes);
                    offset    = utcOffset;
                }
                else
                {
                    var hours = Convert.ToInt64((tzi.BaseUtcOffset.ToString().Split(":")[0]));
                    visitDate = visitDate.AddHours(-hours).AddMinutes(-minutes);
                    offset    = "+" + utcOffset;
                }
                var formattedDateTime = visitDate.Year + "-" + visitDate.Month + "-" + visitDate.Day + "T" + timeSlot;
                fromDate = Convert.ToDateTime(formattedDateTime);
            }

            var duration = citySightSeeingTicketDetails.Duration;

            reserveTimelotRequestModel.request_type = "reserve";
            TimeSlotData timeSlotData = new TimeSlotData();

            timeSlotData.distributor_id  = _settings.GetConfigSetting <string>(SettingKeys.Integration.CitySightSeeing.DistributorId);
            timeSlotData.ticket_id       = citySightSeeingTickets.TicketId;
            timeSlotData.pickup_point_id = (citySightSeeingTicketDetails.PickupPoints != null && citySightSeeingTicketDetails.PickupPoints != "") ? citySightSeeingTicketDetails.PickupPoints : "";

            DateTime endDate = DateTime.Now;
            List <BookingTimeSlotDetail> bookingTimeSlotDetailList = new List <BookingTimeSlotDetail>();

            foreach (Contracts.Commands.Transaction.EventTicketAttribute ticketAttributes in command.EventTicketAttributeList)
            {
                BookingTimeSlotDetail bookingTimeSlotDetail = new BookingTimeSlotDetail();
                var currentTA = ticketAttributes;
                Contracts.Models.EventTicketAttribute checkoutCommandEventTicketAttribute = eventTicketAttributes.Where(w => w.Id == ticketAttributes.Id).FirstOrDefault();
                EventTicketDetail eventTicketDetail = allETD.Where(s => s.Id == checkoutCommandEventTicketAttribute.EventTicketDetailId).FirstOrDefault();
                var ticketCategoryId = allTC.Where(s => s.Id == eventTicketDetail.TicketCategoryId).FirstOrDefault();
                bookingTimeSlotDetail.count = ticketAttributes.TotalTickets;
                var formattedTicketCat = ticketCategoryId.Name.Split("(");
                bookingTimeSlotDetail.ticket_type   = formattedTicketCat[0].ToUpper();
                bookingTimeSlotDetail.extra_options = null;
                bookingTimeSlotDetailList.Add(bookingTimeSlotDetail);
            }
            if (duration.Contains("day"))
            {
                string[] day = duration.Split("day");
                endDate = fromDate.AddDays(Convert.ToDouble(day[0]));
            }
            if (duration.Contains("hour"))
            {
                string[] hour = duration.Split("hour");
                endDate = fromDate.AddHours(Convert.ToDouble(hour[0]));
            }
            var fromDate_with_time_slot = Convert.ToDateTime(fromDate.ToString() + offset);
            var endDate_with_time_slot  = Convert.ToDateTime(endDate.ToString() + offset);

            timeSlotData.from_date_time     = fromDate_with_time_slot;
            timeSlotData.to_date_time       = endDate_with_time_slot;
            timeSlotData.booking_details    = bookingTimeSlotDetailList;
            reserveTimelotRequestModel.data = timeSlotData;
            reserveTimelotRequestModel.data.distributor_reference = RandomDigits(10);
            var response = Mapper <TimeSlotResponseModel> .MapFromJson(await ReserveBooking(reserveTimelotRequestModel));

            if (response != null && response.data.booking_status == "Reserved")
            {
                results.Success  = true;
                results.FromTime = fromDate.ToString() + offset;
                results.EndTime  = endDate.ToString() + offset;
                results.Reservation_reference   = response.data.reservation_reference;
                results.Reservation_valid_until = response.data.reservation_valid_until;
                results.Distributor_reference   = response.data.distributor_reference;
                results.TicketId = citySightSeeingTicketDetails.TicketId;
                results.TimeSlot = command.EventTicketAttributeList[0].TimeSlot;
            }
            else
            {
                results.Success = false;
            }
            return(results);
        }
Пример #14
0
        public void Can_Lookup_TimeZone_Honolulu()
        {
            var tz = TimeZoneLookup.GetTimeZone(21.3, -157.8167).Result;

            Assert.AreEqual("Pacific/Honolulu", tz);
        }
        public void Can_Lookup_Offset_Extreme_East()
        {
            var tz = TimeZoneLookup.GetTimeZone(80, 179).Result;

            Assert.Equal("Etc/GMT-12", tz);
        }
Пример #16
0
        public void Can_Lookup_TimeZone_London()
        {
            var tz = TimeZoneLookup.GetTimeZone(51.5072, -0.1275).Result;

            Assert.AreEqual("Europe/London", tz);
        }
        public void Can_Lookup_Offset_TitanticWreck()
        {
            var tz = TimeZoneLookup.GetTimeZone(41.7325, -49.9469).Result;

            Assert.Equal("Etc/GMT+3", tz);
        }
Пример #18
0
        public void Can_Lookup_TimeZone_Sydney()
        {
            var tz = TimeZoneLookup.GetTimeZone(-33.86, 151.2111).Result;

            Assert.AreEqual("Australia/Sydney", tz);
        }
Пример #19
0
 /// <summary>
 /// Returns timezone results for the location with the given latitude and longitude.
 /// </summary>
 /// <param name="latitude">The latitude.</param>
 /// <param name="longitude">The longitude.</param>
 /// <returns>The timezone details.</returns>
 public TimeZoneResult GetIANATimezone(double latitude, double longitude)
 {
     return(TimeZoneLookup.GetTimeZone(latitude, longitude));
 }
Пример #20
0
        public void Can_Lookup_TimeZone_Mazatlan()
        {
            var tz = TimeZoneLookup.GetTimeZone(23.22, -106.42).Result;

            Assert.AreEqual("America/Mazatlan", tz);
        }
Пример #21
0
        protected override async Task <ICommandResult> Handle(CreateBookingCommand command)
        {
            CreateBookingCommandResult results = new CreateBookingCommandResult();
            var        transaction             = _transactionRepository.Get(command.TransactionId);
            var        transactionDetail       = _transactionDetailRepository.GetByTransactionId(command.TransactionId);
            RootObject rootObject = new RootObject();

            if (transaction != null)
            {
                IDictionary <string, long> ticketCategoryValues = new Dictionary <string, long>();
                var feelBarcodemapping = _feelBarcodeMappingRepository.GetByTransactionDetailIds(transactionDetail.Select(s => s.Id)).ToList();
                if (feelBarcodemapping.Count() == 0)
                {
                    var transactionDetailModel = AutoMapper.Mapper.Map <IEnumerable <TransactionDetail> >(transactionDetail);
                    GetBarcodeResponseViewModel           getBarcodeResponseViewModel = new GetBarcodeResponseViewModel();
                    FIL.Contracts.Models.FeelBarcode.Data data = new FIL.Contracts.Models.FeelBarcode.Data();
                    Address     address     = new Address();
                    Contact     contact     = new Contact();
                    BookingType bookingType = new BookingType();
                    List <FIL.Contracts.Models.FeelBarcode.BookingDetail> bookingDetails = new List <FIL.Contracts.Models.FeelBarcode.BookingDetail>();
                    foreach (var transactiondetail in transactionDetailModel)
                    {
                        var eventTicketAttributes        = _eventTicketAttributeRepository.Get(transactiondetail.EventTicketAttributeId);
                        var eventTicketDetails           = _eventTicketDetailRepository.Get(eventTicketAttributes.EventTicketDetailId);
                        var eventDetails                 = _eventDetailRepository.Get(eventTicketDetails.EventDetailId);
                        var currentTransaction           = _transactionRepository.Get(transaction.Id);
                        var currentTransactionDetail     = _transactionDetailRepository.Get(transactiondetail.Id);
                        var currentEventTicketAttributes = _eventTicketAttributeRepository.Get((int)currentTransactionDetail.EventTicketAttributeId);
                        var currentEventTicketDetail     = _eventTicketDetailRepository.Get(currentEventTicketAttributes.EventTicketDetailId);
                        var currentTicketCategory        = _ticketCategoryRepository.Get((int)currentEventTicketDetail.TicketCategoryId);
                        var currentEventDetails          = _eventDetailRepository.Get(currentEventTicketDetail.EventDetailId);
                        var curretVenue         = _venueRepository.Get(currentEventDetails.VenueId);
                        var currentCity         = _cityRepository.Get(curretVenue.CityId);
                        var currentstate        = _stateRepository.Get(currentCity.StateId);
                        var currentcountry      = _countryRepository.Get(currentstate.CountryId);
                        var currentEvent        = _eventRepository.Get(currentEventDetails.EventId);
                        var currentCurrencyType = _currencyTypeRepository.Get(currentEventTicketAttributes.CurrencyId);

                        if (currentEvent.EventSourceId == EventSource.CitySightSeeing)
                        {
                            ticketCategoryValues.Add(currentTicketCategory.Name.ToLower(), transactiondetail.Id);
                            var      fromDate   = Convert.ToDateTime(transactiondetail.VisitDate).ToUniversalTime();
                            DateTime localTime1 = fromDate;
                            DateTime endDate    = DateTime.Now;
                            localTime1 = DateTime.SpecifyKind(localTime1, DateTimeKind.Local);
                            DateTimeOffset localTime2 = localTime1;
                            var            mystring   = localTime2.ToString();
                            var            offset     = mystring.Substring(mystring.Length - 6);
                            var            citySightSeeingEventDetailMapping             = _citySightSeeingEventDetailMappingRepository.GetByEventDetailId(currentEventDetails.Id);
                            var            citySightSeeingtickets                        = _citySightSeeingTicketRepository.Get(citySightSeeingEventDetailMapping.CitySightSeeingTicketId);
                            FIL.Contracts.Models.FeelBarcode.BookingDetail bookingDetail = new FIL.Contracts.Models.FeelBarcode.BookingDetail();
                            var citySightSeeingTicketDetails     = _citySightSeeingTicketDetailRepository.GetByTicketId(citySightSeeingtickets.TicketId);
                            var bookingDistributorReference      = RandomDigits(10);
                            var citySightSeeingTransactionDetail = new CitySightSeeingTransactionDetail();
                            if (citySightSeeingTicketDetails.TicketClass != 1)
                            {
                                citySightSeeingTransactionDetail = _citySightSeeingTransactionDetailRepository.GetByTransactionId(transactiondetail.TransactionId);
                                bookingType.from_date_time       = citySightSeeingTransactionDetail.FromDateTime;
                                bookingType.to_date_time         = citySightSeeingTransactionDetail.EndDateTime;
                                data.reservation_reference       = citySightSeeingTransactionDetail.ReservationReference;
                            }

                            var citySightSeeingLocations = _citySightSeeingLocationRepository.Get(citySightSeeingtickets.CitySightSeeingLocationId);

                            var locationDetail = await _googleMapApi.GetLatLongFromAddress(citySightSeeingLocations.Name);

                            string tz = ""; DateTime fromDateTime = DateTime.Now;; var offsetTime = "";
                            var    duration = citySightSeeingTicketDetails.Duration;
                            double lat      = Convert.ToDouble(locationDetail.Result.lat);
                            double lng      = Convert.ToDouble(locationDetail.Result.lng);
                            tz = TimeZoneLookup.GetTimeZone(lat, lng).Result;
                            TimeZoneInfo tzi           = TZConvert.GetTimeZoneInfo(tz);
                            var          visitDateTime = Convert.ToDateTime(transactiondetail.VisitDate);
                            var          timeSlot      = citySightSeeingTicketDetails.TicketClass == 1 ? "00:00" : citySightSeeingTransactionDetail.TimeSlot;
                            var          utcOffset     = tzi.BaseUtcOffset.ToString().Split(":")[0];
                            if (utcOffset.Contains("-"))
                            {
                                offset = utcOffset;
                            }
                            else
                            {
                                offset = "+" + utcOffset;
                            }
                            var formattedDateTime = visitDateTime.Year + "-" + visitDateTime.Month + "-" + visitDateTime.Day + "T" + timeSlot;
                            fromDate = Convert.ToDateTime(formattedDateTime);
                            if (duration.Contains("day"))
                            {
                                string[] day = duration.Split("day");
                                endDate = fromDate.AddDays(Convert.ToDouble(day[0]));
                            }
                            if (duration.Contains("hour"))
                            {
                                string[] hour = duration.Split("hour");
                                endDate = fromDate.AddHours(Convert.ToDouble(hour[0]));
                            }
                            var formattedEndDate = endDate.Year + "-" + endDate.Month + "-" + endDate.Day + "T" + endDate.TimeOfDay.ToString();
                            bookingType.from_date_time  = formattedDateTime + offset;
                            bookingType.to_date_time    = formattedEndDate + offset;
                            bookingDetail.ticket_type   = (currentTicketCategory.Name).ToUpper();
                            bookingDetail.count         = currentTransactionDetail.TotalTickets;
                            bookingDetail.extra_options = null;
                            bookingDetails.Add(bookingDetail);

                            bookingType.ticket_id = citySightSeeingTicketDetails.TicketId;
                            address.street        = curretVenue.Name;
                            address.postal_code   = "432243";
                            address.city          = currentCity.Name;

                            contact.address             = address;
                            contact.phonenumber         = currentTransaction.PhoneNumber;
                            data.currency               = currentCurrencyType.Code;
                            bookingType.booking_details = bookingDetails;
                            data.distributor_id         = _settings.GetConfigSetting <string>(SettingKeys.Integration.CitySightSeeing.DistributorId);
                            data.booking_type           = bookingType;
                            data.booking_name           = transaction.FirstName;
                            data.booking_email          = transaction.EmailId;
                            data.contact               = contact;
                            data.notes                 = null;
                            data.product_language      = "en";
                            data.distributor_reference = bookingDistributorReference;
                            rootObject.request_type    = "booking";
                            rootObject.data            = data;
                            var responeBooking = await GetBarcodeAsync(rootObject, transaction.Id, ticketCategoryValues);

                            if (responeBooking.data != null)
                            {
                                if (citySightSeeingTicketDetails.TicketClass != 1)
                                {
                                    citySightSeeingTransactionDetail.BookingReference            = responeBooking.data.booking_reference;
                                    citySightSeeingTransactionDetail.BookingDistributorReference = responeBooking.data.distributor_reference;
                                    citySightSeeingTransactionDetail.IsOrderConfirmed            = true;
                                    _citySightSeeingTransactionDetailRepository.Save(citySightSeeingTransactionDetail);
                                }
                                else
                                {
                                    _citySightSeeingTransactionDetailRepository.Save(new CitySightSeeingTransactionDetail
                                    {
                                        AltId                       = Guid.NewGuid(),
                                        FromDateTime                = fromDate.ToString() + offset,
                                        EndDateTime                 = endDate.ToString() + offset,
                                        HasTimeSlot                 = false,
                                        BookingReference            = responeBooking.data.booking_reference,
                                        BookingDistributorReference = bookingDistributorReference,
                                        TicketId                    = citySightSeeingtickets.TicketId,
                                        TransactionId               = command.TransactionId,
                                        IsOrderConfirmed            = true,
                                        ModifiedBy                  = command.ModifiedBy
                                    });
                                }
                                results.Success = true;
                                return(results);
                            }
                            else
                            {
                                results.Success = false;
                                return(results);
                            }
                        }
                    }
                }
                else
                {
                    results.IsExists = true;
                    return(results);
                }
            }
            else
            {
                results.Success = false;
                return(results);
            }
            return(results);
        }