public string CreatePerson(CreatePersonModel personModel) { try { var validationResult = personModel.Evaluate(); if (validationResult.IsFailure) { return(validationResult.Error); } var person = personModel.ToBusinessObject(); if (this.personQuery.WithSameName(person.FirstName, person.Name)) { var createNewPerson = View.YesNoChoice( "A person with same firstname an name exist, are you sure you want to create a new one ?"); if (!createNewPerson) { return("Person has not been created"); } } this.personService.CreatePerson(person); return("Person created"); } catch (ArgumentNullException exception) { var parameter = exception.GetParameter(); return($"It is not possible to create a person without {parameter}"); } catch (Exception) { return("An unknow error was thrown"); } }