private void SetUpData()
        {
            this.targetService = new PhotoService();
            this.person = new Person();
            CrewmemberCollection crewMembers = new CrewmemberCollection();
            var personDetail = new PersonalDetail { CitizenshipCountryId = string.Empty, FirstName = string.Empty, LastName = string.Empty, MiddleName = string.Empty, Title = string.Empty, PreferredName = string.Empty, MaritalStatus = string.Empty, Nickname = string.Empty, Occupation = string.Empty, DocumentNumber = string.Empty, Suffix = string.Empty };
            crewMembers.Add(new Crewmember { CrewmemberId = string.Empty, CrewmemberTypeId = "1", SecurityPhotoAddress = string.Empty, ChargeId = string.Empty, EmployeeNo = string.Empty, LastEvent = string.Empty, PersonalDetail = personDetail });
            this.person.AssignCrewmembers(crewMembers);

            GuestCollection guests = new GuestCollection();

            var checkInDetail = new CheckInDetail
            {
                ApplicationId = string.Empty,
                LocationId = "1",
                LocationTypeId = "1",
                MachineName = "Machine",
                Station = "station",
                UserId = "user"
            };
            var cruiseDetail = new GuestCruiseDetail
            {
                BeaconId = string.Empty,
                CheckInDetail = checkInDetail,
                LoyaltyLevelTypeId = "1",
                ReservationId = "1",
                Stateroom = stateroom,
                ReservationStatusId = "0000089",
                StateroomCategoryTypeId = "3"
            };

            var guest = new Guest
            {
                GuestId = PersonId,
                PersonalDetail = personDetail,
                Age = 0,
                CruiseDetail = cruiseDetail,
                SecurityPhotoAddress = string.Empty,
            };

            guests.Add(guest);

            this.person.AssignGuests(guests);

            PortDebarkAuthorization pda = new PortDebarkAuthorization { PortId = "1", PersonId = "00001", CanDebarkAlone = true, IsActivePort = true, PortOrder = 1 };

            DebarkAuthorizedPersonCollection dapCollection = new DebarkAuthorizedPersonCollection();

            dapCollection.Add(new DebarkAuthorizedPerson { PersonTypeId = "2", Person = this.FilledPerson(), PersonId = PersonId, PersonType = PersonType.Guest });
            pda.AssignDebarkAuthorizedPersons(dapCollection);

            PortDebarkAuthorizationCollection portDebarkAuthorizations = new PortDebarkAuthorizationCollection();
            portDebarkAuthorizations.Add(pda);
            guest.AssignPortAuthorizations(portDebarkAuthorizations);
            guests.Add(guest);

            this.listOfPDA.Add(pda);

            person.AssignGuests(guests);
        }
Exemple #2
0
 public Order()
 {
     CreatedOn  = DateTime.UtcNow;
     OrderLines = new OrderLineCollection();
     Courses    = new CourseCollection();
     Guests     = new GuestCollection();
 }
 public void AddGuest(Guest GuestTilAdd)
 {
     if (GuestTilAdd.Guest_No != 0 && GuestTilAdd.name != "" && GuestTilAdd.address != "")
     {
         GuestCollection.Add(GuestTilAdd);
         PersistencyService.SaveGuestAsJsonAsync(GuestTilAdd);
     }
 }
 public void RemoveGuest(Guest GuestTilRemove)
 {
     if (GuestTilRemove != null)
     {
         GuestCollection.Remove(GuestTilRemove);
         PersistencyService.DeleteGuest(GuestTilRemove);
     }
 }
        /// <summary>
        /// Function to sort guests.
        /// </summary>
        /// <param name="guests">List of guests</param>        
        /// <returns>IEnumerable for Guest</returns>
        public static GuestCollection Sort(this GuestCollection guests)
        {
            var guestCollection = new GuestCollection();

            // Todo: isPrimary and orderkey sorting will be done in future
            var g = guests.OrderByDescending(d => d.PersonalDetail.Age).ThenBy(c => c.PersonalDetail.LastName).ThenBy(s => s.PersonalDetail.FirstName).ToList();
            foreach (var guest in g)
            {
                guestCollection.Add(guest);
            }

            return guestCollection;
        }
        /// <summary>
        /// Function to retrieve matching guests.
        /// </summary>
        /// <param name="guests">List of guests</param>
        /// <param name="personIdentityList">List of person identities</param>
        /// <returns>IEnumerable for Guest</returns>
        public static GuestCollection RetrieveMatchingGuests(this GuestCollection guests, IList<PersonIdentity> personIdentityList)
        {
            var guestCollection = new GuestCollection();

            var g = from guest in guests
                    join personIdentity in personIdentityList
                    on guest.MapToPersonBase().PersonId equals personIdentity.PersonId
                    where personIdentity.PersonType == PersonType.Guest
                    select guest;

            foreach (var guest in g)
            {
                guestCollection.Add(guest);
            }

            return guestCollection;
        }
