public void ListAvailableEventOccurrences()
        {
            //setup
            var handler = CreateHandler();
            var request = new ListAvailableEventOccurrencesRequest { EventId = 1, IncludExternalIds = true };

            //act
            var response = HandleRequest<ListAvailableEventOccurrencesResponse>(handler, request);

            //assert
            Assert.IsNotNull(response);
        }
예제 #2
0
        private List<Field> PopulateOccurrencesFieldData(ModuleInstanceView parent, EventDetailDto eventDetail, Field templateField, IDictionary<string, string> parameters)
        {
            var locationsFields = new List<Field>();
            var request = new ListAvailableEventOccurrencesRequest() { EventId = int.Parse(eventDetail.Id) };
            var response = parent.ProcessRequest<ListAvailableEventOccurrencesResponse>(request);
            var seoHelper = new SeoHelper(parent, parameters);

            foreach (var occurrence in response.EventOccurrences)
            {
                var occurrenceField = (Field)templateField.Clone();

                if (string.IsNullOrEmpty(_viewSettings.SeoSchema))
                    _viewSettings.SeoSchema = seoHelper.BuildSeoSchemaField(occurrence);

                foreach (var column in occurrenceField.FieldColumns)
                {
                    foreach (var field in column.Fields)
                    {
                        switch (field.FieldName)
                        {
                            case "LocationName":
                                field.Value = occurrence.EffectiveLocationName;
                                break;
                            case "LocationAddress":
                                field.Value = occurrence.EffectiveCompleteAddress;
                                break;
                            case "Presenter":
                                field.Value = occurrence.Presenter;
                                break;
                            case "ContactName":
                                field.Value = occurrence.EffectiveContactName;
                                break;
                            case "ContactPhone":
                                var sb = new StringBuilder();
                                sb.Append(occurrence.EffectiveContactPhone);
                                if (!string.IsNullOrEmpty(occurrence.EffectiveContactPhoneExtension))
                                    sb.Append(" ext. " + occurrence.EffectiveContactPhoneExtension);
                                field.Value = sb.ToString();
                                break;
                            case "ContactEmail":
                                field.Value = occurrence.EffectiveContactEmail;
                                break;
                            case "MaxAttendees":
                                field.Value = occurrence.EffectiveMaximumAttendees;
                                break;
                            case "Cost":
                                field.Value = string.Format("{0:C}", occurrence.EffectiveCost);
                                break;
                            case "AvailableSeats":
                                field.Value = occurrence.Availability;
                                break;
                            case "SpecialInstructions":
                                field.Value = occurrence.SpecialInstructions;
                                break;
                            case "Map":
                                field.Value = "mapDiv_" + occurrence.Id;
                                field.MappingProvider = _mappingSettings.MappingProvider.ToString().ToUpperInvariant();
                                field.MapItem = new MapItem()
                                {
                                    Title = occurrence.EventTitle,
                                    Latitude = occurrence.Latitude.HasValue ? occurrence.Latitude.ToString() : string.Empty,
                                    Longitude = occurrence.Longitude.HasValue ? occurrence.Longitude.ToString() : string.Empty,
                                    LocationAddress = occurrence.EffectiveCompleteAddress,
                                    LocationPhoneNum = occurrence.EffectiveContactPhone
                                };
                                break;
                            case "RegisterButton":
                                if (occurrence.IsRegistrationEnabled)
                                    field.Value = "<input type='button' class='btn btn-primary' value='Register' data-ng-click='Register(" + occurrence.Id + ")' />";
                                else
                                    field.Value = null;
                                break;
                            case "AddToCartButton":
                                if (occurrence.IsRegistrationEnabled)
                                    field.Value = "<input type='button' class='btn btn-primary' value='Add To Cart' data-ng-click='AddToCart(" + occurrence.Id + ")' />";
                                else
                                    field.Value = null;
                                break;
                            case "DateAndTime":
                                var dtBuilder = new StringBuilder();
                                var formatStr = "{0} - {1} until {2}";
                                foreach(var d in occurrence.Dates)
                                {
                                    if (d.StartDate.HasValue && d.EndDate.HasValue)
                                    {
                                        if (dtBuilder.Length > 0)
                                            dtBuilder.Append("<br/>");

                                        var dateStr = d.StartDate.Value.ToString("MMM. d, yyyy");
                                        var startTime = d.StartDate.Value.ToShortTimeString();
                                        var endTime = d.EndDate.Value.ToShortTimeString();
                                        dtBuilder.AppendFormat(formatStr, dateStr, startTime, endTime);
                                    }
                                }
                                field.Value = dtBuilder.ToString();
                                break;
                        }
                    }
                }

                locationsFields.Add(occurrenceField);
            }

            return locationsFields;
        }
