public void AlertSubscribers(NotificationEventType notificationType, long senderIndex)
        {
            _LogHelper.Log("FDS32432KJ", $"Start. Notification type {notificationType.ToString()} Sender index: {senderIndex}", LogLevel.Information, true);


            if (notificationType == NotificationEventType.OrderChange)
            {
                for (int i = QueueList.Count - 1; i > senderIndex; i--)
                {
                    if (i != 0)
                    {
                        string notificationText = _localizationHelper.GetLocalizedString(StringToLocalize.OrderChangeAlert)
                                                  .Replace("[QUEUEPOS]", i.ToString())
                                                  .Replace("[WAITTIME]", GetTimeToWait(QueueList[i].ChatId).ToString());
                        AlertSubscriber(QueueList[i].ChatId, notificationText);
                    }
                }
            }
            else
            {
                for (int i = QueueList.Count - 1; i > senderIndex; i--)
                {
                    string notificationText = _localizationHelper.GetLocalizedString(StringToLocalize.TimeChangeAlert)
                                              .Replace("[WAITTIME]", GetTimeToWait(QueueList[i].ChatId).ToString());
                    AlertSubscriber(QueueList[i].ChatId, notificationText);
                }
            }
        }
        public NotificationSubscription CreateSubscriptionForTeam()
        {
            NotificationSubscription newSubscription;

            WebApiTeamRef team = ClientSampleHelpers.FindAnyTeam(this.Context, null);

            NotificationHttpClient notificationClient = Context.Connection.GetClient <NotificationHttpClient>();

            // Query the available event types and find the first that can be used in a custom subscription
            List <NotificationEventType> eventTypes = notificationClient.ListEventTypesAsync().Result;
            NotificationEventType        eventType  = eventTypes.Find(e => { return(e.CustomSubscriptionsAllowed); });

            NotificationSubscriptionCreateParameters createParams = new NotificationSubscriptionCreateParameters()
            {
                Description = "A subscription for our team",
                Filter      = new ExpressionFilter(eventType.Id),
                Channel     = new UserSubscriptionChannel(),
                Subscriber  = new IdentityRef()
                {
                    Id = team.Id.ToString()
                }
            };

            newSubscription = notificationClient.CreateSubscriptionAsync(createParams).Result;

            LogSubscription(newSubscription);

            return(newSubscription);
        }
        /// <summary>
        /// Reset alert collection for Guest
        /// </summary>
        /// <param name="message">The message.</param>
        /// <param name="eventType">Instance of NotificationEventType</param>
        public static void RetrievePerson(NotificationEvent message, NotificationEventType eventType)
        {
            List<PersonType> personTypeList = new List<PersonType>();
            if (message != null && message.PersonTypeId == CommonConstants.GuestTypeId)
            {
                personTypeList.Add(PersonType.Guest);
            }
            else if (message != null && message.PersonTypeId == CommonConstants.CrewmemberTypeId)
            {
                personTypeList.Add(PersonType.Crewmember);
            }
            else if (message != null && message.PersonTypeId == CommonConstants.VisitorTypeId)
            {
                personTypeList.Add(PersonType.Visitor);
            }

            if (eventType == NotificationEventType.Reservation)
            {
                RetrieveGuestForReservation(message, eventType, personTypeList);
            }
            else
            {
                RetrieveGuest(message, eventType, personTypeList);
            }
        }
        public async Task <NotificationTemplateModel> GetNotificationTemplate(NotificationEventType eventType)
        {
            var result = await dbContext.NotificationTemplates.FirstOrDefaultAsync(x => x.EventType == eventType);

            if (result != null)
            {
                return(mapper.Map <NotificationTemplateModel>(result));
            }

            return(null);
        }
