public virtual async Task <IDataResponse <PersonViewModel> > GetAsync( GetRequest request, CancellationToken token = default) { request.ArgumentNullCheck(nameof(request)); request.Id.ArgumentOutOfRangeCheck(nameof(request.Id)); var entity = await store.GetEntityAsync(request.Id, token); IDataResponse <PersonViewModel> response; if (entity == null) { response = NotFoundDataResponse <PersonViewModel>(request.Id); } else { var viewModel = new PersonViewModel(entity.Id, entity); response = new DataResponse <PersonViewModel>(viewModel, request.Id); } return(response); }