Exemple #7
0
        public GuestViewModel()
        {
            guestCollection = new ObservableCollection <Guest>();
            guestCollection = GuestSingleton.Instance.GuestCollection;

            this.id = GuestCollection.Last <Guest>().Guest_No + 1;

            guestbookingcollection = new ObservableCollection <GuestBookings>();
            guestbookingcollection = GuestSingleton.Instance.Temp_list;
            Func <bool> test = () => selectedGuest != null;

            handler = new GuestHandler(this);

            CreateGuestCommand = new RelayCommand(handler.CreateGuest, null);
            DeleteGuestCommand = new RelayCommand(handler.DeleteGuest, test);
            UpdateGuestCommand = new RelayCommand(handler.UpdateGuest, test);

            HelperClass.msg("VELKOMMEN TIL Gæst Admin Programmet");
        }
 /// <summary>
 /// Function to retrieve photo of guest.
 /// </summary>
 /// <param name="guest">Instance of Guest</param>
 private static void RetrieveGuestPhoto(Guest guest)
 {
     Observable.ToAsync(() =>
     {
         var person = new Person();
         var guestCollection = new GuestCollection();
         guestCollection.Add(guest);
         person.AssignGuests(guestCollection);
         DIContainer.Instance.Resolve<PhotoService>().RetrievePhotos(person);
     })().Subscribe(r => { }, ex => { });
 }
 /// <summary>
 /// Update Card status disabled
 /// </summary>
 /// <param name="guests">The guests.</param>
 /// <param name="accessCardNumberScanned">access Card Number Scanned</param>
 /// <param name="folioNumber">The folio number.</param>
 public static void UpdateCardDisabled(GuestCollection guests, string accessCardNumberScanned, string folioNumber)
 {
     guests.Iterate(g => g.IsDisabledCard = false);
     if (string.IsNullOrWhiteSpace(folioNumber))
     {
         guests.Where(g => g.Folios.Count > 0 && g.Folios.Any(f => f.FolioStatus != null && f.AccessCardNumber != null && f.AccessCardNumber.Equals(accessCardNumberScanned, StringComparison.OrdinalIgnoreCase) && f.FolioStatus.Equals(FolioStatusCancel, StringComparison.OrdinalIgnoreCase))).Iterate(g => g.IsDisabledCard = true);
     }
     else
     {
         guests.Where(g => g.Folios.Count > 0 && g.Folios.Any(f => f.FolioStatus != null && f.FolioNumber != null && (f.FolioStatus.Equals(FolioStatusCancel, StringComparison.OrdinalIgnoreCase) || string.IsNullOrEmpty(f.AccessCardNumber)) && f.FolioNumber.Equals(folioNumber, StringComparison.OrdinalIgnoreCase)) && g.PersonalDetail.SourceId.Equals(accessCardNumberScanned, StringComparison.OrdinalIgnoreCase)).Iterate(g => g.IsDisabledCard = true);
     }
 }
        /// <summary>
        /// Maps the guest information.
        /// </summary>
        /// <param name="guests">The guests.</param>
        /// <param name="personsStatusHistory">The persons status history.</param>
        /// <param name="personStatusList">The person status list.</param>
        private static void MapGuestInformation(GuestCollection guests, ListResult<PersonStatusHistory> personsStatusHistory, List<PersonStatus> personStatusList)
        {
            foreach (var guest in guests)
            {
                var item = personStatusList.FirstOrDefault(a => a.PersonId.ToString(CultureInfo.CurrentCulture).Equals(guest.GuestId));
                var personStatusHistory = new PersonStatusHistory();
                personStatusHistory.PersonId = guest.GuestId;
                personStatusHistory.FirstName = guest.PersonalDetail.FirstName;
                personStatusHistory.MiddleName = guest.PersonalDetail.MiddleName;
                personStatusHistory.LastName = guest.PersonalDetail.LastName;
                personStatusHistory.Gender = guest.PersonalDetail.Gender;
                personStatusHistory.Age = guest.PersonalDetail.Age ?? 0;
                personStatusHistory.LastEvent = item != null ? item.Status : guest.LastEvent;
                personStatusHistory.LastDateTime = item != null ? item.StatusChangedDate : guest.LastDateTime;
                personStatusHistory.PersonTypeId = CommonConstants.GuestTypeId;
                personStatusHistory.ReservationNumber = guest.CruiseDetail.ReservationNumber;
                personStatusHistory.Stateroom = guest.CruiseDetail.Stateroom;

                personsStatusHistory.Items.Add(personStatusHistory);
            }
        }
