public async Task <IActionResult> Post([FromBody] ClienteViewModel viewModel)
        {
            var clienteGerenciamento = _provider.GetRequiredService <ClienteGerenciamento> ();

            if (!await clienteGerenciamento.Insert(viewModel.MapTo(new Cliente())))
            {
                return(new ClienteErrorJson(clienteGerenciamento));
            }

            return(Created());
        }
        public async Task <IActionResult> Put([FromRoute] long id, [FromBody] ClienteViewModel viewModel)
        {
            var clienteGerenciamento = _provider.GetRequiredService <ClienteGerenciamento> ();

            await clienteGerenciamento.GetById(id);

            viewModel.MapTo(clienteGerenciamento.Cliente);

            if (!await clienteGerenciamento.Update())
            {
                return(new ClienteErrorJson(clienteGerenciamento));
            }

            return(new ClienteJson(clienteGerenciamento.Cliente));
        }