/// <summary>
 /// Initializes a new instance of the <see cref="FranchisereferalincomeRequestCompound" /> class.
 /// </summary>
 /// <param name="objAddress">objAddress.</param>
 /// <param name="aObjContact">aObjContact (required).</param>
 /// <param name="fkiFranchisebrokerID">The unique ID of the Franchisebroker (required).</param>
 /// <param name="fkiFranchisereferalincomeprogramID">The unique ID of the Franchisereferalincomeprogram (required).</param>
 /// <param name="fkiPeriodID">The unique ID of the Period (required).</param>
 /// <param name="dFranchisereferalincomeLoan">The loan amount (required).</param>
 /// <param name="dFranchisereferalincomeFranchiseamount">The amount that will be given to the franchise (required).</param>
 /// <param name="dFranchisereferalincomeFranchisoramount">The amount that will be kept by the franchisor (required).</param>
 /// <param name="dFranchisereferalincomeAgentamount">The amount that will be given to the agent (required).</param>
 /// <param name="dtFranchisereferalincomeDisbursed">The date the amounts were disbursed (required).</param>
 /// <param name="tFranchisereferalincomeComment">A comment about the transaction (required).</param>
 /// <param name="fkiFranchiseofficeID">The unique ID of the Franchisereoffice (required).</param>
 /// <param name="sFranchisereferalincomeRemoteid">sFranchisereferalincomeRemoteid (required).</param>
 public FranchisereferalincomeRequestCompound(AddressRequest objAddress = default(AddressRequest), List <ContactRequestCompound> aObjContact = default(List <ContactRequestCompound>), int fkiFranchisebrokerID = default(int), int fkiFranchisereferalincomeprogramID = default(int), int fkiPeriodID = default(int), string dFranchisereferalincomeLoan = default(string), string dFranchisereferalincomeFranchiseamount = default(string), string dFranchisereferalincomeFranchisoramount = default(string), string dFranchisereferalincomeAgentamount = default(string), string dtFranchisereferalincomeDisbursed = default(string), string tFranchisereferalincomeComment = default(string), int fkiFranchiseofficeID = default(int), string sFranchisereferalincomeRemoteid = default(string))
 {
     // to ensure "aObjContact" is required (not null)
     this.AObjContact          = aObjContact ?? throw new ArgumentNullException("aObjContact is a required property for FranchisereferalincomeRequestCompound and cannot be null");
     this.FkiFranchisebrokerID = fkiFranchisebrokerID;
     this.FkiFranchisereferalincomeprogramID = fkiFranchisereferalincomeprogramID;
     this.FkiPeriodID = fkiPeriodID;
     // to ensure "dFranchisereferalincomeLoan" is required (not null)
     this.DFranchisereferalincomeLoan = dFranchisereferalincomeLoan ?? throw new ArgumentNullException("dFranchisereferalincomeLoan is a required property for FranchisereferalincomeRequestCompound and cannot be null");
     // to ensure "dFranchisereferalincomeFranchiseamount" is required (not null)
     this.DFranchisereferalincomeFranchiseamount = dFranchisereferalincomeFranchiseamount ?? throw new ArgumentNullException("dFranchisereferalincomeFranchiseamount is a required property for FranchisereferalincomeRequestCompound and cannot be null");
     // to ensure "dFranchisereferalincomeFranchisoramount" is required (not null)
     this.DFranchisereferalincomeFranchisoramount = dFranchisereferalincomeFranchisoramount ?? throw new ArgumentNullException("dFranchisereferalincomeFranchisoramount is a required property for FranchisereferalincomeRequestCompound and cannot be null");
     // to ensure "dFranchisereferalincomeAgentamount" is required (not null)
     this.DFranchisereferalincomeAgentamount = dFranchisereferalincomeAgentamount ?? throw new ArgumentNullException("dFranchisereferalincomeAgentamount is a required property for FranchisereferalincomeRequestCompound and cannot be null");
     // to ensure "dtFranchisereferalincomeDisbursed" is required (not null)
     this.DtFranchisereferalincomeDisbursed = dtFranchisereferalincomeDisbursed ?? throw new ArgumentNullException("dtFranchisereferalincomeDisbursed is a required property for FranchisereferalincomeRequestCompound and cannot be null");
     // to ensure "tFranchisereferalincomeComment" is required (not null)
     this.TFranchisereferalincomeComment = tFranchisereferalincomeComment ?? throw new ArgumentNullException("tFranchisereferalincomeComment is a required property for FranchisereferalincomeRequestCompound and cannot be null");
     this.FkiFranchiseofficeID           = fkiFranchiseofficeID;
     // to ensure "sFranchisereferalincomeRemoteid" is required (not null)
     this.SFranchisereferalincomeRemoteid = sFranchisereferalincomeRemoteid ?? throw new ArgumentNullException("sFranchisereferalincomeRemoteid is a required property for FranchisereferalincomeRequestCompound and cannot be null");
     this.ObjAddress = objAddress;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="FranchisereferalincomeRequestCompound" /> class.
        /// </summary>
        /// <param name="objAddress">objAddress.</param>
        /// <param name="aObjContact">aObjContact (required).</param>
        /// <param name="fkiFranchisebrokerID">The unique ID of the Franchisebroker (required).</param>
        /// <param name="fkiFranchisereferalincomeprogramID">The unique ID of the Franchisereferalincomeprogram (required).</param>
        /// <param name="fkiPeriodID">The unique ID of the Period (required).</param>
        /// <param name="dFranchisereferalincomeLoan">The loan amount (required).</param>
        /// <param name="dFranchisereferalincomeFranchiseamount">The amount that will be given to the franchise (required).</param>
        /// <param name="dFranchisereferalincomeFranchisoramount">The amount that will be kept by the franchisor (required).</param>
        /// <param name="dFranchisereferalincomeAgentamount">The amount that will be given to the agent (required).</param>
        /// <param name="dtFranchisereferalincomeDisbursed">The date the amounts were disbursed (required).</param>
        /// <param name="tFranchisereferalincomeComment">A comment about the transaction (required).</param>
        /// <param name="fkiFranchiseofficeID">The unique ID of the Franchisereoffice (required).</param>
        /// <param name="sFranchisereferalincomeRemoteid">sFranchisereferalincomeRemoteid (required).</param>
        public FranchisereferalincomeRequestCompound(AddressRequest objAddress = default(AddressRequest), List <ContactRequestCompound> aObjContact = default(List <ContactRequestCompound>), int fkiFranchisebrokerID = default(int), int fkiFranchisereferalincomeprogramID = default(int), int fkiPeriodID = default(int), string dFranchisereferalincomeLoan = default(string), string dFranchisereferalincomeFranchiseamount = default(string), string dFranchisereferalincomeFranchisoramount = default(string), string dFranchisereferalincomeAgentamount = default(string), string dtFranchisereferalincomeDisbursed = default(string), string tFranchisereferalincomeComment = default(string), int fkiFranchiseofficeID = default(int), string sFranchisereferalincomeRemoteid = default(string))
        {
            // to ensure "aObjContact" is required (not null)
            if (aObjContact == null)
            {
                throw new InvalidDataException("aObjContact is a required property for FranchisereferalincomeRequestCompound and cannot be null");
            }
            else
            {
                this.AObjContact = aObjContact;
            }

            // to ensure "fkiFranchisebrokerID" is required (not null)
            if (fkiFranchisebrokerID == null)
            {
                throw new InvalidDataException("fkiFranchisebrokerID is a required property for FranchisereferalincomeRequestCompound and cannot be null");
            }
            else
            {
                this.FkiFranchisebrokerID = fkiFranchisebrokerID;
            }

            // to ensure "fkiFranchisereferalincomeprogramID" is required (not null)
            if (fkiFranchisereferalincomeprogramID == null)
            {
                throw new InvalidDataException("fkiFranchisereferalincomeprogramID is a required property for FranchisereferalincomeRequestCompound and cannot be null");
            }
            else
            {
                this.FkiFranchisereferalincomeprogramID = fkiFranchisereferalincomeprogramID;
            }

            // to ensure "fkiPeriodID" is required (not null)
            if (fkiPeriodID == null)
            {
                throw new InvalidDataException("fkiPeriodID is a required property for FranchisereferalincomeRequestCompound and cannot be null");
            }
            else
            {
                this.FkiPeriodID = fkiPeriodID;
            }

            // to ensure "dFranchisereferalincomeLoan" is required (not null)
            if (dFranchisereferalincomeLoan == null)
            {
                throw new InvalidDataException("dFranchisereferalincomeLoan is a required property for FranchisereferalincomeRequestCompound and cannot be null");
            }
            else
            {
                this.DFranchisereferalincomeLoan = dFranchisereferalincomeLoan;
            }

            // to ensure "dFranchisereferalincomeFranchiseamount" is required (not null)
            if (dFranchisereferalincomeFranchiseamount == null)
            {
                throw new InvalidDataException("dFranchisereferalincomeFranchiseamount is a required property for FranchisereferalincomeRequestCompound and cannot be null");
            }
            else
            {
                this.DFranchisereferalincomeFranchiseamount = dFranchisereferalincomeFranchiseamount;
            }

            // to ensure "dFranchisereferalincomeFranchisoramount" is required (not null)
            if (dFranchisereferalincomeFranchisoramount == null)
            {
                throw new InvalidDataException("dFranchisereferalincomeFranchisoramount is a required property for FranchisereferalincomeRequestCompound and cannot be null");
            }
            else
            {
                this.DFranchisereferalincomeFranchisoramount = dFranchisereferalincomeFranchisoramount;
            }

            // to ensure "dFranchisereferalincomeAgentamount" is required (not null)
            if (dFranchisereferalincomeAgentamount == null)
            {
                throw new InvalidDataException("dFranchisereferalincomeAgentamount is a required property for FranchisereferalincomeRequestCompound and cannot be null");
            }
            else
            {
                this.DFranchisereferalincomeAgentamount = dFranchisereferalincomeAgentamount;
            }

            // to ensure "dtFranchisereferalincomeDisbursed" is required (not null)
            if (dtFranchisereferalincomeDisbursed == null)
            {
                throw new InvalidDataException("dtFranchisereferalincomeDisbursed is a required property for FranchisereferalincomeRequestCompound and cannot be null");
            }
            else
            {
                this.DtFranchisereferalincomeDisbursed = dtFranchisereferalincomeDisbursed;
            }

            // to ensure "tFranchisereferalincomeComment" is required (not null)
            if (tFranchisereferalincomeComment == null)
            {
                throw new InvalidDataException("tFranchisereferalincomeComment is a required property for FranchisereferalincomeRequestCompound and cannot be null");
            }
            else
            {
                this.TFranchisereferalincomeComment = tFranchisereferalincomeComment;
            }

            // to ensure "fkiFranchiseofficeID" is required (not null)
            if (fkiFranchiseofficeID == null)
            {
                throw new InvalidDataException("fkiFranchiseofficeID is a required property for FranchisereferalincomeRequestCompound and cannot be null");
            }
            else
            {
                this.FkiFranchiseofficeID = fkiFranchiseofficeID;
            }

            // to ensure "sFranchisereferalincomeRemoteid" is required (not null)
            if (sFranchisereferalincomeRemoteid == null)
            {
                throw new InvalidDataException("sFranchisereferalincomeRemoteid is a required property for FranchisereferalincomeRequestCompound and cannot be null");
            }
            else
            {
                this.SFranchisereferalincomeRemoteid = sFranchisereferalincomeRemoteid;
            }

            this.ObjAddress = objAddress;
        }