Пример #1
0
        static public void CreateSubscription(RegisterNotificationsRequest request)
        {
            TravelerRepository travelersRepository = new TravelerRepository();
            Traveler           traveler            = travelersRepository.FindBy(t => t.TravelerUserIdentity == request.DeviceID).SingleOrDefault();

            if (traveler != null)
            {
                WNSManager.RegisterDevice(traveler.TravelerId, request.DeviceURI);
            }
        }
Пример #2
0
        public HttpResponseMessage RegisterForNotifications
            ([FromBody] RegisterNotificationsRequest request)
        {
            var traveler = Travelers.FindBy(t => t.TravelerUserIdentity == request.DeviceID).SingleOrDefault();

            // Handling the HTTP status codes
            if (traveler == null)
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound));
            }
            else
            {
                WNSManager.RegisterDevice(request.DeviceID, request.DeviceURI);
                return(Request.CreateResponse(HttpStatusCode.Created, request));
            }
        }
Пример #3
0
        static public void Publish(FlightSchedule updatedSchedule)
        {
            var flightsRepository      = new FlightRepository();
            var reservationsRepository = new ReservationRepository();

            Flight updatedFlight = flightsRepository.GetFlight(updatedSchedule.Flight.FlightId);
            var    reservations  = reservationsRepository.FindBy(
                r => r.DepartureFlight.FlightScheduleID == updatedSchedule.FlightScheduleId);

            var travelers = from r in reservations
                            select r.TravelerId;

            var notification = new ToastNotificationTextAndImage
            {
                TargetClientDevices = travelers.ToList(),
                TextHeading         = string.Format("Flight {0} Was Rescheduled", updatedFlight.FlightNumber),
                TextBodyWrap        = string.Format("Flight {0} was rescheduled for {1}", updatedFlight.FlightNumber, updatedSchedule.ActualDeparture)
            };

            WNSManager.DispatchNotification(notification);
        }
        public override bool OnStart()
        {
            WNSManager.Authenticate();

            // Set the maximum number of concurrent connections
            ServicePointManager.DefaultConnectionLimit = 12;

            // Create the queue if it does not exist already
            string connectionString = CloudConfigurationManager.GetSetting("Microsoft.ServiceBus.ConnectionString");
            var    namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString);

            if (!namespaceManager.QueueExists(QueueName))
            {
                namespaceManager.CreateQueue(QueueName);
            }

            // Initialize the connection to Service Bus Queue
            Client    = QueueClient.CreateFromConnectionString(connectionString, QueueName);
            IsStopped = false;
            return(base.OnStart());
        }
 static NotificationsController()
 {
     WNSManager.Authenticate();
 }