Пример #5
0
        public void Notify(NotificationPriority priority, NotificationEventType eventType, string logMessage)
        {
            switch (eventType)
            {
            case NotificationEventType.FileSystem:
                SystemSounds.Asterisk.Play();
                break;

            case NotificationEventType.Update:
                SystemSounds.Hand.Play();
                break;

            case NotificationEventType.Error:
                SystemSounds.Exclamation.Play();
                break;
            }
        }
        public NotificationSubscription CreateSubscriptionForUser()
        {
            NotificationHttpClient notificationClient = Context.Connection.GetClient <NotificationHttpClient>();

            // Query the available event types and find the first that can be used in a custom subscription
            List <NotificationEventType> eventTypes = notificationClient.ListEventTypesAsync().Result;
            NotificationEventType        eventType  = eventTypes.Find(e => { return(e.CustomSubscriptionsAllowed); });

            NotificationSubscriptionCreateParameters createParams = new NotificationSubscriptionCreateParameters()
            {
                Description = "My first subscription!",
                Filter      = new ExpressionFilter(eventType.Id),
                Channel     = new UserSubscriptionChannel()
            };

            NotificationSubscription newSubscription = notificationClient.CreateSubscriptionAsync(createParams).Result;

            LogSubscription(newSubscription);

            return(newSubscription);
        }
        public void Notify(NotificationPriority priority, NotificationEventType eventType, string logMessage)
        {
            const int scaleInterval = 131;
            var       duration      = priority switch
            {
                NotificationPriority.High => 500,
                NotificationPriority.Medium => 200,
                NotificationPriority.Low => 0,
                _ => 0,
            };
            var frequency = eventType switch
            {
                NotificationEventType.Error => scaleInterval * 1,
                NotificationEventType.FileSystem => scaleInterval * 2,
                NotificationEventType.JournalEntry => scaleInterval * 3,
                NotificationEventType.Update => scaleInterval * 5,
                _ => 0,
            };

            if (frequency > 0 && duration > 0)
            {
                System.Console.Beep(frequency, duration);
            }
        }
 /// <summary>
 /// Retrieves the guest.
 /// </summary>
 /// <param name="message">The message.</param>
 /// <param name="eventType">Type of the event.</param>
 /// <param name="personTypeList">The person type list.</param>
 private static void RetrieveGuest(NotificationEvent message, NotificationEventType eventType, List<PersonType> personTypeList)
 {
     Workstation workStation = DIContainer.Instance.Resolve<Workstation>();
     var task = Task.Run(async () => await PersonsService.RetrievePersonsBySearchText(workStation.Ship.ShipId, null, personTypeList, SearchType.PersonId, personId: message.PersonId, folioNumber: null));
     task.Wait();
     if (!task.IsCanceled && !task.IsFaulted)
     {
         var personData = task.Result;
         var personsPartyManager = DIContainer.Instance.Resolve<PersonsPartyManager>();
         if (personsPartyManager.CurrentParty != null)
         {
             ApplicationDispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)(() => UpdateSelectedPerson(message, personData, personTypeList, personsPartyManager, eventType)));
         }
     }
 }
        /// <summary>
        /// Function to find out whether is there need for search.
        /// </summary>
        /// <param name="message">Instance of NotificationEvent</param>
        /// <param name="eventType">NotificationEventType enumeration</param>
        /// <returns>True or false</returns>
        public static bool IsNeedForSearch(NotificationEvent message, NotificationEventType eventType)
        {
            var personsPartyManager = DIContainer.Instance.Resolve<PersonsPartyManager>();

            bool isNeedForSearch = false;
            PersonType personType = PersonType.Guest;

            if (message != null && message.PersonTypeId == CommonConstants.GuestTypeId)
            {
                personType = PersonType.Guest;
            }
            else if (message != null && message.PersonTypeId == CommonConstants.CrewmemberTypeId)
            {
                personType = PersonType.Crewmember;
            }
            else if (message != null && message.PersonTypeId == CommonConstants.VisitorTypeId)
            {
                personType = PersonType.Visitor;
            }

            if (eventType == NotificationEventType.Reservation)
            {
                isNeedForSearch = personsPartyManager.CurrentParty.Guests.Any(g => g.CruiseDetail.ReservationNumber.Equals(message.ReservationNumber, StringComparison.OrdinalIgnoreCase));
            }
            else
            {
                if (personType == PersonType.Guest)
                {
                    isNeedForSearch = personsPartyManager.CurrentParty.Guests.Any(g => g.GuestId.Equals(message.PersonId, StringComparison.OrdinalIgnoreCase));
                }
                else if (personType == PersonType.Crewmember)
                {
                    isNeedForSearch = personsPartyManager.CurrentParty.Crew.Any(c => c.CrewmemberId.Equals(message.PersonId, StringComparison.OrdinalIgnoreCase));
                }
                else if (personType == PersonType.Visitor)
                {
                    isNeedForSearch = personsPartyManager.CurrentParty.Visitors.Any(v => v.VisitorId.Equals(message.PersonId, StringComparison.OrdinalIgnoreCase));
                }
            }

            return isNeedForSearch;
        }