예제 #3
0
        private string GetEvent(ConvertServiceRequest request)
        {
            var eventId = 0;
            if (request.Parameters.ContainsKey("externalId"))
            {
                eventId = LookupDataEntityMapId("Event", request.Parameters["externalId"], false);
            }
            else if (request.Parameters.ContainsKey("id"))
            {
                if (!int.TryParse(request.Parameters["id"], out eventId))
                    throw new BusinessException("Event Id must be a valid integer");
            }

            // create the requests
            var eventRequest = new ReadEventDetailRequest { EventId = eventId, IncludeDisabledAndUnpublished = true };
            var occurrencesRequest = new ListAvailableEventOccurrencesRequest { EventId = eventId, IncludExternalIds = true };
            var discountCodeRequest = new ListEventDiscountCodesRequest { EventId = eventId };

            // add the requests to the dispatcher
            var evnt = ProcessRequest<ReadEventDetailResponse>(eventRequest).Event;
            var occurrences = ProcessRequest<ListAvailableEventOccurrencesResponse>(occurrencesRequest).EventOccurrences;
            var discountCodes = ProcessRequest<ListEventDiscountCodesResponse>(discountCodeRequest).DiscountCodes;

            var viewModel = new EventDetailViewModelV2
            {
                Event = new EventV2
                {
                    EventId = evnt.Id,
                    Title = evnt.Title,
                    EventTopics = evnt.EventTopicNames.Select(e => new EventTopicDtoV2 { Name = e.ToString(CultureInfo.InvariantCulture) }).ToList(),
                    EventTypes = evnt.EventTypeNames.Select(e => new EventTypeDtoV2 { Name = e.ToString(CultureInfo.InvariantCulture) }).ToList(),
                    DirectUrl = evnt.DirectUrl,
                    SummaryDescription = evnt.SummaryDescription,
                    EventContent = evnt.EventContent,
                    PublishDate = evnt.PublishDate.HasValue ? evnt.PublishDate.Value.ToString(CultureInfo.InvariantCulture) : null,
                    UnpublishDate = evnt.UnpublishDate.HasValue ? evnt.UnpublishDate.Value.ToString(CultureInfo.InvariantCulture) : null,
                    ContactName = evnt.ContactName,
                    ContactPhone = evnt.ContactPhone,
                    ContactEmail = evnt.ContactEmail,
                    ContactPhoneExtension = evnt.ContactPhoneExtension,
                    MaximumAttendees = evnt.MaximumAttendees.HasValue ? evnt.MaximumAttendees.Value.ToString(CultureInfo.InvariantCulture) : null,
                    Cost = evnt.Cost.ToString(CultureInfo.InvariantCulture),
                    IsEnabled = evnt.IsEnabled.ToString(CultureInfo.InvariantCulture),
                    ExternalUrl = evnt.ExternalUrl,
                    OrgUnitId = evnt.OrgUnitId.HasValue ? evnt.OrgUnitId.Value.ToString(CultureInfo.InvariantCulture) : null,
                    ImagePath = evnt.ImagePath,
                    PictureId = evnt.PictureId.HasValue ? evnt.PictureId.Value.ToString(CultureInfo.InvariantCulture) : null,
                    InternalOnly = evnt.InternalOnly.ToString(CultureInfo.InvariantCulture),
                    PublicOnly = evnt.PublicOnly.ToString(CultureInfo.InvariantCulture),
                    CostCenter = evnt.CostCenter,
                    PaymentProcessorConfigurationId = evnt.PaymentProcessorConfigurationId.HasValue ? evnt.PaymentProcessorConfigurationId.Value.ToString(CultureInfo.InvariantCulture) : null,
                    IsNotificationListEnabled = evnt.IsNotificationListEnabled.ToString(CultureInfo.InvariantCulture),
                    IsNotifyContactEnabled = evnt.IsNotifyContactEnabled.ToString(CultureInfo.InvariantCulture),
                    NotificationFrequency = evnt.NotificationFrequency,
                    EventExternalId = evnt.EventExternalId,
                    Keywords = evnt.Keywords,
                    CustomKeywords = evnt.CustomKeywords,
                    IsRegistrationEnabled = evnt.IsRegistrationEnabled.ToString(CultureInfo.InvariantCulture),
                    SpecialInstructions = evnt.SpecialInstructions,
                    Custom1 = evnt.Custom1,
                    Custom2 = evnt.Custom2,
                    Custom3 = evnt.Custom3,
                    DynamicColumns = evnt.DynamicColumns,
                    AllowPayOnSite = evnt.AllowPayOnSite.ToString(CultureInfo.InvariantCulture),

                    DiscountCodes = discountCodes.Select(d => new DiscountCodeDtoV2
                    {
                        Code = d.Code,
                        Description = d.Description,
                        DiscountType = d.DiscountTypeName,
                        DiscountValue = d.DiscountValue.ToString(CultureInfo.InvariantCulture),
                        IsEnabled = d.IsEnabled.ToString(CultureInfo.InvariantCulture),
                        IsGroupCode = d.IsGroupCode.ToString(CultureInfo.InvariantCulture),
                        IsFromOrgUnit = d.IsFromOrgUnit.ToString(CultureInfo.InvariantCulture),
                        RequiredGroupSize = d.RequiredGroupSize.HasValue ? d.RequiredGroupSize.Value.ToString(CultureInfo.InvariantCulture) : null,
                        StartDate = d.StartDate.HasValue ? d.StartDate.Value.ToString(CultureInfo.InvariantCulture) : null,
                        EndDate = d.EndDate.HasValue ? d.EndDate.Value.ToString(CultureInfo.InvariantCulture) : null
                    }).ToList()
                },

                Occurrences = occurrences.Select(o => new EventOccurrenceV2
                {
                    OccurrenceId = o.Id.ToString(CultureInfo.InvariantCulture),
                    EventId = evnt.Id.ToString(CultureInfo.InvariantCulture),
                    EventExternalId = evnt.EventExternalId,
                    IsEnabled = o.IsEnabled.ToString(CultureInfo.InvariantCulture),
                    OrgUnitId = o.OrgUnitId.HasValue ? o.OrgUnitId.Value.ToString(CultureInfo.InvariantCulture) : null,
                    OrgUnitExternalId = o.OrgUnitExternalId,
                    LocationOrgUnitId = o.LocationOrgUnitId.HasValue ? o.LocationOrgUnitId.Value.ToString(CultureInfo.InvariantCulture) : null,
                    LocationOrgUnitExternalId = o.LocationOrgUnitExternalId,
                    LocationName = o.LocationName,
                    Address1 = o.Address1,
                    Address2 = o.Address2,
                    City = o.City,
                    State = o.StateName,
                    PostalCode = o.PostalCode,
                    Country = o.CountryName,
                    Latitude = o.Latitude.HasValue ? o.Latitude.Value.ToString(CultureInfo.InvariantCulture) : null,
                    Longitude = o.Longitude.HasValue ? o.Longitude.Value.ToString(CultureInfo.InvariantCulture) : null,
                    ContactName = o.EffectiveContactName,
                    ContactPhone = o.EffectiveContactPhone,
                    ContactPhoneExtension = o.EffectiveContactPhoneExtension,
                    ContactEmail = o.EffectiveContactEmail,
                    MaximumAttendees = o.EffectiveMaximumAttendees.HasValue ? o.EffectiveMaximumAttendees.Value.ToString(CultureInfo.InvariantCulture) : null,
                    Presenter = o.Presenter,
                    Cost = o.EffectiveCost.ToString(CultureInfo.InvariantCulture),
                    CostCenter = o.CostCenter,
                    RegistrationStartDate = o.RegistrationStartDate.HasValue ? o.RegistrationStartDate.Value.ToString(CultureInfo.InvariantCulture) : null,
                    RegistrationEndDate = o.RegistrationEndDate.HasValue ? o.RegistrationEndDate.Value.ToString(CultureInfo.InvariantCulture) : null,
                    IsPriceScheduleEnabled = o.IsPriceScheduleEnabled.ToString(CultureInfo.InvariantCulture),
                    EarlyCost = o.EarlyCost.HasValue ? o.EarlyCost.Value.ToString(CultureInfo.InvariantCulture) : null,
                    EarlyCostEndDate = o.EarlyCostEndDate.HasValue ? o.EarlyCostEndDate.Value.ToString(CultureInfo.InvariantCulture) : null,
                    EarlyCostEndDays = o.EarlyCostEndDays.HasValue ? o.EarlyCostEndDays.Value.ToString(CultureInfo.InvariantCulture) : null,
                    LateCost = o.LateCost.HasValue ? o.LateCost.Value.ToString(CultureInfo.InvariantCulture) : null,
                    LateCostStartDate = o.LateCostStartDate.HasValue ? o.LateCostStartDate.Value.ToString(CultureInfo.InvariantCulture) : null,
                    LateCostStartDays = o.LateCostStartDays.HasValue ? o.LateCostStartDays.Value.ToString(CultureInfo.InvariantCulture) : null,
                    PaymentProcessorConfigurationId = o.PaymentProcessorConfigurationId.HasValue ? o.PaymentProcessorConfigurationId.Value.ToString(CultureInfo.InvariantCulture) : null,
                    DynamicFormsId = o.DynamicFormsId.HasValue ? o.DynamicFormsId.Value.ToString(CultureInfo.InvariantCulture) : null,
                    OccurrenceExternalId = o.EventOccurrenceExternalId,
                    IsRegistrationEnabled = o.IsRegistrationEnabled.ToString(CultureInfo.InvariantCulture),
                    IsNotificationListEnabled = o.IsNotificationListEnabled.ToString(CultureInfo.InvariantCulture),
                    IsNotifyContactEnabled = o.IsNotifyContactEnabled.ToString(CultureInfo.InvariantCulture),
                    SpecialInstructions = o.SpecialInstructions,
                    AllowPayOnSite = o.AllowPayOnSite.ToString(CultureInfo.InvariantCulture),
                    EventOccurrenceDates = o.Dates.Select(d => new EventOccurrenceDateV2
                    {
                        StartDate = d.StartDate.HasValue ? d.StartDate.Value.ToString(CultureInfo.InvariantCulture) : null,
                        EndDate = d.EndDate.HasValue ? d.EndDate.Value.ToString(CultureInfo.InvariantCulture) : null
                    }).ToList()
                }).ToArray()
            };

            return CommonUtils.XmlSerialize(viewModel);
        }