public virtual Person GetSinglePerson(Person person)
 {
     return this.Send<Person>(__GetSinglePersonAction, person);
 }
 public virtual Task<Person> GetSinglePersonAsync(Person person)
 {
     return this.SendAsync<Person>(__GetSinglePersonAction, person);
 }
 public virtual Person UpdatePersonThatThrowsInvalidOperationException(Person person)
 {
     return this.Send<Person>(__UpdatePersonThatThrowsInvalidOperationExceptionAction, person);
 }
 public virtual Task<Person> UpdatePersonThatThrowsInvalidOperationExceptionAsync(Person person)
 {
     return this.SendAsync<Person>(__UpdatePersonThatThrowsInvalidOperationExceptionAction, person);
 }
 public virtual Person UpdatePerson(Person person, CancellationToken cancellation)
 {
     return this.Send<Person>(__UpdatePersonAction, person, cancellation);
 }
 public virtual Task<Person> UpdatePersonAsync(Person person, CancellationToken cancellation)
 {
     return this.SendAsync<Person>(__UpdatePersonAction, person, cancellation);
 }
 public Task<List<Person>> GetManyPersonsAsAsync(Person person)
 {
     return Task.FromResult(Enumerable.Range(0, 100).Select(Person.Create).ToList());
 }
 public virtual Task<List<Person>> GetManyPersonsAsAsync(Person person)
 {
     return this.SendAsync<List<Person>>(__GetManyPersonsAsAsyncAction, person);
 }
 public Task<Person> GetSinglePersonAsAsync(Person person)
 {
     return Task.FromResult(Person.Create(0));
 }
 public Person GetSinglePerson(Person person)
 {
     return Person.Create(0);
 }
 public Task DoLongRunningOperationAsync(Person person, CancellationToken cancellation)
 {
     return Task.Delay(TimeSpan.FromMinutes(1), cancellation);
 }
 public Person UpdatePersonThatThrowsInvalidOperationException(Person person)
 {
     throw new InvalidOperationException("test message", new ArgumentOutOfRangeException("inner message"));
 }
 public Person UpdatePerson(Person person, CancellationToken cancellation)
 {
     return null;
 }