Пример #10
0
 /// <summary>
 /// Retrieves the guest.
 /// </summary>
 /// <param name="message">The message.</param>
 /// <param name="personData">The person data.</param>
 /// <param name="workStation">The work station.</param>
 /// <param name="eventType">Type of the event.</param>
 /// <param name="personTypeList">The person type list.</param>
 /// <param name="personList">The person list.</param>
 private static void RetrieveGuestForReservation(NotificationEvent message, Person personData, Workstation workStation, NotificationEventType eventType, List<PersonType> personTypeList, IList<PersonBase> personList)
 {
     var task = Task.Run(async () => await PersonsService.RetrievePersonsBySearchText(workStation.Ship.ShipId, message.ReservationNumber, personTypeList, SearchType.Reservation, null, null, null, 0, null, folioNumber: null));
     task.Wait();
     if (!task.IsCanceled && !task.IsFaulted)
     {
         personData = task.Result;
         if (personData != null)
         {
             personData.Guests.Iterate(g =>
             {
                 var person = personList.FirstOrDefault(p => p.PersonId.Equals(message.PersonId, StringComparison.OrdinalIgnoreCase));
                 if (person != null)
                 {
                     MapPersonData(person, g.MapToPersonBase(), eventType);
                     RetrievePhoto(person);
                 }
             });
         }
     }
 }
