public Person Create(ICurrentCaller caller, string firstName, string lastName) { caller.GuardAgainstNull(nameof(caller)); var person = new PersonEntity(this.logger, this.idFactory, this.emailService); person.SetName(new PersonName(firstName, lastName)); var created = this.storage.Save(person); this.logger.LogInformation("Person {Id} was created by {Caller}", created.Id, caller.Id); return(created.ToPerson()); }