public ActionResult Agendar([Bind(Include = "MotivoId, DataPrevista, CpfCnpj, NovaViagemId, ItensCargaSolta")] AgendamentoCargaSoltaViewModel viewModel)
        {
            var agendamento = new Agendamento(
                viewModel.MotivoId,
                viewModel.DataPrevista.ToDateTime(),
                viewModel.CpfCnpj,
                viewModel.NovaViagemId,
                TipoAgendamento.CargaSolta,
                User.ObterDespachanteId());

            agendamento.AdicionarItensCargaSolta(viewModel.ItensCargaSolta);

            if (!Validar(agendamento))
            {
                return(RetornarErros());
            }

            var clienteBusca = _clientesRepositorio
                               .ObterClientePorDocumento(viewModel.CpfCnpj.ApenasNumeros());

            if (clienteBusca == null)
            {
                throw new Exception($"Nenhum Cliente foi encontrado com o documento {viewModel.CpfCnpj}");
            }

            agendamento.SetarCliente(clienteBusca.Id);
            agendamento.Status = StatusPosicionamento.NaoIniciado;

            try
            {
                var protocolo = _agendamentoRepositorio.GravarPosicionamentoCargaSolta(agendamento);

                viewModel.ItensCargaSoltaAgendados = _agendamentoRepositorio
                                                     .ObterItensCargaSoltaAgendamento(protocolo).ToList();

                viewModel.ProtocoloUnificado = protocolo;

                return(PartialView("_Concluido", viewModel));
            }
            catch (Exception ex)
            {
                throw new Exception($"Falha ao Gravar o Agendamento {ex.Message}");
            }
        }