Пример #11
0
        /// <summary>
        /// Maps the visitor data.
        /// </summary>
        /// <param name="visitor">The visitor.</param>
        /// <param name="persons">The persons.</param>
        /// <param name="eventType">Type of the event.</param>
        private static void MapVisitorData(Visitor visitor, Person persons, NotificationEventType eventType)
        {
            var selectedPerson = RetrieveSelectedPerson();
            Visitor retrievedVisitor = persons.Visitors.FirstOrDefault();

            if (visitor != null)
            {
                if (eventType == NotificationEventType.PersonData)
                {
                    visitor.PersonalDetail.FirstName = retrievedVisitor.PersonalDetail.FirstName;
                    visitor.PersonalDetail.LastName = retrievedVisitor.PersonalDetail.LastName;
                    visitor.PersonalDetail.Gender = retrievedVisitor.PersonalDetail.Gender;
                    visitor.PersonalDetail.Age = retrievedVisitor.PersonalDetail.Age;
                    visitor.PersonalDetail.Birthdate = retrievedVisitor.PersonalDetail.Birthdate;
                    visitor.SecurityPhotoAddress = retrievedVisitor.SecurityPhotoAddress;
                    visitor.PersonalDetail.Country = RetriveCountry(retrievedVisitor.PersonalDetail);
                    if (visitor.PersonalDetail.Country != null)
                    {
                        visitor.PersonalDetail.Country.Name = retrievedVisitor.PersonalDetail.Country.Name;
                    }

                    visitor.PersonalDetail.DocumentType = retrievedVisitor.PersonalDetail.DocumentType;
                    visitor.PersonalDetail.DocumentNumber = retrievedVisitor.PersonalDetail.DocumentNumber;
                    visitor.PersonalDetail.Title = retrievedVisitor.PersonalDetail.Title;
                    visitor.PersonalDetail.DepartmentPOC = retrievedVisitor.PersonalDetail.DepartmentPOC;
                    visitor.VisitorType = retrievedVisitor.VisitorType;

                    if (visitor.VisitorInfo == null)
                    {
                        visitor.VisitorInfo = new VisitorInfo();
                    }

                    visitor.VisitorInfo.VisitPurpose = retrievedVisitor.VisitorInfo.VisitPurpose;
                    visitor.AssignVisitorAccessCard(retrievedVisitor.VisitorAccessCards);
                    visitor.VisitorInfo.CompanyName = retrievedVisitor.VisitorInfo.CompanyName;
                    visitor.PersonalDetail.DepartmentName = retrievedVisitor.PersonalDetail.DepartmentName;
                    visitor.VisitorInfo.ContactNumber = retrievedVisitor.VisitorInfo.ContactNumber;
                    visitor.VisitorInfo.CompanyContactNumber = retrievedVisitor.VisitorInfo.CompanyContactNumber;
                }
                else if (eventType == NotificationEventType.BoardingStatus)
                {
                    visitor.IsOnboard = retrievedVisitor.IsOnboard;
                    visitor.LastEvent = retrievedVisitor.LastEvent;
                    visitor.LastDateTime = retrievedVisitor.LastDateTime;

                    if (visitor.VisitorId.Equals(selectedPerson.PersonId, StringComparison.OrdinalIgnoreCase))
                    {
                        selectedPerson.IsOnboard = retrievedVisitor.IsOnboard;
                        selectedPerson.LastEvent = retrievedVisitor.LastEvent;
                        selectedPerson.LastDateTime = retrievedVisitor.LastDateTime;
                    }
                }
                else if (eventType == NotificationEventType.Alert)
                {
                    visitor.HasAlert = retrievedVisitor.HasAlert;
                    visitor.AssignAlerts(retrievedVisitor.Alerts);

                    selectedPerson.HasAlert = retrievedVisitor.HasAlert;
                    selectedPerson.AssignAlerts(retrievedVisitor.Alerts);
                    Messenger.Instance.Notify(MessengerMessage.NotifyPersonAlert, selectedPerson);
                    Messenger.Instance.Notify(MessengerMessage.NotifyAlertDetails, selectedPerson);
                }
                else if (eventType == NotificationEventType.Message)
                {
                    var messageAcknowledge = retrievedVisitor.Messages.All(m => m.StatusId.Equals(CommonConstants.MessageAcknowledgeStatusId));
                    visitor.AreAllMessagesGotAcknowledged = messageAcknowledge;
                    visitor.AssignMessages(retrievedVisitor.Messages);

                    selectedPerson.AreAllMessagesGotAcknowledged = messageAcknowledge;
                    selectedPerson.AssignPersonMessages(retrievedVisitor.Messages);
                    Messenger.Instance.Notify(MessengerMessage.NotifyPersonMessage, selectedPerson);
                    Messenger.Instance.Notify(MessengerMessage.NotifyMessageDetails, selectedPerson);
                }
            }
        }
Пример #12
0
        /// <summary>
        /// Retrieves the guest.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <param name="personData">The person data.</param>
        /// <param name="workStation">The work station.</param>
        /// <param name="eventType">Type of the event.</param>
        /// <param name="personTypeList">The person type list.</param>
        /// <param name="personList">The person list.</param>
        /// <returns>
        /// The person
        /// </returns>
        private static Person RetrievePerson(NotificationEvent message, Person personData, Workstation workStation, NotificationEventType eventType, List<PersonType> personTypeList, IList<PersonBase> personList)
        {
            var person = personList.Where(p => p.PersonId == message.PersonId).FirstOrDefault();
            var task = Task.Run(async () => await PersonsService.RetrievePersonsBySearchText(workStation.Ship.ShipId, null, personTypeList, SearchType.PersonId, personId: message.PersonId, folioNumber: null));
            task.Wait();
            if (!task.IsCanceled && !task.IsFaulted)
            {
                personData = task.Result;

                PersonBase retrievedPerson = null;

                if (personTypeList.FirstOrDefault() == PersonType.Guest)
                {
                    retrievedPerson = personData.Guests.FirstOrDefault().MapToPersonBase();
                }
                else if (personTypeList.FirstOrDefault() == PersonType.Crewmember)
                {
                    retrievedPerson = personData.Crewmembers.FirstOrDefault().MapToPersonBase();
                }
                else if (personTypeList.FirstOrDefault() == PersonType.Visitor)
                {
                    retrievedPerson = personData.Visitors.FirstOrDefault().MapToPersonBase();
                }

                if (personData != null)
                {
                    MapPersonData(person, retrievedPerson, eventType);

                    if (person != null)
                    {
                        RetrievePhoto(person);
                    }
                }
            }

            return personData;
        }
