Example #1
0
        public PartialFindResult <VenueForApiContract> GetList(
            string query = "",
            VenueOptionalFields fields = VenueOptionalFields.None,
            int start = 0, int maxResults = defaultMax, bool getTotalCount = false,
            NameMatchMode nameMatchMode    = NameMatchMode.Auto,
            ContentLanguagePreference lang = ContentLanguagePreference.Default,
            VenueSortRule sortRule         = VenueSortRule.Name,
            double?latitude = null, double?longitude = null, double?radius = null, DistanceUnit distanceUnit = DistanceUnit.Kilometers)
        {
            var textQuery   = SearchTextQuery.Create(query, nameMatchMode);
            var queryParams = new VenueQueryParams {
                Coordinates  = new GeoPointQueryParams(latitude, longitude),
                DistanceUnit = distanceUnit,
                Paging       = new PagingProperties(start, maxResults, getTotalCount),
                Radius       = radius,
                SortRule     = sortRule,
                TextQuery    = textQuery
            };

            return(queries.Find(v => new VenueForApiContract(v, lang, fields), queryParams));
        }
        public VenueForApiContract(Venue venue, ContentLanguagePreference languagePreference, VenueOptionalFields fields)
        {
            ParamIs.NotNull(() => venue);

            Id                 = venue.Id;
            Address            = venue.Address;
            AddressCountryCode = venue.AddressCountryCode;
            Coordinates        = new OptionalGeoPointContract(venue.Coordinates);
            Deleted            = venue.Deleted;
            Name               = venue.TranslatedName[languagePreference];
            Status             = venue.Status;
            Version            = venue.Version;

            if (fields.HasFlag(VenueOptionalFields.AdditionalNames))
            {
                AdditionalNames = venue.Names.GetAdditionalNamesStringForLanguage(languagePreference);
            }

            if (fields.HasFlag(VenueOptionalFields.Description))
            {
                Description = venue.Description;
            }

            if (fields.HasFlag(VenueOptionalFields.Events))
            {
                Events = venue.Events.OrderBy(e => e.SeriesNumber).ThenBy(e => e.Date.DateTime).Select(e => new ReleaseEventContract(e, languagePreference)).ToArray();
            }

            if (fields.HasFlag(VenueOptionalFields.Names))
            {
                Names = venue.Names.Select(n => new LocalizedStringContract(n)).ToArray();
            }

            if (fields.HasFlag(VenueOptionalFields.WebLinks))
            {
                WebLinks = venue.WebLinks.Links.Select(w => new WebLinkForApiContract(w, WebLinkOptionalFields.DescriptionOrUrl)).ToArray();
            }
        }