Example #1
0
        public async Task <FindVenuesWebModel> FindSnookerVenues2(Location location, string country, int radiusInMeters, string searchQuery, int maxCount)
        {
            string url = WebApiUrl + "Venues/FindSnooker2?radiusInMeters=" + radiusInMeters.ToString("F0");

            url += "&country=" + country;
            url += "&maxCount=" + maxCount;
            if (location != null)
            {
                url += "&latitude=" + location.Latitude + "&longitude=" + location.Longitude;
            }
            if (searchQuery == null)
            {
                searchQuery = "";
            }
            searchQuery = searchQuery.Trim();
            if (searchQuery.Length > 0)
            {
                url += "&searchQuery=" + System.Net.WebUtility.UrlEncode(searchQuery);
            }
            try
            {
                string json = await this.sendGetRequestAndReceiveResponse(url, true);

                FindVenuesWebModel result = JsonConvert.DeserializeObject <FindVenuesWebModel>(json);
                TraceHelper.TraceInfo("FindSnookerVenues2 - ok");
                return(result);
            }
            catch (Exception exc)
            {
                TraceHelper.TraceException("FindSnookerVenues2 exception", exc);
                LastException    = exc;
                LastExceptionUrl = url;
                return(null);
            }
        }
Example #2
0
        void doOnVenuesLoaded(FindVenuesWebModel venuesFromWeb)
        {
            TraceHelper.TraceInfoForResponsiveness("doOnVenuesLoaded");

            this.venues = venuesFromWeb != null ? venuesFromWeb.Venues : null;
            this.fillMap();
            this.fillList();
            this.layoutForTheList.Padding = new Thickness(0);
            if (venues == null)
            {
                this.labelStatus.Text      = "Couldn't load venues. Internet issues?";
                this.panelStatus.IsVisible = true;
            }
            else if (venuesFromWeb != null && venuesFromWeb.TotalCountAvailable > MaxVenuesToLoad)
            {
                this.labelStatus.Text         = "Showing random " + MaxVenuesToLoad.ToString() + " venues within the map area.";
                this.layoutForTheList.Padding = new Thickness(0, 30, 0, 0);
                this.panelStatus.IsVisible    = true;
            }
            else
            {
                this.labelStatus.Text      = "-";
                this.panelStatus.IsVisible = false;
            }

            bool isMapOnDifferentCommunity = false;

            if (venuesFromWeb != null && venuesFromWeb.ClosestMetro != null)
            {
                if (this.CurrentCommunity.MetroID > 0 && this.CurrentCommunity.MetroID != venuesFromWeb.ClosestMetro.ID)
                {
                    isMapOnDifferentCommunity = true;
                }
                if (this.CurrentCommunity.MetroID <= 0 && this.CurrentCommunity.Country != null && venuesFromWeb.ClosestMetro.Country != this.CurrentCommunity.Country.ThreeLetterCode)
                {
                    isMapOnDifferentCommunity = true;
                }
            }
            if (isMapOnDifferentCommunity)
            {
                this.communitySelectorControl.AnimateWithRed();
            }

            this.communitySelectorControl.IsAskToTapVisible = isMapOnDifferentCommunity == true && this.IsFindVenueMode == false;
        }
Example #3
0
        public FindVenuesWebModel FindSnooker2(int radiusInMeters, string country, int maxCount, string searchQuery = "", double?latitude = null, double?longitude = null)
        {
            Location location = null;

            if (latitude != null && longitude != null)
            {
                location = new Location(latitude.Value, longitude.Value);
            }
            Country countryObj = Country.Get(country);

            // load venues
            var loadedVenues   = new VenuesLogic(db).FindVenues2(location, radiusInMeters, countryObj, searchQuery, true);
            int allVenuesCount = loadedVenues.Count;

            // keep up to maxCount venues
            List <VenueWebModel> venues;

            if (allVenuesCount <= maxCount)
            {
                venues = loadedVenues;
            }
            else
            {
                venues = new List <VenueWebModel>();
                Random random = new Random();
                for (int i = 0; i < maxCount; ++i)
                {
                    int index = random.Next(loadedVenues.Count - 1);
                    venues.Add(loadedVenues[index]);
                    loadedVenues.RemoveAt(index);
                }
            }

            FindVenuesWebModel model = new FindVenuesWebModel();

            model.Venues = venues;
            if (location != null)
            {
                model.ClosestMetro = new MetrosLogic(db).GetClosestMetro(location);
            }
            model.TotalCountAvailable = allVenuesCount;

            return(model);
        }