コード例 #1
0
        public Result AjouterPersonne(string prenom, InfosNaissance infosNaissance)
        {
            PersonneNonAjouteeCar?raison = null;

            if (string.IsNullOrWhiteSpace(prenom))
            {
                raison = PersonneNonAjouteeCar.PrenomInvalide;
            }
            else
            {
                if (!_state.Personnes.Any(p => p.Prenom == prenom && p.InfosNaissance == infosNaissance))
                {
                    var declarationNaissance = Personne.DeclarerNaissance(prenom, infosNaissance);
                    if (declarationNaissance && declarationNaissance is Result <Personne> declarationOk)
                    {
                        _state.Personnes.Add(declarationOk.Value);
                        AddDomainEvent(new PersonneAjoutee(Id, prenom, infosNaissance.Lieu, infosNaissance.DateNaissance));
                        return(Result.Ok());
                    }
                    else
                    {
                        return(declarationNaissance);
                    }
                }
                else
                {
                    raison = PersonneNonAjouteeCar.PersonneExistante;
                }
            }
            return(Result.Fail(raison.Value));
        }
コード例 #2
0
ファイル: Personne.cs プロジェクト: nozzle-1/CQELight
        public static Result DeclarerNaissance(string prenom, InfosNaissance infosNaissance)
        {
            if (string.IsNullOrWhiteSpace(prenom))
            {
                return(Result.Fail(DeclarationNaissanceImpossibleCar.AbsenceDePrenom));
            }

            if (infosNaissance == null)
            {
                return(Result.Fail(DeclarationNaissanceImpossibleCar.AbsenceInformationNaissance));
            }

            return(Result.Ok(new Personne(PersonneId.Generate())
            {
                Prenom = prenom,
                InfosNaissance = infosNaissance
            }));
        }