Пример #13
0
 /// <summary>
 /// Maps the guest data.
 /// </summary>
 /// <param name="guest">The guest.</param>
 /// <param name="retrievedGuest">The retrieved guest.</param>
 /// <param name="eventType">Type of the event.</param>
 private static void MapGuestData(Guest guest, Guest retrievedGuest, NotificationEventType eventType)
 {
     if (guest != null)
     {
         if (eventType == NotificationEventType.PersonData)
         {
             MapGuestPersonalDetails(guest, retrievedGuest);
         }
         else if (eventType == NotificationEventType.Reservation)
         {
             MapGuestPersonalDetails(guest, retrievedGuest);
             MapGuestBoardingStatusData(guest, retrievedGuest);
             MapGuestAlerts(guest, retrievedGuest);
             MapGuestMessages(guest, retrievedGuest);
         }
         else if (eventType == NotificationEventType.BoardingStatus)
         {
             MapGuestBoardingStatusData(guest, retrievedGuest);
         }
         else if (eventType == NotificationEventType.Alert)
         {
             MapGuestAlerts(guest, retrievedGuest);
         }
         else if (eventType == NotificationEventType.Message)
         {
             MapGuestMessages(guest, retrievedGuest);
         }
     }
 }
Пример #14
0
        /// <summary>
        /// Retrieves the guest.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <param name="eventType">Type of the event.</param>
        /// <param name="personTypeList">The person type list.</param>
        private static void RetrieveGuestForReservation(NotificationEvent message, NotificationEventType eventType, List<PersonType> personTypeList)
        {
            Workstation workStation = DIContainer.Instance.Resolve<Workstation>();

            var task = Task.Run(async () => await PersonsService.RetrievePersonsBySearchText(workStation.Ship.ShipId, message.ReservationNumber, personTypeList, SearchType.Reservation, null, null, 1, CommonConstants.MaxPageCount, null, folioNumber: null));
            task.Wait();
            if (!task.IsCanceled && !task.IsFaulted)
            {
                var personData = task.Result;
                var personsPartyManager = DIContainer.Instance.Resolve<PersonsPartyManager>();
                personData.Guests.Iterate(g =>
                {
                    if (personsPartyManager.CurrentParty.IsPartyCreated && personsPartyManager.CurrentParty.Guests.Any(a => a.GuestId.Equals(g.GuestId, StringComparison.OrdinalIgnoreCase)))
                    {
                        var guest = personsPartyManager.CurrentParty.Guests.FirstOrDefault(p => p.GuestId.Equals(g.GuestId, StringComparison.OrdinalIgnoreCase));
                        MapGuestData(guest, g, eventType);
                        RetrieveGuestPhoto(guest);
                    }
                });
            }
        }
