/// <summary>
        ///
        /// </summary>
        /// <param name="id"></param>
        /// <param name="clienteModel"></param>
        /// <returns></returns>
        public async Task <Retorno <ClienteRetornoModel> > Alterar(Guid id, ClienteModel clienteModel)
        {
            var cliente = _mapper.Map <ClienteModel, Cliente>(clienteModel);

            cliente.AlterarId(id);
            if (!cliente.Valid)
            {
                return(Retorno <ClienteRetornoModel> .Error(cliente.Notifications));
            }

            var clienteData = await _clienteRepository.ObterPorId(id);

            if (clienteData != null)
            {
                var clienteAlterar = _mapper.Map <Cliente, ClienteData>(cliente);
                if (await _clienteRepository.Alterar(clienteAlterar))
                {
                    return(Retorno <ClienteRetornoModel> .Ok());
                }
                return(Retorno <ClienteRetornoModel> .Error(new Notification("Erro", "Falha ao alterar o cliente")));
            }
            else
            {
                return(Retorno <ClienteRetornoModel> .Error(new Notification("Erro", "Cliente não encontrado")));
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="clienteModel"></param>
        /// <returns></returns>
        public async Task <Retorno <ClienteRetornoModel> > Incluir(ClienteModel clienteModel)
        {
            var cliente = _mapper.Map <ClienteModel, Cliente>(clienteModel);

            if (!cliente.Valid)
            {
                return(Retorno <ClienteRetornoModel> .Error(cliente.Notifications));
            }

            var clienteIncluir = _mapper.Map <Cliente, ClienteData>(cliente);

            return(Retorno <ClienteRetornoModel> .Ok(_mapper.Map <ClienteData, ClienteRetornoModel>((ClienteData)(await _clienteRepository.Incluir(clienteIncluir)))));
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task <Retorno> Excluir(Guid id)
        {
            var clienteData = await _clienteRepository.ObterPorId(id);

            if (clienteData != null)
            {
                if (await _clienteRepository.Excluir(clienteData))
                {
                    return(Retorno.Ok());
                }
                return(Retorno.Error(new Notification("Erro", "Falha ao excluir o cliente")));
            }
            else
            {
                return(Retorno.Error(new Notification("Erro", "Cliente não encontrado")));
            }
        }