Ejemplo n.º 1
0
        /// <summary>
        ///		Prepares a performance sort field to be passed as a string parameter to a web API
        ///		method
        /// </summary>
        /// <param name="data">A performance sort field to convert</param>
        /// <exception cref="ApiParameterMaskException">
        ///		Thrown when an unrecognized PerfSortField was encountered
        /// </exception>
        /// <returns>
        ///		The name of a column to sort performances by, or an empty string if the value was
        ///		null
        /// </returns>
        private static string Mask(PerfSortField? data)
        {
            // If the sort field is null, return String.Empty
            if (data == null)
            {
                return String.Empty;
            }

            // Otherwise attempt to discern a performance column name from the specified sort field
            switch (data)
            {
                case PerfSortField.PackageId: return "pkg_no";
                case PerfSortField.Id: return "perf_no";
                case PerfSortField.PackageCode: return "pkg_code";
                case PerfSortField.Code: return "perf_code";
                case PerfSortField.Date: return "perf_date";
                case PerfSortField.GrossAvailability: return "gross_availbility";
                case PerfSortField.AvailabilityByCustomer: return "availbility_by_customer";
                case PerfSortField.VenueId: return "facility_no";
                case PerfSortField.MetCriteria: return "met_criteria_in";
                case PerfSortField.TimeSlotId: return "time_slot";
                case PerfSortField.Name: return "description";
                case PerfSortField.OnSale: return "on_sale_ind";
                case PerfSortField.BusinessUnit: return "bu";
                case PerfSortField.ProdSeasonId: return "prod_season_no";
                case PerfSortField.NoName: return "no_name";
                case PerfSortField.ZmapId: return "zmap_no";
                case PerfSortField.StartDate: return "start_dt";
                case PerfSortField.EndDate: return "end_dt";
                case PerfSortField.FirstDate: return "first_dt";
                case PerfSortField.LastDate: return "last_dt";
                case PerfSortField.VenueName: return "facility_desc";
                case PerfSortField.Weight: return "weight";
                case PerfSortField.SuperPackage: return "super_pkg_ind";
                case PerfSortField.FixedSeat: return "fixed_seat_ind";
                case PerfSortField.Flex: return "flex_ind";
                case PerfSortField.ProdTypeId: return "prod_type";
                case PerfSortField.ProdTypeName: return "prod_type_desc";
                case PerfSortField.SeasonId: return "season_no";
                case PerfSortField.SeasonName: return "season_desc";
                case PerfSortField.StatusId: return "perf_status";
                case PerfSortField.StatusName: return "perf_status_desc";
                case PerfSortField.Relevance: return "relevance";
                case PerfSortField.PremiereId: return "premiere_id";
                case PerfSortField.PremiereName: return "premiere_desc";
                case PerfSortField.TimeSlotName: return "time_slot_desc";
            }

            // Throw an exception if the sort field wasn't accounted for in the above list
            throw new ApiParameterMaskException(data.Value.ToString());
        }
Ejemplo n.º 2
0
        private static PerfCollection DoGetPerformances(string sessionKey,
				DateTime? startDateTime, DateTime? endDateTime, short? venueId, short? modeOfSaleId,
				int? businessUnit, PerfSortField? sortField, string[] keywords,
				bool? matchAllKeywords, string artistLastName, string artistFirstName,
				string artistMiddleName, string fullTextSearchCriteria,
				FullTextSearchSyntaxType? fullTextSearchSyntaxType,
				ContentTypeIdsParam contentTypeIds, int[] perfIds, int[] seasonIds,
				bool? computeSeatCounts)
        {
            string cKeywordAndOrStatementValue;
            if (matchAllKeywords.HasValue)
            {
                cKeywordAndOrStatementValue = matchAllKeywords.Value ? "2" : "1";
            }
            else
            {
                cKeywordAndOrStatementValue = String.Empty;
            }
            string sArtistLastNameValue;
            if (artistLastName == null && artistFirstName == null && artistMiddleName == null)
            {
                sArtistLastNameValue = String.Empty;
            }
            else
            {
                sArtistLastNameValue = Mask(artistLastName) + "/" + Mask(artistFirstName)
                        + "/" + Mask(artistMiddleName);
            }
            DataSet results = UnsecureTess.GetPerformancesEx4(
                    sWebSessionId: Mask(sessionKey),
                    sStartDate: startDateTime.HasValue ? startDateTime.ToString() : String.Empty,
                    sEndDate: endDateTime.HasValue ? endDateTime.ToString() : String.Empty,
                    iVenueID: venueId ?? -1,
                    iModeOfSale: modeOfSaleId ?? Defaults.ModeOfSaleId,
                    iBusinessUnit: businessUnit ?? -1,
                    sSortString: Mask(sortField),
                    sKeywords: keywords == null ? String.Empty : String.Join(",", keywords),
                    cKeywordAndOrStatement: cKeywordAndOrStatementValue,
                    sArtistLastName: sArtistLastNameValue,
                    sFullText: fullTextSearchCriteria ?? String.Empty,
                    sFullTextType: Mask(fullTextSearchSyntaxType),
                    sContentType: contentTypeIds == null ? String.Empty : contentTypeIds.ToString(),
                    sPerformanceIds: perfIds == null ? String.Empty : String.Join(",", perfIds),
                    sSeasonIds: seasonIds == null ? String.Empty : String.Join(",", seasonIds),
                    bIncludeSeatCounts: computeSeatCounts ?? false);
            if (results.Tables["Performance"].Rows.Count == 0)
            {
                return null;
            }
            return new PerfCollection(results.Tables["Performance"]);
        }