/// <summary>
        /// Maps from web to db Model
        /// </summary>
        /// <param name="input">OLEPreviousCitizenship web object</param>
        /// <param name="dbModel">OLECitizenship db object</param>
        /// <returns>Updated OLECitizenship db object</returns>
        public static db.OLECitizenship ToCitizDbModel(this OLEPreviousCitizenship input, db.OLECitizenship dbModel)
        {
            if (dbModel == null)
            {
                return null;
            }

            dbModel.Citizenship = input.PreviousCitizenship;
            return dbModel;
        }
        /// <summary>
        /// Maps from web to db Model
        /// </summary>
        /// <param name="input">OLEOPIEducationInformationPage Web model</param>
        /// <param name="objparam">OLEOPIEducationInformationPage object model</param>
        /// <returns>OLEOPIEducationInformationPage db model</returns>
        public static db.OLEOPIEducationInformationPage ToDbModel(this OLEOPIEducationInformationPage input, db.OLEOPIEducationInformationPage objparam)
        {
            if (input == null)
            {
                throw new ArgumentException("OLEOPIEducationInformationPage model is null");
            }
            objparam.ApplicationId = input.ApplicationId;

            ToEducationInstitutionDbModel(input.EducationInstitution, objparam);
            ToPreviousStudiesAndWorkDbModel(input.PreviousStudiesAndWork, objparam);
            ToStayingLongerResoningDbModel(input.StayingLongerResoning, objparam);

            return objparam;
        }
        /// <summary>
        /// Maps from web to db Model
        /// </summary>
        /// <param name="input">OLEContactInfoBlock Web model</param>
        /// <param name="dbModel">OLEPersonalInformationPage object model</param>
        public static void ToOLEContactInfoDbModel(OLEContactInfoBlock input, db.OLEPersonalInformationPage dbModel)
        {
            if (input == null || dbModel == null)
            {
                throw new ArgumentException("One of model is null");
            }

            dbModel.ContactEmailAddress = input.EmailAddress;
            dbModel.ContactFinlandEmailAddress = input.FinlandEmailAddress;
            dbModel.ContactFinlandTelephoneNumber = input.FinlandTelephoneNumber;
            dbModel.ContactTelephoneNumber = input.TelephoneNumber;

            input.AddressInformation.ToDbModel(OLEAddressInformationRefTypeEnum.OLEPersonalInformationContactAddress, dbModel.OleAddressInformationList);
            input.FinlandAddressInformation.ToDbModel(OLEAddressInformationRefTypeEnum.OLEPersonalInformationContactFinlandAddress, dbModel.OleAddressInformationList);
        }
        /// <summary>
        /// Maps from web to db Model
        /// </summary>
        /// <param name="input">OLEPersonalInformationPage Web model</param>
        /// <param name="objparam">OLEPersonalInformationPage object model</param>
        /// <returns>OLEPersonalInformationPage db model</returns>
        public static db.OLEPersonalInformationPage ToDbModel(this OLEPersonalInformationPage input, db.OLEPersonalInformationPage objparam)
        {
            if (input == null)
            {
                throw new ArgumentException("OLEPersonalInformationPage model is null");
            }

            ToOLEPersonalDbModel(input.PersonDataBlock, objparam);
            ToOLEContactInfoDbModel(input.ContactInformationBlock, objparam);
            ToOLEPassportInformationDbModel(input.PassportInformationBlock, objparam);
            ToOLEResidenceDurationDbModel(input.ResidenceDurationBlock, objparam);
            ToOLEFamilyDbModel(input.FamilyBlock, objparam);

            return objparam;
        }
        /// <summary>
        /// Maps object from web to db model
        /// </summary>
        /// <param name="input">OLEChildDate web</param>
        /// <param name="dbModel">OLEChildDate db</param>
        /// <returns>OLEChildDate db model</returns>
        public static db.OLEChildData ToDbModel(this OLEChildData input, db.OLEChildData dbModel)
        {
            if (dbModel == null)
            {
                return null;
            }

            dbModel.MigrationIntentions = input.MigrationIntentions.ToDbModel();
            dbModel.PersonCode = input.PersonCode;
            dbModel.PersonNameFirstName = input.PersonName.FirstName;
            dbModel.PersonNameLastName = input.PersonName.LastName;
            dbModel.Gender = input.Gender.ToDbModel();

            return dbModel;
        }
        /// <summary>
        /// Maps from web to db Model
        /// </summary>
        /// <param name="input">OLEOPIFinancialInformationPage Web model</param>
        /// <param name="objparam">OLEOPIFinancialInformationPage object model</param>
        /// <returns>OLEOPIFinancialInformationPage db model</returns>
        public static db.OLEOPIFinancialInformationPage ToDbModel(this OLEOPIFinancialInformationPage input, db.OLEOPIFinancialInformationPage objparam)
        {
            if (input == null)
            {
                throw new ArgumentException("OLEOPIEducationInformationPage model is null");
            }

            objparam.AdditionalInformation = input.AdditionalInformation.AdditionalInformation;

            ToHealthInsuranceDbModel(input.HealthInsurance, objparam);
            ToFinancialStudySupportDbModel(input.FinancialStudySupport, objparam);
            ToCriminalInformationDbModel(input.CriminalInformation, objparam);

            return objparam;
        }
        /// <summary>
        /// Maps from web to db Model
        /// </summary>
        /// <param name="input">OLEFamilyBlock Web model</param>
        /// <param name="dbModel">OLEPersonalInformationPage object model</param>
        public static void ToOLEFamilyDbModel(OLEFamilyBlock input, db.OLEPersonalInformationPage dbModel)
        {
            if (input == null || dbModel == null)
            {
                throw new ArgumentException("One of model is null");
            }

            dbModel.FamilyBirthCountry = input.BirthCountry;
            dbModel.FamilyBirthday = input.Birthday;
            dbModel.FamilyBirthPlace = input.BirthPlace;
            dbModel.FamilyGender = input.Gender.ToDbModel();
            dbModel.FamilyHaveChildren = input.HaveChildren;
            dbModel.FamilyPersonCode = input.PersonCode;
            dbModel.FamilyPersonNameFirstName = input.PersonName.FirstName;
            dbModel.FamilyPersonNameLastName = input.PersonName.LastName;
            dbModel.FamilySpouseIntentions = input.SpouseIntentions.ToDbModel();
            dbModel.FamilyStatus = input.FamilyStatus.ToDbModel();

            input.Children.ToDbModel(OLEChildDataRefTypeEnum.OLEPersonalInformationFamilyChildren, dbModel.OleChildDataList);
            input.CurrentCitizenships.ToCitizDbModel(db.TableRefEnums.OLECitizenshipRefTypeEnum.OLEPersonalInformationFamilyCurrent, dbModel.OleCitizenShipList);
            input.PreviousNames.ToDbModel(db.TableRefEnums.PersonNameRefTypeEnum.OLEPersonalInformationFamily, dbModel.OlePersonNameList);
        }
        /// <summary>
        /// Maps from web to db Model
        /// </summary>
        /// <param name="input">OLEResidenceDurationBlock Web model</param>
        /// <param name="dbModel">OLEPersonalInformationPage object model</param>
        public static void ToOLEResidenceDurationDbModel(OLEResidenceDurationBlock input, db.OLEPersonalInformationPage dbModel)
        {
            if (input == null || dbModel == null)
            {
                throw new ArgumentException("One of model is null");
            }

            dbModel.ResidenceDurationAlreadyInFinland = input.AlreadyInFinland;
            dbModel.ResidenceDurationArrivalDate = input.ArrivalDate;
            dbModel.ResidenceDurationDepartDate = input.DepartDate;
            dbModel.ResidenceDurationDurationOfStay = input.DurationOfStay;
        }
        /// <summary>
        /// Maps from web to db Model
        /// </summary>
        /// <param name="input">OLEPersonalDataBlock Web model</param>
        /// <param name="dbModel">OLEPersonalInformationPage object model</param>
        public static void ToOLEPersonalDbModel(OLEPersonalDataBlock input, db.OLEPersonalInformationPage dbModel)
        {
            if (input == null || dbModel == null)
            {
                throw new ArgumentException("One of model is null");
            }

            dbModel.PersonalBirthCountry = input.BirthCountry;
            dbModel.PersonalBirthday = input.Birthday;
            dbModel.PersonalBirthPlace = input.BirthPlace;
            dbModel.PersonalCommunicationLanguage = input.CommunicationLanguage.ToDbModel();
            dbModel.PersonalEducation = input.Education;
            dbModel.PersonalGender = input.Gender.ToDbModel();
            dbModel.PersonalMotherLanguage = input.MotherLanguage;
            dbModel.PersonalOccupation = input.Occupation;
            dbModel.PersonalPersonCode = input.PersonCode;
            dbModel.PersonalPersonNameFirstName = input.PersonName.FirstName;
            dbModel.PersonalPersonNameLastName = input.PersonName.LastName;

            input.CurrentCitizenships.ToCitizDbModel(OLECitizenshipRefTypeEnum.OLEPersonalInformationPersonalCurrent, dbModel.OleCitizenShipList);
            input.PreviousCitizenships.ToCitizDbModel(OLECitizenshipRefTypeEnum.OLEPersonalInformationPersonalPrevious, dbModel.OleCitizenShipList);
            input.PreviousNames.ToDbModel(db.TableRefEnums.PersonNameRefTypeEnum.OLEPersonalInformationPersonal, dbModel.OlePersonNameList);
        }
        /// <summary>
        /// Maps from web to db Model
        /// </summary>
        /// <param name="input">OLEPassportInformationBlock Web model</param>
        /// <param name="dbModel">OLEPersonalInformationPage object model</param>
        public static void ToOLEPassportInformationDbModel(OLEPassportInformationBlock input, db.OLEPersonalInformationPage dbModel)
        {
            if (input == null || dbModel == null)
            {
                throw new ArgumentException("One of model is null");
            }

            dbModel.PassportExpirationDate = input.ExpirationDate;
            dbModel.PassportInvalidPassport = input.InvalidPassport;
            dbModel.PassportIssuedDate = input.IssuedDate;
            dbModel.PassportIssuerAuthority = input.IssuerAuthority;
            dbModel.PassportIssuerCountry = input.IssuerCountry;
            dbModel.PassportPassportNumber = input.PassportNumber;
            dbModel.PassportPassportType = input.PassportType;
        }
        /// <summary>
        /// Maps from web to db Model
        /// </summary>
        /// <param name="input">OLEOPIStayingBlock Web model</param>
        /// <param name="dbModel">OLEOPIEducationInformationPage object model</param>
        private static void ToStayingLongerResoningDbModel(OLEOPIStayingBlock input, db.OLEOPIEducationInformationPage dbModel)
        {
            if (input == null || dbModel == null)
            {
                throw new ArgumentException("One of model is null");
            }

            dbModel.StayingDurationOfStudies = input.DurationOfStudies;
            dbModel.StayingReasonToHaveLongerPermit = input.ReasonToHaveLongerPermit;
            dbModel.StayingReasonToStayLonger = input.ReasonToStayLonger;
            dbModel.StayingReasonToStudyInFinland = input.ReasonToStudyInFinland;
        }
        /// <summary>
        /// Maps from web to db Model
        /// </summary>
        /// <param name="input">OLEOPIPreviousStudiesBlock Web model</param>
        /// <param name="dbModel">OLEOPIEducationInformationPage object model</param>
        private static void ToPreviousStudiesAndWorkDbModel(OLEOPIPreviousStudiesBlock input, db.OLEOPIEducationInformationPage dbModel)
        {
            if (input == null || dbModel == null)
            {
                throw new ArgumentException("One of model is null");
            }

            dbModel.PreviousStudies = input.PreviousStudies;
            dbModel.PreviousStudiesConnectionToCurrent = input.PreviousStudiesConnectionToCurrent;
            dbModel.PreviousStudiesWorkExperienceDescription = input.WorkExperienceDescription;
            dbModel.PreviousStudiesWorkExperienceStatus = input.WorkExperienceStatus.ToDbModel();
        }
        /// <summary>
        /// Maps from web to db Model
        /// </summary>
        /// <param name="input">OLEOPIEducationInstitutionBlock Web model</param>
        /// <param name="dbModel">OLEOPIEducationInformationPage object model</param>
        private static void ToEducationInstitutionDbModel(OLEOPIEducationInstitutionBlock input, db.OLEOPIEducationInformationPage dbModel)
        {
            if (input == null || dbModel == null)
            {
                throw new ArgumentException("One of model is null");
            }

            dbModel.EducationalInstitution = input.EducationalInstitution;
            dbModel.EducationalInstitutionName = input.EducationalInstitutionName;
            dbModel.EducationIsPresentAttendance = input.IsPresentAttendance;
            dbModel.EducationLanguageOfStudy = input.LanguageOfStudy;
            dbModel.EducationOtherLevelStudies = input.OtherLevelStudies;
            dbModel.EducationOtherStudies = input.OtherStudies;
            dbModel.EducationRegisterWhenInFinland = input.RegisterWhenInFinland;
            dbModel.EducationStudyExchangeProgram = input.StudyExchangeProgram;
            dbModel.EducationTermEndDate = input.TermEndDate;
            dbModel.EducationTermStartDate = input.TermStartDate;
            dbModel.EducationTypeOfStudies = input.TypeOfStudies;
        }
        /// <summary>
        /// Maps from web to db Model
        /// </summary>
        /// <param name="input">OLEOPIStayingBlock Web model</param>
        /// <param name="dbModel">OLEOPIFinancialInformationPage object model</param>
        private static void ToHealthInsuranceDbModel(OLEOPIHealthInsuranceBlock input, db.OLEOPIFinancialInformationPage dbModel)
        {
            if (input == null || dbModel == null)
            {
                throw new ArgumentException("One of model is null");
            }

            dbModel.HealthHaveEuropeanHealtInsurance = input.HaveEuropeanHealtInsurance;
            dbModel.HealthHaveKelaCard = input.HaveKelaCard;
            dbModel.HealthInsuredForAtLeastTwoYears = input.InsuredForAtLeastTwoYears;
            dbModel.HealthInsuredForLessThanTwoYears = input.InsuredForLessThanTwoYears;
        }
        /// <summary>
        /// Maps from web to db Model
        /// </summary>
        /// <param name="input">OLEOPIFinancialSupportBlock Web model</param>
        /// <param name="dbModel">OLEOPIFinancialInformationPage object model</param>
        private static void ToFinancialStudySupportDbModel(OLEOPIFinancialSupportBlock input, db.OLEOPIFinancialInformationPage dbModel)
        {
            if (input == null || dbModel == null)
            {
                throw new ArgumentException("One of model is null");
            }

            dbModel.FinancialIncomeInfo = input.IncomeInfo.ToDbModel();
            dbModel.FinancialIsCurrentlyStudying = input.IsCurrentlyStudying;
            dbModel.FinancialIsCurrentlyWorking = input.IsCurrentlyWorking;
            dbModel.FinancialOtherIncome = input.OtherIncome;
            dbModel.FinancialStudyWorkplaceName = input.StudyWorkplaceName;
        }
        /// <summary>
        /// Maps from web to db Model
        /// </summary>
        /// <param name="input">OLEOPICriminalInfoBlock Web model</param>
        /// <param name="dbModel">OLEOPIFinancialInformationPage object model</param>
        private static void ToCriminalInformationDbModel(OLEOPICriminalInfoBlock input, db.OLEOPIFinancialInformationPage dbModel)
        {
            if (input == null || dbModel == null)
            {
                throw new ArgumentException("One of model is null");
            }

            dbModel.CriminalConvictionCountry = input.ConvictionCountry;
            dbModel.CriminalConvictionCrimeDescription = input.ConvictionCrimeDescription;
            dbModel.CriminalConvictionDate = input.ConvictionDate;
            dbModel.CriminalConvictionSentence = input.ConvictionSentence;
            dbModel.CriminalCrimeAllegedOffence = input.CrimeAllegedOffence;
            dbModel.CriminalCrimeCountry = input.CrimeCountry;
            dbModel.CriminalCrimeDate = input.CrimeDate;
            dbModel.CriminalHaveCrimeConviction = input.HaveCrimeConviction;
            dbModel.CriminalIsSchengenZoneEntryStillInForce = input.IsSchengenZoneEntryStillInForce;
            dbModel.CriminalRecordApproval = input.CriminalRecordApproval;
            dbModel.CriminalRecordRetriveDenialReason = input.CriminalRecordRetriveDenialReason;
            dbModel.CriminalSchengenEntryRefusalCountry = input.SchengenEntryRefusalCountry;
            dbModel.CriminalSchengenEntryTimeRefusalExpiration = input.SchengenEntryTimeRefusalExpiration;
            dbModel.CriminalWasSchengenEntryRefusal = input.WasSchengenEntryRefusal;
            dbModel.CriminalWasSuspectOfCrime = input.WasSuspectOfCrime;
        }