Пример #15
0
        private static SendNotificationsRequest CreateSendNotificationsRequest()
        {
            // Build the TrackNotificationRequest
            SendNotificationsRequest request = new SendNotificationsRequest();

            //
            request.WebAuthenticationDetail = new WebAuthenticationDetail();
            request.WebAuthenticationDetail.UserCredential            = new WebAuthenticationCredential();
            request.WebAuthenticationDetail.UserCredential.Key        = "XXX"; // Replace "XXX" with the Key
            request.WebAuthenticationDetail.UserCredential.Password   = "******"; // Replace "XXX" with the Password
            request.WebAuthenticationDetail.ParentCredential          = new WebAuthenticationCredential();
            request.WebAuthenticationDetail.ParentCredential.Key      = "XXX"; // Replace "XXX" with the Key
            request.WebAuthenticationDetail.ParentCredential.Password = "******"; // Replace "XXX"
            if (usePropertyFile())                                             //Set values from a file for testing purposes
            {
                request.WebAuthenticationDetail.UserCredential.Key        = getProperty("key");
                request.WebAuthenticationDetail.UserCredential.Password   = getProperty("password");
                request.WebAuthenticationDetail.ParentCredential.Key      = getProperty("parentkey");
                request.WebAuthenticationDetail.ParentCredential.Password = getProperty("parentpassword");
            }
            //
            request.ClientDetail = new ClientDetail();
            request.ClientDetail.AccountNumber = "XXX"; // Replace "XXX" with the client's account number
            request.ClientDetail.MeterNumber   = "XXX"; // Replace "XXX" with the client's meter number
            if (usePropertyFile())                      //Set values from a file for testing purposes
            {
                request.ClientDetail.AccountNumber = getProperty("accountnumber");
                request.ClientDetail.MeterNumber   = getProperty("meternumber");
            }
            //
            request.TransactionDetail = new TransactionDetail();
            request.TransactionDetail.CustomerTransactionId = "***TrackNotification Request using VC#***"; //This is a reference field for the customer.  Any value can be used and will be provided in the response.
            //
            request.Version = new VersionId();
            //
            request.TrackingNumber = "XXX"; // Replace "XXX" with the tracking number
            if (usePropertyFile())          //Set values from a file for testing purposes
            {
                request.TrackingNumber = getProperty("trackingnumber");
            }
            //
            // Date range is optional.
            // If omitted, set to false
            request.ShipDateRangeBegin          = DateTime.Parse("3/25/2012"); //MM/DD/YYYY
            request.ShipDateRangeEnd            = DateTime.Parse("6/19/2012"); //MM/DD/YYYY
            request.ShipDateRangeBeginSpecified = false;
            request.ShipDateRangeEndSpecified   = false;
            //
            request.SenderEMailAddress      = "*****@*****.**";
            request.SenderContactName       = "Sender";
            request.EventNotificationDetail = new ShipmentEventNotificationDetail();
            request.EventNotificationDetail.AggregationType          = ShipmentNotificationAggregationType.PER_SHIPMENT;
            request.EventNotificationDetail.AggregationTypeSpecified = true;
            request.EventNotificationDetail.PersonalMessage          = "Personal Message";
            request.EventNotificationDetail.EventNotifications       = new ShipmentEventNotificationSpecification[1] {
                new ShipmentEventNotificationSpecification()
            };
            request.EventNotificationDetail.EventNotifications[0].Role                                         = ShipmentNotificationRoleType.THIRD_PARTY;
            request.EventNotificationDetail.EventNotifications[0].RoleSpecified                                = true;
            request.EventNotificationDetail.EventNotifications[0].FormatSpecification                          = new ShipmentNotificationFormatSpecification();
            request.EventNotificationDetail.EventNotifications[0].FormatSpecification.Type                     = NotificationFormatType.HTML;
            request.EventNotificationDetail.EventNotifications[0].FormatSpecification.TypeSpecified            = true;
            request.EventNotificationDetail.EventNotifications[0].NotificationDetail                           = new NotificationDetail();
            request.EventNotificationDetail.EventNotifications[0].NotificationDetail.EmailDetail               = new EMailDetail();
            request.EventNotificationDetail.EventNotifications[0].NotificationDetail.EmailDetail.EmailAddress  = "*****@*****.**";
            request.EventNotificationDetail.EventNotifications[0].NotificationDetail.EmailDetail.Name          = "recipient name";
            request.EventNotificationDetail.EventNotifications[0].NotificationDetail.NotificationType          = NotificationType.EMAIL;
            request.EventNotificationDetail.EventNotifications[0].NotificationDetail.NotificationTypeSpecified = true;
            NotificationEventType[] EventTypes = new NotificationEventType[5];
            EventTypes[0] = NotificationEventType.ON_DELIVERY;
            EventTypes[1] = NotificationEventType.ON_ESTIMATED_DELIVERY;
            EventTypes[2] = NotificationEventType.ON_EXCEPTION;
            EventTypes[3] = NotificationEventType.ON_SHIPMENT;
            EventTypes[4] = NotificationEventType.ON_TENDER;
            request.EventNotificationDetail.EventNotifications[0].Events = EventTypes;
            //
            return(request);
        }
 public void Notify(NotificationPriority priority, NotificationEventType eventType, string logMessage)
 {
     Log.Info($"{priority} {eventType}: {logMessage}");
 }