Exemple #11
0
 /// <summary>
 /// Assigns the guests.
 /// </summary>
 /// <param name="guestCollection">The guest collection.</param>
 /// <returns>Instance of Person</returns>
 public Person AssignGuests(GuestCollection guestCollection)
 {
     this.guests = guestCollection;
     return this;
 }
        /// <summary>
        /// Maps the guest reservation detail.
        /// </summary>
        /// <param name="dataReader">The data reader.</param>
        /// <returns>Guest collection</returns>
        private static async Task<GuestCollection> RetrieveGuestReservationDetail(SqlDataReader dataReader)
        {
            var guestCollection = new GuestCollection();
            if (dataReader != null)
            {
                while (await dataReader.ReadAsync())
                {
                    var guest = new Guest();

                    guest.GuestId = dataReader.Int32Field(GuestId).ToString();
                    guest.CruiseDetail = new GuestCruiseDetail();
                    guest.CruiseDetail.ReservationId = dataReader.Int32Field(ReservationId).ToString();
                    guest.CruiseDetail.ReservationNumber = dataReader.StringField(ReservationNumber);
                    guest.CruiseDetail.IsVip = dataReader.BooleanField(VIPFlag);
                    guest.CruiseDetail.IsPrimary = dataReader.BooleanField(IsPrimary);
                    guest.CruiseDetail.Stateroom = dataReader.StringField(Stateroom);
                    guest.CruiseDetail.EmbarkDate = dataReader.DateTimeField(EmbarkDate);
                    guest.CruiseDetail.DebarkDate = dataReader.DateTimeField(DebarkDate);
                    guest.CruiseDetail.ReservationStatusId = dataReader.ByteField(ReservationStatusId).ToString();
                    guest.CruiseDetail.VoyageId = dataReader.Int32Field(VoyageId).ToString();
                    var loyaltyLevelTypeId = dataReader.Int32NullableField(LoyaltyLevelTypeId);
                    guest.CruiseDetail.LoyaltyLevelTypeId = loyaltyLevelTypeId.HasValue ? loyaltyLevelTypeId.Value.ToString() : null;
                    var beaconId = dataReader.Int32NullableField(BeaconId);
                    guest.CruiseDetail.BeaconId = beaconId.HasValue ? beaconId.Value.ToString() : null;
                    ////guest.CruiseDetail.HasRecovery = dataReader.BooleanField(HasRecovery);
                    guest.CruiseDetail.HasTravelWith = dataReader.BooleanField(HasTravelWith);
                    guest.CruiseDetail.IsFolioAtRisk = dataReader.BooleanField(IsFolioAtRisk);
                    guest.CruiseDetail.CanDebarkAlone = dataReader.BooleanField(CanDebarkAlone);
                    guest.CruiseDetail.StateroomOccupancy = dataReader.ByteField(StateroomOccupancy).ToString();
                    guest.CruiseDetail.DiningDetail = dataReader.StringField(DiningDetail);
                    guest.CruiseDetail.IsCheckedIn = dataReader.BooleanField(IsCheckedIn);
                    guest.CruiseDetail.IsConciergeStatus = dataReader.BooleanField(IsConciergeStatus);
                    guest.CruiseDetail.IsBackToBack = dataReader.BooleanField(IsBackToBack);

                    var stateroomCategoryTypeId = dataReader.Int16NullableField(StateroomCategoryTypeID);
                    guest.CruiseDetail.StateroomCategoryTypeId = stateroomCategoryTypeId.HasValue ? stateroomCategoryTypeId.Value.ToString() : null;
                    guest.CruiseDetail.StateroomCategoryType = dataReader.StringField(Category);

                    guestCollection.Add(guest);
                }
            }

            return guestCollection;
        }
        /// <summary>
        /// Maps the guest personal detail.
        /// </summary>
        /// <param name="dataReader">The data reader.</param>
        /// <returns>Guest Collection.</returns>
        private static async Task<GuestCollection> MapGuests(SqlDataReader dataReader)
        {
            var guestCollection = new GuestCollection();
            if (dataReader != null)
            {
                while (await dataReader.ReadAsync())
                {
                    var guest = new Guest();

                    guest.GuestId = dataReader.Int32Field(GuestId).ToString();
                    var hasAlert = dataReader.BooleanNullableField(HasAlert);
                    guest.HasAlert = hasAlert.HasValue ? hasAlert.Value : false;
                    var hasMessage = dataReader.BooleanNullableField(HasMessage);
                    guest.HasMessage = hasMessage.HasValue ? hasMessage.Value : false;
                    guest.LastDateTime = dataReader.DateTimeNullableField(LastDateTime);
                    guest.LastEvent = dataReader.StringField(LastEvent);
                    guest.SecurityPhotoAddress = dataReader.StringField(SecurityPhotoMediaItemAddress);

                    byte[] bytes = await guest.SecurityPhotoAddress.ImageAddressToByteArray();
                    guest.Photo = bytes.ToBitmapSource();
                    guest.AssignPhotoByteArray(new Collection<byte>(bytes));
                    guestCollection.Add(guest);
                }
            }

            return guestCollection;
        }
        /// <summary>
        /// Maps the guest detail.
        /// </summary>
        /// <param name="person">The person.</param>
        /// <param name="guestPersonDetailList">The guest person detail list.</param>
        /// <param name="guestReservationDetailList">The guest reservation detail list.</param>
        /// <param name="guestAlerts">The guest alerts.</param>
        /// <param name="guestAlertMessages">The guest alert messages.</param>
        /// <param name="guestPersonMessages">The guest person messages.</param>
        /// <param name="guestMessages">The guest messages.</param>
        private static void MapGuestDetail(Person person, GuestCollection guestPersonDetailList, GuestCollection guestReservationDetailList, IDictionary<string, AlertCollection> guestAlerts, IDictionary<string, Collection<Message>> guestAlertMessages, IDictionary<string, PersonMessageCollection> guestPersonMessages, IDictionary<string, Collection<Message>> guestMessages, IDictionary<string, FolioCollection> folioList)
        {
            var debarkPersonalDetails = new DebarkPersonDetailCollection();
            person.Guests.Iterate(a =>
            {
                var guestReservationDetail = guestReservationDetailList.Where(b => a.GuestId.Equals(b.GuestId)).FirstOrDefault();
                var guestPersonalDetail = guestPersonDetailList.Where(c => a.GuestId.Equals(c.GuestId)).FirstOrDefault();
                if (guestReservationDetail != null)
                {
                    a.CruiseDetail = guestReservationDetail.CruiseDetail;
                }

                if (guestPersonalDetail != null)
                {
                    a.PersonalDetail = guestPersonalDetail.PersonalDetail;
                }

                var guestAlertCollection = guestAlerts.ContainsKey(a.GuestId) ? guestAlerts[a.GuestId] : null;
                guestAlertCollection.Iterate(b => b.Message = guestAlertMessages.ContainsKey(b.AlertId) ? guestAlertMessages[b.AlertId].FirstOrDefault() : null);
                if (guestAlertCollection != null)
                {
                    a.AssignAlerts(guestAlertCollection);
                }

                var messageCollection = guestPersonMessages.ContainsKey(a.GuestId) ? guestPersonMessages[a.GuestId] : null;
                messageCollection.Iterate(b => b.Message = guestMessages.ContainsKey(b.AlertId) ? guestMessages[b.AlertId].FirstOrDefault() : null);
                if (messageCollection != null)
                {
                    a.AssignMessages(messageCollection);
                }

                var folioCollection = folioList.ContainsKey(a.GuestId) ? folioList[a.GuestId] : null;
                if (folioCollection != null)
                {
                    a.AssignFolios(folioCollection);
                }

                if (a.CruiseDetail.Stateroom != null)
                {
                    var debarkPersonalDetail = new DebarkPersonDetail { Age = a.PersonalDetail.Age, PersonId = a.GuestId, PersonTypeId = CommonConstants.GuestTypeId, ReservationId = a.CruiseDetail.ReservationId, StateroomNumber = a.CruiseDetail.Stateroom };
                    debarkPersonalDetails.Add(debarkPersonalDetail);
                }
            });

            MapDebarkAuthorizationDetails(person, debarkPersonalDetails);
        }
        /// <summary>
        /// Retrieves the guest personal detail.
        /// </summary>
        /// <param name="dataReader">The data reader.</param>
        /// <returns>Guest Collection.</returns>
        private static async Task<GuestCollection> RetrieveGuestPersonalDetail(SqlDataReader dataReader)
        {
            var guestCollection = new GuestCollection();
            if (dataReader != null)
            {
                while (await dataReader.ReadAsync())
                {
                    var guest = new Guest();

                    guest.GuestId = dataReader.Int32Field(GuestId).ToString();
                    guest.PersonalDetail = new PersonalDetail();
                    guest.PersonalDetail.Title = dataReader.StringField(Title);
                    guest.PersonalDetail.FirstName = dataReader.StringField(FirstName);
                    guest.PersonalDetail.MiddleName = dataReader.StringField(MiddleName);
                    guest.PersonalDetail.LastName = dataReader.StringField(LastName);
                    guest.PersonalDetail.Nickname = dataReader.StringField(NickName);
                    guest.PersonalDetail.PreferredName = dataReader.StringField(PreferredName);
                    guest.PersonalDetail.Suffix = dataReader.StringField(Suffix);
                    guest.PersonalDetail.Birthdate = dataReader.DateTimeNullableField(BirthDate);
                    guest.PersonalDetail.BirthCountryId = dataReader.Int32NullableField(BirthCountryId).HasValue ? dataReader.Int32NullableField("BirthCountryID").Value.ToString() : null;
                    guest.PersonalDetail.CitizenshipCountryId = dataReader.Int32NullableField(CitizenshipCountryId).HasValue ? dataReader.Int32NullableField("BirthCountryID").Value.ToString() : null;
                    guest.PersonalDetail.Gender = dataReader.StringField(Gender);
                    guest.PersonalDetail.MaritalStatus = dataReader.StringField(MaritalStatus);
                    guest.PersonalDetail.Occupation = dataReader.StringField(Occupation);
                    guest.PersonalDetail.AnniversaryDate = dataReader.DateTimeNullableField(AnniversaryDate);
                    guest.PersonalDetail.DocumentNumber = dataReader.StringField(DocumentNumber);
                    guest.PersonalDetail.Age = dataReader.Int16Field(Age);
                    guest.PersonalDetail.SourceId = dataReader.StringField(SourceId);

                    guestCollection.Add(guest);
                }
            }

            return guestCollection;
        }
        /// <summary>
        /// Setups the data.
        /// </summary>
        private void SetupData()
        {
            Domain.Dependencies.Register();
            DataAccess.Dependencies.Register();

            this.workstationMock = new Mock<Workstation>();
            DIContainer.Instance.RegisterInstance<Workstation>(this.workstationMock.Object);
            Workstation ws = DIContainer.Instance.Resolve<Workstation>();

            ws.Port = new Port { PortId = "1" };
            ws.Ship = new Ship { ShipId = "5" };
            ws.GangwayLocation = new GangwayLocation { LocationId = "1" };
            ws.GangwayServiceBaseAddress = "http://Localhost/";
            ws.ConfigurationServiceBaseAddress = "http://Localhost/";
            ws.AuthenticationServiceBaseAddress = "http://Localhost/";
            ws.AuthorizationServiceBaseAddress = "http://Localhost/";
            ws.ConnectionMode = ConnectionMode.Online;
            var intCollection = new Collection<int>();
            intCollection.Add(0);
            var brand = new Brand { BrandId = "3", Name = "Carnival Breeze", MediaItemAddress = "http://172.26.248.122/ImagingMediaService/MediaItems/23" };
            var voyageList = new List<Voyage>();
            var voyage = new Voyage { DebarkPortId = "1", EmbarkPortId = "1", DestinationId = "1", MediaItemAddress = "http://172.26.248.122/", VoyageId = "31", Name = "Carnival Voyage", IsActive = true, ShipId = "5", Number = "ccl", DebarkDate = new DateTime(2015, 3, 3), EmbarkDate = new DateTime(2015, 3, 2) };
            voyageList.Add(voyage);
            ws.AssignVoyageList(voyageList);

            ////this.repository = new Mock<IRepository>();
            ////this.embarkationStatisticsRepositoryMock = new Mock<EmbarkationStatisticsRepository>();
            this.personServiceRepositoryMock = new Mock<PersonServiceRepository>();
            this.referenceDataRepositoryMock = new Mock<ReferenceDataRepository>();
            ////this.photoCaptureRepositoryMock = new Mock<PhotoCaptureRepository>();
            ////this.shipTimeRepositoryMock = new Mock<ShipTimeRepository>();
            ////this.referenceDataRepositoryMock = new Mock<ReferenceDataRepository>();
            ////this.gangwayEventRepositoryMock = new Mock<GangwayEventRepository>();
            ////this.guestClient = new Mock<IGuestClient>();
            ////this.personClient = new Mock<IPersonsClient>();
            ////DIContainer.Instance.RegisterInstance<IGuestClient>(this.guestClient.Object);
            ////DIContainer.Instance.RegisterInstance<IPersonsClient>(this.personClient.Object);

            ////DIContainer.Instance.RegisterInstance<IRepository>(this.repository.Object);
            DIContainer.Instance.RegisterInstance<ReferenceDataRepository>(this.referenceDataRepositoryMock.Object);
            ////DIContainer.Instance.RegisterInstance<EmbarkationStatisticsRepository>(this.embarkationStatisticsRepositoryMock.Object);
            ////DIContainer.Instance.RegisterInstance<GangwayEventRepository>(this.gangwayEventRepositoryMock.Object);
            ////DIContainer.Instance.RegisterInstance<PhotoCaptureRepository>(this.photoCaptureRepositoryMock.Object);
            DIContainer.Instance.RegisterInstance<PersonServiceRepository>(this.personServiceRepositoryMock.Object);
            ////DIContainer.Instance.RegisterInstance<ShipTimeRepository>(this.shipTimeRepositoryMock.Object);

            var cruiseDetails = new GuestCruiseDetail { BeaconId = string.Empty, BerthNumber = string.Empty, IdentificationId = string.Empty, LoyaltyLevelTypeId = string.Empty, ReservationId = string.Empty, Stateroom = "0000" };
            var personDetail = new PersonalDetail { CitizenshipCountryId = string.Empty, FirstName = string.Empty, LastName = string.Empty, MiddleName = string.Empty, Title = string.Empty, PreferredName = string.Empty, MaritalStatus = string.Empty, Nickname = string.Empty, Occupation = string.Empty, DocumentNumber = string.Empty, Suffix = string.Empty, DocumentTypeId = "1" };

            this.person = new Person { TotalResults = 1 };
            CrewmemberCollection crewMembers = new CrewmemberCollection();
            crewMembers.Add(new Crewmember { CrewmemberId = string.Empty, CrewmemberTypeId = "1", SecurityPhotoAddress = string.Empty, ChargeId = string.Empty, EmployeeNo = string.Empty, LastEvent = string.Empty, PersonalDetail = personDetail });
            person.AssignCrewmembers(crewMembers);

            GuestCollection guests = new GuestCollection();
            var checkInDetail = new CheckInDetail
            {
                ApplicationId = string.Empty,
                LocationId = "1",
                LocationTypeId = "1",
                MachineName = "Machine",
                Station = "station",
                UserId = "user"
            };
            var cruiseDetail = new GuestCruiseDetail
            {
                BeaconId = string.Empty,
                CheckInDetail = checkInDetail,
                LoyaltyLevelTypeId = "1",
                ReservationId = "1",
                Stateroom = "00000",
                ReservationStatusId = "0000089",
                StateroomCategoryTypeId = "aaasad"
            };
            guests.Add(new Guest
            {
                GuestId = "0001",
                PersonalDetail = personDetail,
                Age = 0,
                CruiseDetail = cruiseDetail,
                SecurityPhotoAddress = string.Empty,
            });

            VisitorCollection visitors = new VisitorCollection();
            visitors.Add(new Visitor
            {
                VisitorId = "0003",
                PersonalDetail = personDetail,
                SecurityPhotoAddress = string.Empty,
            });
            this.person.AssignGuests(guests);
            this.person.AssignVisitors(visitors);
            this.personTypes = new List<PersonType>();
            personTypes.Add(PersonType.Guest);
            this.personServiceRepositoryMock.Setup(data => data.RetrievePersonsBySearchText(It.IsNotNull<string>(), It.IsAny<string>(), It.IsAny<IList<PersonType>>(), It.IsAny<SearchType>(), It.IsAny<string>(), It.IsAny<string>(), 0, 0, It.IsAny<string>(), It.IsAny<string>())).Returns(Task.FromResult(this.person));
            var documentTypes = new DocumentTypeCollection();
            documentTypes.Add(new DocumentType { CountryId = "232", Code = "USA", DocumentTypeId = "1", Name = "Passport" });
            var referencedata = new ReferenceData();
            referencedata.AssignDocumentTypes(documentTypes);
            this.referenceDataRepositoryMock.Setup(data => data.RetrieveReferenceDataAsync()).Returns(Task.FromResult(referencedata));
            ////this.personClient.Setup(data => data.RetrievePersonsAsync("5", "ab", null, null, "0001", null, null, "Guest", null, null, null, null, null, 0, 0)).Returns(RetrieveData());
        }
        /// <summary>
        /// Function to retrieve persons by search text.
        /// </summary>
        /// <param name="reservationNumbers">The reservation numbers.</param>
        /// <returns>List of Guest</returns>
        public async Task<IList<Guest>> RetrieveTravelWithAsync(string reservationNumbers)
        {
            var workstation = DIContainer.Instance.Resolve<Workstation>();
            var task = await this.guestClient.RetrieveTravelWithAsync(shipId: workstation.Ship.ShipId, guestIds: null, voyageIds: workstation.SelectedVoyageIds, reservationNumbers: reservationNumbers, pageNumber: null, maxResults: null);
            IList<Guest> guestData = task != null ? JsonConvert.DeserializeObject<IList<Guest>>(task) : default(IList<Guest>);

            Person persons = new Person();
            GuestCollection guestCollection = new GuestCollection();
            guestData.Iterate(g => guestCollection.Add(g));
            persons.AssignGuests(guestCollection);

            if (persons != null)
            {
                CommonDataMethods.FillOnboardStatus(persons);
                CommonDataMethods.ManageAlerts(persons, null, null);
            }

            return await Task.FromResult(guestData);
        }
        /// <summary>
        /// Retrieves the search using barcode.
        /// </summary>
        /// <param name="cardDetail">Information related Card</param>
        private void RetrieveSearchUsingBarcode(CardInformation cardDetail)
        {
            ScreenKeyboardNativeMethods.HideKeyboard();

            if (cardDetail == null || Application.Current.Windows.Count > 2 || (Application.Current.Windows.Count == 2 && !Application.Current.Windows.OfType<Window>().Any(w => w.Name.Equals("cameraWindow", StringComparison.OrdinalIgnoreCase))))
            {
                return;
            }

            cardDetail.PersonType = string.IsNullOrEmpty(cardDetail.PersonType) ? CardInformationExtension.Guest : cardDetail.PersonType;
            string cardData = AssignBarcodeDetail(cardDetail);

            if (!this.IsBusy)
            {
                this.IsBusy = true;
                var currentParty = this.personsPartyManager.CurrentParty;
                if (this.CurrentViewType == ViewType.PartyDetails && currentParty != null && !string.IsNullOrEmpty(currentParty.PartyDetailSelectedTab) && currentParty.PartyDetailSelectedTab.Equals(AssignCard) && cardDetail.RetrieveCardPersonType().FirstOrDefault() == PersonType.Visitor)
                {
                    this.AssignVisitorAccessCard(cardDetail, currentParty);
                }
                else
                {
                    if (!this.IsAlertPopupOpened && (this.CurrentViewType == ViewType.PartyDetails || this.CurrentViewType == ViewType.SearchGuest || this.CurrentViewType == ViewType.Home))
                    {
                        ShowSpinWheel();
                        var existingCardPerson = this.personsPartyManager.RetrieveExistingPersonForCardNumber(cardData, cardDetail.RetrieveCardPersonType().FirstOrDefault(), cardDetail);

                        if (existingCardPerson != null)
                        {
                            var guests = new GuestCollection();
                            this.personsPartyManager.CurrentParty.Guests.Iterate(g => guests.Add(g));
                            PersonsService.UpdateCardDisabled(guests, cardData, cardDetail.FolioNumber);
                            ApplicationDispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)(() => this.ShowDisabledCardMessage(currentParty, true)));
                            this.OnRetrievalCardPerson(cardDetail);
                            Messenger.Instance.Notify(MessengerMessage.ShowSelectedPartyDetailTab, SelectedIndex);
                            currentParty.PartyDetailSelectedTab = Stateroom;
                            if (this.Workstation.FlowDirection == Domain.FlowDirection.AgeVerification)
                            {
                                ApplicationDispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, (Action)(() => Messenger.Instance.Notify(MessengerMessage.ShowAgeVerificationPopup, null)));
                            }
                        }
                        else
                        {
                            this.SetErrorTextMessage(cardDetail, currentParty);

                            // ToDo: ship ID
                            ObservableManager.RunObservable(() => this.SearchPersonForBarcodeScanning(cardDetail), null, () => { this.IsBusy = false; });
                        }
                    }
                    else
                    {
                        ApplicationDispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, (Action)(() => HideSpinWheel()));
                        this.IsBusy = false;
                    }
                }
            }
        }
        private Person FilledPerson()
        {
            var person = new Person();
            CrewmemberCollection crewMembers = new CrewmemberCollection();
            var personDetail = new PersonalDetail { CitizenshipCountryId = string.Empty, FirstName = string.Empty, LastName = string.Empty, MiddleName = string.Empty, Title = string.Empty, PreferredName = string.Empty, MaritalStatus = string.Empty, Nickname = string.Empty, Occupation = string.Empty, DocumentNumber = string.Empty, Suffix = string.Empty };
            crewMembers.Add(new Crewmember { CrewmemberId = string.Empty, CrewmemberTypeId = "1", SecurityPhotoAddress = string.Empty, ChargeId = string.Empty, EmployeeNo = string.Empty, LastEvent = string.Empty, PersonalDetail = personDetail });
            person.AssignCrewmembers(crewMembers);

            GuestCollection guests = new GuestCollection();
            var checkInDetail = new CheckInDetail
            {
                ApplicationId = string.Empty,
                LocationId = "1",
                LocationTypeId = "1",
                MachineName = "Machine",
                Station = "station",
                UserId = "user"
            };
            var cruiseDetail = new GuestCruiseDetail
            {
                BeaconId = string.Empty,
                CheckInDetail = checkInDetail,
                LoyaltyLevelTypeId = "1",
                ReservationId = "1",
                Stateroom = stateroom,
                ReservationStatusId = "0000089",
                StateroomCategoryTypeId = "aaasad"
            };
            var guest = new Guest
            {
                GuestId = PersonId,
                PersonalDetail = personDetail,
                Age = 0,
                CruiseDetail = cruiseDetail,
                SecurityPhotoAddress = string.Empty
            };

            var cruiseDetails = new GuestCruiseDetail { BeaconId = string.Empty, BerthNumber = string.Empty, IdentificationId = string.Empty, LoyaltyLevelTypeId = string.Empty, ReservationId = string.Empty, Stateroom = stateroom };
            //// var personDetail = new PersonalDetail { CitizenshipCountryId = string.Empty, FirstName = string.Empty, LastName = string.Empty, MiddleName = string.Empty, Title = string.Empty, PreferredName = string.Empty, MaritalStatus = string.Empty, Nickname = string.Empty, Occupation = string.Empty, PassportNo = string.Empty, Suffix = string.Empty };
            var personBase = new PersonBase
            {
                IsOnHold = true,
                ChargeId = ChargeId,
                CruiseDetail = cruiseDetails,
                PersonalDetail = personDetail,
                LastEvent = string.Empty,
                PersonId = PersonId,
                SecurityPhotoAddress = string.Empty,
                Stateroom = stateroom
            };

            PortDebarkAuthorization pda = new PortDebarkAuthorization { PortId = "1", PersonId = "00001", CanDebarkAlone = true, IsActivePort = true, PortOrder = 1 };

            DebarkAuthorizedPersonCollection dapCollection = new DebarkAuthorizedPersonCollection();

            dapCollection.Add(new DebarkAuthorizedPerson { PersonTypeId = "2", Person = personBase, PersonId = PersonId, PersonType = PersonType.Guest });
            pda.AssignDebarkAuthorizedPersons(dapCollection);

            PortDebarkAuthorizationCollection portDebarkAuthorizations = new PortDebarkAuthorizationCollection();
            portDebarkAuthorizations.Add(pda);
            guest.AssignPortAuthorizations(portDebarkAuthorizations);
            guests.Add(guest);

            person.AssignGuests(guests);
            return person;
        }
 /// <summary>
 /// Update Card status disabled
 /// </summary>
 /// <param name="guests">guests instance</param>
 /// <param name="accessCardNumberScanned">access Card Number Scanned</param>
 /// <param name="folioNumber">The folio number.</param>
 public static void UpdateCardDisabled(GuestCollection guests, string accessCardNumberScanned, string folioNumber)
 {
     CommonDataMethods.UpdateCardDisabled(guests, accessCardNumberScanned, folioNumber);
 }
        private void SetUpPartyManagerData()
        {
            //// var party = new PersonsParty { SelectedPerson = this.FilledPerson() };
            this.person = new Person();
            CrewmemberCollection crewMembers = new CrewmemberCollection();
            var personDetail = new PersonalDetail { CitizenshipCountryId = string.Empty, FirstName = string.Empty, LastName = string.Empty, MiddleName = string.Empty, Title = string.Empty, PreferredName = string.Empty, MaritalStatus = string.Empty, Nickname = string.Empty, Occupation = string.Empty, DocumentNumber = string.Empty, Suffix = string.Empty };
            crewMembers.Add(new Crewmember { CrewmemberId = string.Empty, CrewmemberTypeId = "1", SecurityPhotoAddress = string.Empty, ChargeId = string.Empty, EmployeeNo = string.Empty, LastEvent = string.Empty, PersonalDetail = personDetail });
            this.person.AssignCrewmembers(crewMembers);

            GuestCollection guests = new GuestCollection();
            var checkInDetail = new CheckInDetail
            {
                ApplicationId = string.Empty,
                LocationId = "1",
                LocationTypeId = "1",
                MachineName = "Machine",
                Station = "station",
                UserId = "user"
            };
            var cruiseDetail = new GuestCruiseDetail
            {
                BeaconId = string.Empty,
                CheckInDetail = checkInDetail,
                LoyaltyLevelTypeId = "1",
                ReservationId = "1",
                Stateroom = stateroom,
                ReservationStatusId = "0000089",
                StateroomCategoryTypeId = "aaasad"
            };
            guests.Add(new Guest
            {
                GuestId = "1",
                PersonalDetail = personDetail,
                Age = 0,
                CruiseDetail = cruiseDetail,
                SecurityPhotoAddress = string.Empty
            });

            this.person.AssignGuests(guests);
        }
        /// <summary>
        /// Function to retrieve persons by search text.
        /// </summary>
        /// <param name="staterooms">The staterooms.</param>
        /// <param name="guestIds">The guest ids.</param>
        /// <param name="reservationNumbers">The reservation numbers.</param>
        /// <param name="pageNumber">The page number.</param>
        /// <param name="maxResults">The maximum results.</param>
        /// <returns>List of Guest</returns>
        public async Task<IList<Guest>> RetrieveTravelWithAsync(string reservationNumbers)
        {
            var workstation = DIContainer.Instance.Resolve<Workstation>();
            string shipId = workstation.Ship.ShipId;

            IList<Guest> guestData = null;
            string reservationNumbersofTravelWithGuest = string.Empty;

            var command = this.Database.GetStoredProcCommand(ListTravelPartyStoredProcedure)
            .AddParameter(ReservationNumber, DbType.String, reservationNumbers);

            reservationNumbersofTravelWithGuest = await this.ExecuteReaderAsync(command, PersonDataMapper.MapTravelPartyAsync);

            var commandForPerson = this.Database.GetStoredProcCommand(RetrievePersonStoredProcedure)
                .AddParameter(ReservationNumbers, DbType.String, reservationNumbersofTravelWithGuest);

            commandForPerson.AddParameter(ShipId, DbType.Int16, Convert.ToInt16(shipId));
            commandForPerson.AddParameter(PageNumber, DbType.Int32, OfflineConstants.DefaultPageNumber);
            commandForPerson.AddParameter(PageSize, DbType.Int32, workstation.MaxRecentPersonCount);
            guestData = await this.ExecuteReaderAsync(commandForPerson, PersonDataMapper.MapTravelWithGuest);

            Person persons = new Person();
            GuestCollection guestCollection = new GuestCollection();
            guestData.Iterate(g => guestCollection.Add(g));
            persons.AssignGuests(guestCollection);

            // Fills IsOnboard status
            if (persons != null)
            {
                CommonDataMethods.FillOnboardStatus(persons);
                CommonDataMethods.ManageAlerts(persons, null, null);
            }

            return await Task.FromResult(guestData);
        }