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); }