Пример #17
0
 public void RemoveEventListener(NotificationEventType type, EventListener <NotificationEvent> listener, bool useCapture = false)
 {
 }
Пример #18
0
 /// <summary>
 /// Function to updates the selected person.
 /// </summary>
 /// <param name="message">The message.</param>
 /// <param name="personData">The person data.</param>
 /// <param name="personTypeList">The person type list.</param>
 /// <param name="personsPartyManager">The persons party manager.</param>
 /// <param name="eventType">Type of the event.</param>
 private static void UpdateSelectedPerson(NotificationEvent message, Person personData, List<PersonType> personTypeList, PersonsPartyManager personsPartyManager, NotificationEventType eventType)
 {
     if (personTypeList.FirstOrDefault() == PersonType.Guest && personsPartyManager.CurrentParty.IsPartyCreated)
     {
         var guest = personsPartyManager.CurrentParty.Guests.FirstOrDefault(g => g.GuestId.Equals(message.PersonId, StringComparison.OrdinalIgnoreCase));
         MapGuestData(guest, personData.Guests.FirstOrDefault(), eventType);
         RetrieveGuestPhoto(guest);
     }
     else if (personTypeList.FirstOrDefault() == PersonType.Crewmember && personsPartyManager.CurrentParty.IsPartyCreated)
     {
         var crewMember = personsPartyManager.CurrentParty.Crew.FirstOrDefault(c => c.CrewmemberId.Equals(message.PersonId, StringComparison.OrdinalIgnoreCase));
         MapCrewMemberData(crewMember, personData, eventType);
         RetrieveCrewmemberPhoto(crewMember);
     }
     else if (personTypeList.FirstOrDefault() == PersonType.Visitor && personsPartyManager.CurrentParty.IsPartyCreated)
     {
         var visitor = personsPartyManager.CurrentParty.Visitors.FirstOrDefault(v => v.VisitorId.Equals(message.PersonId, StringComparison.OrdinalIgnoreCase));
         MapVisitorData(visitor, personData, eventType);
         RetrieveVisitorPhoto(visitor);
     }
 }
Пример #19
0
 internal static extern NotificationError GetExtensionAction(NotificationSafeHandle handle, NotificationEventType type, out SafeAppControlHandle appcontrol);
