public async Task <PersonRetrieveView> Put(Guid id, [FromBody] PersonUpdateView request)
        {
            var entity = new Person();

            request.Hydrate(entity);
            entity.Id = id;
            entity    = await _handler.Update(entity);

            var view = new PersonRetrieveView(entity);

            return(view);
        }
        public async Task <PersonRetrieveView> Post([FromBody] PersonCreateView request)
        {
            var entity = new Person();

            request.Hydrate(entity);
            entity = await _handler.Create(entity);

            Response.StatusCode = 201;
            var view = new PersonRetrieveView(entity);

            return(view);
        }
        public async Task <PersonRetrieveView> Get(Guid id)
        {
            var entity = await _handler.Retrieve(id);

            if (entity == null)
            {
                Response.StatusCode = 404;
                return(null);
            }

            var view = new PersonRetrieveView(entity);

            return(view);
        }
        public async Task <IEnumerable <PersonRetrieveView> > Get()
        {
            var list = await _handler.RetrieveAll();

            var view = new HashSet <PersonRetrieveView>();

            foreach (var entity in list)
            {
                var viewItem = new PersonRetrieveView(entity);
                view.Add(viewItem);
            }

            return(view);
        }