public Atividade AdicionarAtividadeChat(string usuarioId, long?atendimentoId,
                                                IEnumerable <AtividadeParteEnvolvida> envolvidos, int?statusAtividadeId)
        {
            var atividade = new Atividade();

            if (string.IsNullOrEmpty(usuarioId))
            {
                var usuarioAdm = _servicoUsuario.ObterPorEmail("*****@*****.**");
                if (usuarioAdm != null)
                {
                    usuarioId = usuarioAdm.Id;
                }
                else
                {
                    atividade.ValidationResult.Add(
                        new ValidationError(
                            "Não foi informado o usuario (Criado Por) e também não possui usuario padrão cadastrado ([email protected])"));
                    return(atividade);
                }
            }

            var atividadeTipo = _servicoAtividadeTipo.BuscarPorNome("Chat");

            if (atividadeTipo == null)
            {
                atividade.ValidationResult.Add(new ValidationError("AtividadaTipo com nome (Chat) não cadastrada"));
                return(atividade);
            }

            if (!statusAtividadeId.HasValue)
            {
                var statusAtividadePadraoChat = _servicoStatusAtividade.ObterStatusAtividadePadraoParaChatPadrao();

                if (statusAtividadePadraoChat == null)
                {
                    atividade.ValidationResult.Add(
                        new ValidationError("StatusAtividade Padrão para Chat não cadastrada."));
                    return(atividade);
                }

                statusAtividadeId = statusAtividadePadraoChat.Id;
            }

            int?canalId = null;
            var canal   = _canalServico.ObterCanalChat();

            if (canal.ValidationResult.IsValid)
            {
                canalId = canal.Id;
            }

            atividade = new Atividade(usuarioId, statusAtividadeId.Value, atividadeTipo.Id, "Chat",
                                      null, null, null, null, null, atendimentoId, null, envolvidos, usuarioId, null,
                                      null, canalId, usuarioId);

            _repositorio.Adicionar(atividade);

            _servicoAtividadeFila.AdicionarAtividadeFila("chat",
                                                         atividade.Id);

            if (envolvidos.Any())
            {
                foreach (var envolvido in atividade.Envolvidos)
                {
                    envolvido.SetarAtividadeId(atividade.Id);
                    _servicoAtividadeParteEnvolvida.Adicionar(envolvido);
                }
            }

            if (atividade.Id <= 0 || !atividade.AtendimentoId.HasValue)
            {
                return(atividade);
            }
            if (!(atividade.AtendimentoId > 0))
            {
                return(atividade);
            }

            var atendimentoAtividade = new AtendimentoAtividade(atividade.Id, (long)atividade.AtendimentoId);

            _atendimentoAtividadeServico.Adicionar(atendimentoAtividade);

            return(atividade);
        }