Пример #20
0
        /// <summary>
        /// Maps the crew member data.
        /// </summary>
        /// <param name="crewMember">The crew member.</param>
        /// <param name="persons">The persons.</param>
        /// <param name="eventType">Type of the event.</param>
        private static void MapCrewMemberData(Crewmember crewMember, Person persons, NotificationEventType eventType)
        {
            var selectedPerson = RetrieveSelectedPerson();
            Crewmember retrievedcrewMember = persons.Crewmembers.FirstOrDefault();

            if (crewMember != null)
            {
                if (eventType == NotificationEventType.PersonData)
                {
                    crewMember.PersonalDetail.FirstName = retrievedcrewMember.PersonalDetail.FirstName;
                    crewMember.PersonalDetail.LastName = retrievedcrewMember.PersonalDetail.LastName;
                    crewMember.PersonalDetail.Gender = retrievedcrewMember.PersonalDetail.Gender;
                    crewMember.PersonalDetail.Age = retrievedcrewMember.PersonalDetail.Age;
                    crewMember.PersonalDetail.Birthdate = retrievedcrewMember.PersonalDetail.Birthdate;
                    crewMember.SecurityPhotoAddress = retrievedcrewMember.SecurityPhotoAddress;
                    crewMember.Stateroom = retrievedcrewMember.Stateroom;
                    crewMember.PersonalDetail.Country = RetriveCountry(retrievedcrewMember.PersonalDetail);
                    if (crewMember.PersonalDetail.Country != null)
                    {
                        crewMember.PersonalDetail.Country.Name = retrievedcrewMember.PersonalDetail.Country.Name;
                    }

                    crewMember.Department = retrievedcrewMember.Department;
                    crewMember.Position = retrievedcrewMember.Position;
                    crewMember.PersonalDetail.DocumentNumber = retrievedcrewMember.PersonalDetail.DocumentNumber;
                    crewMember.BoardingInfo.OnboardDate = retrievedcrewMember.BoardingInfo.OnboardDate;
                    crewMember.BoardingInfo.AshoreDate = retrievedcrewMember.BoardingInfo.AshoreDate;
                }
                else if (eventType == NotificationEventType.BoardingStatus)
                {
                    crewMember.IsOnboard = retrievedcrewMember.IsOnboard;
                    crewMember.LastEvent = retrievedcrewMember.LastEvent;
                    crewMember.LastDateTime = retrievedcrewMember.LastDateTime;

                    if (crewMember.CrewmemberId.Equals(selectedPerson.PersonId, StringComparison.OrdinalIgnoreCase))
                    {
                        selectedPerson.IsOnboard = retrievedcrewMember.IsOnboard;
                        selectedPerson.LastEvent = retrievedcrewMember.LastEvent;
                        selectedPerson.LastDateTime = retrievedcrewMember.LastDateTime;
                    }
                }
                else if (eventType == NotificationEventType.Alert)
                {
                    crewMember.HasAlert = retrievedcrewMember.HasAlert;
                    crewMember.AssignAlerts(retrievedcrewMember.Alerts);

                    selectedPerson.HasAlert = retrievedcrewMember.HasAlert;
                    selectedPerson.AssignAlerts(retrievedcrewMember.Alerts);
                    Messenger.Instance.Notify(MessengerMessage.NotifyPersonAlert, selectedPerson);
                    Messenger.Instance.Notify(MessengerMessage.NotifyAlertDetails, selectedPerson);
                }
                else if (eventType == NotificationEventType.Message)
                {
                    var messageAcknowledge = retrievedcrewMember.Messages.All(m => m.StatusId.Equals(CommonConstants.MessageAcknowledgeStatusId));
                    crewMember.AreAllMessagesGotAcknowledged = messageAcknowledge;
                    crewMember.AssignMessages(retrievedcrewMember.Messages);

                    selectedPerson.AreAllMessagesGotAcknowledged = messageAcknowledge;
                    selectedPerson.AssignPersonMessages(retrievedcrewMember.Messages);
                    Messenger.Instance.Notify(MessengerMessage.NotifyPersonMessage, selectedPerson);
                    Messenger.Instance.Notify(MessengerMessage.NotifyMessageDetails, selectedPerson);
                }
            }
        }
 public EventTypeNotSupportedException(NotificationEventType eventType) : base(
         $"No matching EventTemplate was found for EventType '{eventType}'")
 {
 }
 public NotificationSignal(NotificationEventType _type, string _attachedNotificationId)
 {
     Type = _type;
     AttachedNotificationId = _attachedNotificationId;
 }
Пример #23
0
 /// <summary>
 /// Maps the guest data.
 /// </summary>
 /// <param name="person">The person.</param>
 /// <param name="retrievedPerson">The retrieved person.</param>
 /// <param name="eventType">Type of the event.</param>
 public static void MapPersonData(PersonBase person, PersonBase retrievedPerson, NotificationEventType eventType)
 {
     if (person != null)
     {
         if (eventType == NotificationEventType.PersonData)
         {
             MapPersonalDetails(person, retrievedPerson);
         }
         else if (eventType == NotificationEventType.Reservation)
         {
             MapPersonalDetails(person, retrievedPerson);
             MapBoardingStatusData(person, retrievedPerson);
             MapAlerts(person, retrievedPerson);
             MapMessages(person, retrievedPerson);
         }
         else if (eventType == NotificationEventType.BoardingStatus)
         {
             MapBoardingStatusData(person, retrievedPerson);
         }
         else if (eventType == NotificationEventType.Alert)
         {
             MapAlerts(person, retrievedPerson);
         }
         else if (eventType == NotificationEventType.Message)
         {
             MapMessages(person, retrievedPerson);
         }
     }
 }