/// <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> /// Maps the travel with guest. /// </summary> /// <param name="dataReader">The data reader.</param> /// <returns>List of travel with guests.</returns> internal static async Task<List<Guest>> MapTravelWithGuest(SqlDataReader dataReader) { var persons = new ListResult<Person>(); var person = new Person(); var personCollection = new Collection<Person>(); var guests = new List<Guest>(); if (dataReader != null) { ////Map Crew ////person.AssignCrewmembers(await MapCrew(dataReader)); ////Map Crew Personal Detail await dataReader.NextResultAsync(); ////var crewPersonDetailList = await RetrieveCrewmemberPersonalDetail(dataReader); ////map access card await dataReader.NextResultAsync(); ////Map Crew Alerts await dataReader.NextResultAsync(); ////var alerts = await AlertsAndMessageMapper.MapAlerts(dataReader); await dataReader.NextResultAsync(); ////var alertMessages = await AlertsAndMessageMapper.MapMessagesDescription(dataReader); await dataReader.NextResultAsync(); ////var messages = await AlertsAndMessageMapper.MapMessages(dataReader); await dataReader.NextResultAsync(); ////var messageDescription = await AlertsAndMessageMapper.MapMessagesDescription(dataReader); ////MapCrewDetail(person, crewPersonDetailList, alerts, alertMessages); ////Map Visitor await dataReader.NextResultAsync(); ////person.AssignVisitors(await MapVisitors(dataReader)); ////Map Visitor Personal Detail await dataReader.NextResultAsync(); ////var visitorPersonalDetailList = await RetrieveVisitorPersonalDetail(dataReader); ////map access card await dataReader.NextResultAsync(); ////Map Visitor Alerts await dataReader.NextResultAsync(); ////var visitorAlerts = await AlertsAndMessageMapper.MapAlerts(dataReader); await dataReader.NextResultAsync(); ////var visitorAlertMessages = await AlertsAndMessageMapper.MapMessagesDescription(dataReader); await dataReader.NextResultAsync(); ////var visitorMessages = await AlertsAndMessageMapper.MapMessages(dataReader); await dataReader.NextResultAsync(); ////var visitorMessagesDescription = await AlertsAndMessageMapper.MapMessagesDescription(dataReader); ////MapVisitorDetail(person, visitorPersonalDetailList, visitorAlerts, visitorAlertMessages); ////Map Guest await dataReader.NextResultAsync(); person.AssignGuests(await MapGuests(dataReader)); ////Map Guest Personal Detail await dataReader.NextResultAsync(); var guestPersonDetailList = await RetrieveGuestPersonalDetail(dataReader); ////Map Guest Cruise Detail await dataReader.NextResultAsync(); var guestReservationDetailList = await RetrieveGuestReservationDetail(dataReader); ////Map Guest Alerts await dataReader.NextResultAsync(); var guestAlerts = await AlertsAndMessageMapper.MapGuestAlerts(dataReader); await dataReader.NextResultAsync(); var guestAlertMessages = await AlertsAndMessageMapper.MapMessagesDescription(dataReader); await dataReader.NextResultAsync(); var guestMessages = await AlertsAndMessageMapper.MapGuestMessages(dataReader); await dataReader.NextResultAsync(); var guestMessagesDescription = await AlertsAndMessageMapper.MapMessagesDescription(dataReader); // Map folio data. await dataReader.NextResultAsync(); var folioList = await RetrieveFolios(dataReader); MapGuestDetail(person, guestPersonDetailList, guestReservationDetailList, guestAlerts, guestAlertMessages, guestMessages, guestMessagesDescription, folioList); if (!dataReader.IsClosed) { dataReader.Close(); } } return person.Guests.ToList(); }
/// <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> /// Searches the person. /// </summary> /// <param name="searchParameters">The search parameters.</param> /// <param name="personTypeList">The person type list.</param> /// <param name="staterooms">The staterooms.</param> /// <returns> /// Return person instance. /// </returns> private async Task<Person> SearchPerson(PersonSearchParameter searchParameters, ListResult<PersonTypeEntity> personTypeList, ListResult<DataAccess.Entities.Stateroom> staterooms) { var personType = searchParameters.PersonType.HasValue ? searchParameters.PersonType.Value : PersonTypes.All; var person = new Person(); if ((personType & PersonTypes.All) == PersonTypes.All) { var guestList = this.RetrieveGuests(searchParameters, staterooms, true); var crewMemberList = this.RetrieveCrewMembers(searchParameters, personTypeList, staterooms); var visitorList = this.RetrieveVisitorsAsync(searchParameters, personTypeList); await Task.WhenAll(guestList, crewMemberList, visitorList); person.AssignGuests(guestList.Result.Items); person.TotalGuestsCount = guestList.Result.TotalResults; person.AssignCrewmembers(crewMemberList.Result.Items); person.TotalCrewmembersCount = crewMemberList.Result.TotalResults; person.AssignVisitors(visitorList.Result.Items); person.TotalVisitorsCount = visitorList.Result.Items.Count; } else if (personType == PersonTypes.Guest) { var guestList = await this.RetrieveGuests(searchParameters, staterooms, true); person.AssignGuests(guestList.Items); person.TotalGuestsCount = guestList.TotalResults; } else if (personType == PersonTypes.Crew) { var crewMemberList = await this.RetrieveCrewMembers(searchParameters, personTypeList, staterooms); person.AssignCrewmembers(crewMemberList.Items); person.TotalCrewmembersCount = crewMemberList.TotalResults; } else if (personType == PersonTypes.Visitor) { var visitorList = await this.RetrieveVisitorsAsync(searchParameters, personTypeList); person.AssignVisitors(visitorList.Items); person.TotalVisitorsCount = visitorList.Items.Count; } return person; }
/// <summary> /// Maps the person. /// </summary> /// <param name="dataReader">The data reader.</param> /// <returns>Person list</returns> internal static async Task<ListResult<Person>> MapPerson(SqlDataReader dataReader) { var persons = new ListResult<Person>(); var person = new Person(); var personCollection = new Collection<Person>(); if (dataReader != null) { ////Map Crew person.AssignCrewmembers(await MapCrew(dataReader)); ////Map Crew Personal Detail await dataReader.NextResultAsync(); var crewPersonDetailList = await RetrieveCrewmemberPersonalDetail(dataReader); ////map access card await dataReader.NextResultAsync(); var crewAccessCards = await AccessCardMapper.MapCrewAccessCards(dataReader); ////Map Crew Alerts await dataReader.NextResultAsync(); var alerts = await AlertsAndMessageMapper.MapCrewAlerts(dataReader); await dataReader.NextResultAsync(); var alertMessages = await AlertsAndMessageMapper.MapMessagesDescription(dataReader); await dataReader.NextResultAsync(); var messages = await AlertsAndMessageMapper.MapCrewMessages(dataReader); await dataReader.NextResultAsync(); var messageDescription = await AlertsAndMessageMapper.MapMessagesDescription(dataReader); MapCrewDetail(person, crewPersonDetailList, alerts, alertMessages, messages, messageDescription, crewAccessCards); ////Map Visitor await dataReader.NextResultAsync(); person.AssignVisitors(await MapVisitors(dataReader)); ////Map Visitor Personal Detail await dataReader.NextResultAsync(); var visitorPersonalDetailList = await RetrieveVisitorPersonalDetail(dataReader); ////Map Visitor access card await dataReader.NextResultAsync(); var visitorAccessCards = await AccessCardMapper.MapVisitorAccessCards(dataReader); ////Map Visitor Alerts await dataReader.NextResultAsync(); var visitorAlerts = await AlertsAndMessageMapper.MapVisitorAlerts(dataReader); await dataReader.NextResultAsync(); var visitorAlertMessages = await AlertsAndMessageMapper.MapMessagesDescription(dataReader); await dataReader.NextResultAsync(); var visitorMessages = await AlertsAndMessageMapper.MapVisitorMessages(dataReader); await dataReader.NextResultAsync(); var visitorMessagesDescription = await AlertsAndMessageMapper.MapMessagesDescription(dataReader); MapVisitorDetail(person, visitorPersonalDetailList, visitorAlerts, visitorAlertMessages, visitorMessages, visitorMessagesDescription, visitorAccessCards); ////Map Guest await dataReader.NextResultAsync(); person.AssignGuests(await MapGuests(dataReader)); ////Map Guest Personal Detail await dataReader.NextResultAsync(); var guestPersonDetailList = await RetrieveGuestPersonalDetail(dataReader); ////Map Guest Cruise Detail await dataReader.NextResultAsync(); var guestReservationDetailList = await RetrieveGuestReservationDetail(dataReader); ////Map Guest Alerts await dataReader.NextResultAsync(); var guestAlerts = await AlertsAndMessageMapper.MapGuestAlerts(dataReader); await dataReader.NextResultAsync(); var guestAlertMessages = await AlertsAndMessageMapper.MapMessagesDescription(dataReader); await dataReader.NextResultAsync(); var guestMessages = await AlertsAndMessageMapper.MapGuestMessages(dataReader); await dataReader.NextResultAsync(); var guestMessagesDescription = await AlertsAndMessageMapper.MapMessagesDescription(dataReader); // Map folio data. await dataReader.NextResultAsync(); var folioList = await RetrieveFolios(dataReader); MapGuestDetail(person, guestPersonDetailList, guestReservationDetailList, guestAlerts, guestAlertMessages, guestMessages, guestMessagesDescription, folioList); ////map total results await dataReader.NextResultAsync(); await MapTotalResults(dataReader, person); if (!dataReader.IsClosed) { dataReader.Close(); } } personCollection.Add(person); persons.AssignItems(personCollection); return await Task.FromResult(persons); }
/// <summary> /// Retrieves the person by identifier. /// </summary> /// <param name="searchParameters">The search parameters.</param> /// <param name="personTypeList">The person type list.</param> /// <param name="staterooms">The staterooms.</param> /// <returns>Return Instance of person.</returns> private async Task<Person> RetrievePersonByIdAndDocument(PersonSearchParameter searchParameters, ListResult<PersonTypeEntity> personTypeList, ListResult<DataAccess.Entities.Stateroom> staterooms) { var person = new Person(); var applicationSetting = DIContainer.Instance.Resolve<IApplicationSetting>(); if ((!string.IsNullOrEmpty(searchParameters.GuestIds) && !string.IsNullOrEmpty(searchParameters.CrewmemberIds) && !string.IsNullOrEmpty(searchParameters.VisitorIds)) || (!string.IsNullOrWhiteSpace(searchParameters.DocumentNo) && searchParameters.DocumentTypeId.Equals(applicationSetting.DocumentTypeId) && searchParameters.PersonType == PersonTypes.All)) { person = await this.SearchPerson(searchParameters, personTypeList, staterooms); } else if (!string.IsNullOrEmpty(searchParameters.GuestIds) && !string.IsNullOrEmpty(searchParameters.CrewmemberIds)) { person = await this.SearchGuestAndCrew(searchParameters, personTypeList, staterooms); } else if (!string.IsNullOrEmpty(searchParameters.GuestIds) && !string.IsNullOrEmpty(searchParameters.VisitorIds)) { var guestList = this.RetrieveGuests(searchParameters, staterooms, true); var visitorList = this.RetrieveVisitorsAsync(searchParameters, personTypeList); await Task.WhenAll(guestList, visitorList); person.AssignGuests(guestList.Result.Items); person.TotalGuestsCount = guestList.Result.TotalResults; person.AssignVisitors(visitorList.Result.Items); person.TotalVisitorsCount = visitorList.Result.Items.Count; } else if (!string.IsNullOrEmpty(searchParameters.CrewmemberIds) && !string.IsNullOrEmpty(searchParameters.VisitorIds)) { var crewMemberList = this.RetrieveCrewMembers(searchParameters, personTypeList, staterooms); var visitorList = this.RetrieveVisitorsAsync(searchParameters, personTypeList); await Task.WhenAll(crewMemberList, visitorList); person.AssignCrewmembers(crewMemberList.Result.Items); person.TotalCrewmembersCount = crewMemberList.Result.TotalResults; person.AssignVisitors(visitorList.Result.Items); person.TotalVisitorsCount = visitorList.Result.Items.Count; } else if (!string.IsNullOrEmpty(searchParameters.GuestIds) || (!string.IsNullOrWhiteSpace(searchParameters.DocumentNo) && searchParameters.PersonType == PersonTypes.Guest)) { var guestList = await this.RetrieveGuests(searchParameters, staterooms, true); person.AssignGuests(guestList.Items); person.TotalGuestsCount = guestList.TotalResults; } else if (!string.IsNullOrEmpty(searchParameters.CrewmemberIds) || !string.IsNullOrWhiteSpace(searchParameters.EmployeeNumber) || (!string.IsNullOrWhiteSpace(searchParameters.DocumentNo) && searchParameters.PersonType == PersonTypes.Crew)) { var crewMemberList = await this.RetrieveCrewMembers(searchParameters, personTypeList, staterooms); person.AssignCrewmembers(crewMemberList.Items); person.TotalCrewmembersCount = crewMemberList.TotalResults; } else if ((!string.IsNullOrEmpty(searchParameters.VisitorIds) || searchParameters.Birthdate.HasValue || (!string.IsNullOrWhiteSpace(searchParameters.DocumentNo) && searchParameters.PersonType == PersonTypes.Visitor)) && (!string.IsNullOrEmpty(searchParameters.StartDate) || !string.IsNullOrEmpty(searchParameters.EndDate))) { var visitorList = await this.RetrieveVisitorsAsync(searchParameters, personTypeList); person.AssignVisitors(visitorList.Items); person.TotalVisitorsCount = visitorList.Items.Count; } return person; }
/// <summary> /// Searches a person by Guest and Crew. /// </summary> /// <param name="searchParameters">The search parameters.</param> /// <param name="personTypeList">The person type list.</param> /// <param name="staterooms">The staterooms.</param> /// <returns>Task contains Person Entity.</returns> private async Task<Person> SearchGuestAndCrew(PersonSearchParameter searchParameters, ListResult<PersonTypeEntity> personTypeList, ListResult<DataAccess.Entities.Stateroom> staterooms) { var person = new Person(); if ((searchParameters.PersonType & PersonTypes.All) == PersonTypes.All) { var guestList = this.RetrieveGuests(searchParameters, staterooms, true); var crewMemberList = this.RetrieveCrewMembers(searchParameters, personTypeList, staterooms); await Task.WhenAll(crewMemberList, guestList); person.AssignGuests(guestList.Result.Items); person.TotalGuestsCount = guestList.Result.TotalResults; person.AssignCrewmembers(crewMemberList.Result.Items); person.TotalCrewmembersCount = crewMemberList.Result.TotalResults; } else if (searchParameters.PersonType == PersonTypes.Guest) { var guestList = await this.RetrieveGuests(searchParameters, staterooms, true); person.AssignGuests(guestList.Items); person.TotalGuestsCount = guestList.TotalResults; } else if (searchParameters.PersonType == PersonTypes.Crew) { var crewMemberList = await this.RetrieveCrewMembers(searchParameters, personTypeList, staterooms); person.AssignCrewmembers(crewMemberList.Items); person.TotalCrewmembersCount = crewMemberList.TotalResults; } return person; }
/// <summary> /// Searches the type of the on person. /// </summary> /// <param name="searchParameters">The search parameters.</param> /// <returns> /// Return person instance. /// </returns> private async Task<ListResult<Person>> SearchOnPersonType(PersonSearchParameter searchParameters) { var personList = new ListResult<Person>(); var person = new Person(); var personSearchParameter = searchParameters; var personTypeList = this.referenceDataRepository.RetrievePersonTypeListAsync(); var staterooms = DIContainer.Instance.Resolve<ShipClientRepository>().RetrieveStateroomListAsync(personSearchParameter.ShipId); await Task.WhenAll(personTypeList, staterooms); if (!string.IsNullOrEmpty(personSearchParameter.AccessCardNumber) || !string.IsNullOrEmpty(personSearchParameter.SourceIds)) { /* Search persons by Access Card Number */ person = await this.SearchPerson(personSearchParameter, personTypeList.Result, staterooms.Result); } else if (!string.IsNullOrWhiteSpace(personSearchParameter.Staterooms) && personSearchParameter.PersonType != PersonTypes.Visitor) { /* Search persons by Stateroom number*/ personSearchParameter.StateroomIds = RetrieveStateroomIds(personSearchParameter, personSearchParameter.StateroomIds, staterooms.Result); person = await this.SearchGuestAndCrew(personSearchParameter, personTypeList.Result, staterooms.Result); } else if (!string.IsNullOrEmpty(personSearchParameter.ReservationNumbers) && (personSearchParameter.PersonType == PersonTypes.Guest || personSearchParameter.PersonType == PersonTypes.All)) { /* Search persons by Reservation Number*/ var guestList = await this.RetrieveGuests(personSearchParameter, staterooms.Result, true); person.AssignGuests(guestList.Items); person.TotalGuestsCount = guestList.Items.Count; } else if (!string.IsNullOrEmpty(personSearchParameter.GuestIds) || !string.IsNullOrEmpty(personSearchParameter.CrewmemberIds) || !string.IsNullOrEmpty(personSearchParameter.VisitorIds) || !string.IsNullOrWhiteSpace(personSearchParameter.EmployeeNumber) || !string.IsNullOrWhiteSpace(personSearchParameter.DocumentNo) || personSearchParameter.Birthdate.HasValue) { /* Search persons by person ids , employee Number, birth date and Document no.*/ person = await this.RetrievePersonByIdAndDocument(personSearchParameter, personTypeList.Result, staterooms.Result); } personList.Items.Add(person); personList.TotalResults = person.Guests.Count + person.Crewmembers.Count + person.Visitors.Count; return personList; }
/// <summary> /// Adds the guests in person. /// </summary> /// <param name="personList">The person list.</param> /// <param name="person">The person.</param> /// <param name="guestList">The guest list.</param> private static void AddGuestsInPerson(ListResult<Person> personList, Person person, ListResult<Guest> guestList) { person.AssignGuests(guestList.Items); person.TotalGuestsCount = guestList.TotalResults; personList.TotalResults += guestList.TotalResults; }
/// <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); }
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; }
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); }