public XmlElement ToXmlElement(XmlHelper helper)
        {
            var xmlElement = helper.CreateElement(nameof(AskingDeceaseClaimModel).Replace("Model", string.Empty));

            xmlElement.AppendChild(helper.CreateElement(nameof(PrenomDemandeur), PrenomDemandeur));
            xmlElement.AppendChild(helper.CreateElement(nameof(NomDemandeur), NomDemandeur));
            xmlElement.AppendChild(helper.CreateElement(nameof(Initiale), Initiale));
            xmlElement.AppendChild(helper.CreateElement(nameof(InfosAdresse), InfosAdresse.ToXmlElement(helper)));
            xmlElement.AppendChild(helper.CreateElement(nameof(CourrielDemandeur), CourrielDemandeur));

            XmlElement XmlTitres = helper.CreateElement("Titres");

            xmlElement.AppendChild(XmlTitres);
            if (Avocat)
            {
                XmlTitres.AppendChild(helper.CreateElement("Titre", nameof(Avocat)));
            }
            if (Beneficiaire)
            {
                XmlTitres.AppendChild(helper.CreateElement("Titre", nameof(Beneficiaire)));
            }
            if (Conseiller)
            {
                XmlTitres.AppendChild(helper.CreateElement("Titre", nameof(Conseiller)));
            }
            if (Fiduciaire)
            {
                XmlTitres.AppendChild(helper.CreateElement("Titre", nameof(Fiduciaire)));
            }
            if (Liquidateur)
            {
                XmlTitres.AppendChild(helper.CreateElement("Titre", nameof(Liquidateur)));
            }
            if (Mandataire)
            {
                XmlTitres.AppendChild(helper.CreateElement("Titre", nameof(Mandataire)));
            }
            if (MaisonFuneraire)
            {
                XmlTitres.AppendChild(helper.CreateElement("Titre", nameof(MaisonFuneraire)));
            }
            if (InstitutionFinanciere)
            {
                XmlTitres.AppendChild(helper.CreateElement("Titre", nameof(InstitutionFinanciere)));
            }
            if (Tuteur)
            {
                XmlTitres.AppendChild(helper.CreateElement("Titre", nameof(Tuteur)));
            }
            if (AutreRole)
            {
                XmlTitres.AppendChild(helper.CreateElement("Titre", nameof(AutreTitre)));
            }

            if ((Avocat) && (Confirmation.Files.Any()))
            {
                XmlElement XmlAvocat = helper.CreateElement("Avocat");
                xmlElement.AppendChild(XmlAvocat);
                XmlAvocat.AppendChild(helper.CreateElement(nameof(Confirmation), Confirmation.ToXmlElement(helper)));
            }

            if (Conseiller)
            {
                XmlElement XmlConseiller = helper.CreateElement("Conseiller");
                xmlElement.AppendChild(XmlConseiller);
                XmlConseiller.AppendChild(Advisor.ToXmlElement(helper));
            }

            if ((Fiduciaire) && (ActeFiducie.Files.Any()))
            {
                XmlElement XmlFiduciaire = helper.CreateElement("Fiduciaire");
                xmlElement.AppendChild(XmlFiduciaire);
                XmlFiduciaire.AppendChild(ActeFiducie.ToXmlElement(helper));
            }

            if ((Mandataire) && (CopieMandat.Files.Any()))
            {
                XmlElement XmlMandataire = helper.CreateElement("Mandataire");
                xmlElement.AppendChild(XmlMandataire);
                XmlMandataire.AppendChild(CopieMandat.ToXmlElement(helper));
            }

            if ((MaisonFuneraire) && (CessionFuneraire.Files.Any()))
            {
                XmlElement XmlMaisonFuneraire = helper.CreateElement("MaisonFuneraire");
                xmlElement.AppendChild(XmlMaisonFuneraire);
                XmlMaisonFuneraire.AppendChild(CessionFuneraire.ToXmlElement(helper));
            }

            if ((InstitutionFinanciere) && (CessionFinanciere.Files.Any()))
            {
                XmlElement XmlInstitutionFinanciere = helper.CreateElement("InstitutionFinanciere");
                xmlElement.AppendChild(XmlInstitutionFinanciere);
                XmlInstitutionFinanciere.AppendChild(CessionFinanciere.ToXmlElement(helper));
            }

            if (Tuteur)
            {
                XmlElement XmlTuteur = helper.CreateElement("Tuteur");
                xmlElement.AppendChild(XmlTuteur);
                XmlTuteur.AppendChild(helper.CreateElement(nameof(PrenomTuteur), PrenomTuteur));
                XmlTuteur.AppendChild(helper.CreateElement(nameof(NomTuteur), NomTuteur));
                if (CertificatNaissance.Files.Any())
                {
                    XmlElement XmlCertificatNaissance = helper.CreateElement("CertificatNaissance");
                    XmlTuteur.AppendChild(XmlCertificatNaissance);
                    XmlCertificatNaissance.AppendChild(CertificatNaissance.ToXmlElement(helper));
                }
                if (ActeTutelle.Files.Any())
                {
                    XmlElement XmlActeTutelle = helper.CreateElement("ActeTutelle");
                    XmlTuteur.AppendChild(XmlActeTutelle);
                    XmlActeTutelle.AppendChild(ActeTutelle.ToXmlElement(helper));
                }
            }
            if (AutreRole)
            {
                XmlElement XmlAutreTitre = helper.CreateElement("AutreTitre");
                xmlElement.AppendChild(XmlAutreTitre);
                XmlAutreTitre.AppendChild(helper.CreateElement(nameof(AutreTitre), AutreTitre));
            }

            return(xmlElement);
        }
        public IEnumerable <ValidationResult> Validate(ValidationContext validationContext)
        {
            var result = new List <ValidationResult>();

            if (string.IsNullOrWhiteSpace(PrenomDemandeur))
            {
                result.Add(new ValidationResult(string.Empty, new[] { nameof(PrenomDemandeur) }));
            }

            if (string.IsNullOrWhiteSpace(NomDemandeur))
            {
                result.Add(new ValidationResult(string.Empty, new[] { nameof(NomDemandeur) }));
            }

            result.AddRange(InfosAdresse.Validate(nameof(InfosAdresse), true));

            if (string.IsNullOrWhiteSpace(CourrielDemandeur) || !Helpers.ValidationHelper.IsEmailAdressNumberValid(CourrielDemandeur))
            {
                result.Add(new ValidationResult(string.Empty, new[] { nameof(CourrielDemandeur) }));
            }

            if (Conseiller)
            {
                result.AddRange(Advisor.Validate(nameof(Advisor), true));
            }

            if (Tuteur)
            {
                if (string.IsNullOrWhiteSpace(PrenomTuteur))
                {
                    result.Add(new ValidationResult(string.Empty, new[] { nameof(PrenomTuteur) }));
                }

                if (string.IsNullOrWhiteSpace(NomTuteur))
                {
                    result.Add(new ValidationResult(string.Empty, new[] { nameof(NomTuteur) }));
                }
            }

            if (!Avocat && !Beneficiaire && !Fiduciaire && !Liquidateur &&
                !Mandataire && !MaisonFuneraire && !InstitutionFinanciere && !Tuteur & !AutreRole)
            {
                result.Add(new ValidationResult(string.Empty, new[] { nameof(Avocat) }));
            }

            if ((string.IsNullOrWhiteSpace(AutreTitre)) && (AutreRole))
            {
                result.Add(new ValidationResult(string.Empty, new[] { nameof(AutreTitre) }));
            }

            if (Mandataire)
            {
                result.AddRange(CopieMandat.Validate(nameof(CopieMandat), !Mandataire));
            }

            if (MaisonFuneraire)
            {
                result.AddRange(CessionFuneraire.Validate(nameof(CessionFuneraire), !MaisonFuneraire));
            }

            if (InstitutionFinanciere)
            {
                result.AddRange(CessionFinanciere.Validate(nameof(CessionFinanciere), !InstitutionFinanciere));
            }

            if (Avocat)
            {
                result.AddRange(Confirmation.Validate(nameof(Confirmation), !Avocat));
            }

            if (Tuteur)
            {
                result.AddRange(CertificatNaissance.Validate(nameof(CertificatNaissance), !Tuteur));
                result.AddRange(ActeTutelle.Validate(nameof(ActeTutelle), !Tuteur));
            }

            if (Fiduciaire)
            {
                result.AddRange(ActeFiducie.Validate(nameof(ActeFiducie), !Fiduciaire));
            }

            return(result);
        }