protected void CarregarAtividadeEmail(AtividadeNewViewModel model, Atividade atividade, string userId) { var email = _emailServico.ObterEmailCompletoPor(null, atividade.Id); if (email == null) { return; } var envolvidos = _atividadeParteEnvolvidaServico.ObterPorAtividadeId(atividade.Id); model.Email = new EmailViewModel(email.AtividadeId, email.Id, email.CorpoDoEmail, email.Texto, email.Assunto, email.CriadoEm, email.Atividade.CriadoEm, envolvidos, email.Sentido); if (!string.IsNullOrEmpty(email.Sentido)) { model.listaStatusAtividade = email.Sentido.Trim().ToLower() == "s" ? _statusAtividadeServico.ObterStatusAtividadeEmailEnviado() : _statusAtividadeServico.ObterStatusAtividadeEmailRecebido(); } var canal = _canalServico.ObterPorNome("email"); if (canal != null) { model.listaMidia = new SelectList(_midiaServico.ObterPor(null, canal.FirstOrDefault().Id), "id", "nome"); } if (email.Atividade.AtendimentoId != null) { return; } var atendimento = new Atendimento(userId, _atendimentoServico.GerarNumeroProtocolo(DateTime.Now), canal != null ? canal.FirstOrDefault().Id : (int?)null, null); _atendimentoServico.Adicionar(atendimento); atividade.Atendimento = atendimento; atividade.AtendimentoId = atendimento.Id; model.atendimentoID = atendimento.Id; _atividadeServico.Atualizar(atividade); var atendimentoAtividade = new AtendimentoAtividade(atividade.Id, atendimento.Id); _atendimentoAtividadeServico.Adicionar(atendimentoAtividade); }
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); }
public Atividade NovaAtividadeLigacao(string criadoPorId, string reponsavelPorId, int?statusAtividade, long?atendimentoId, DateTime?previsaoDeExecucao, string titulo, string descricao, long?pessoaFisicaId, long?pessoaJuridicaId, string iniciadoPorUserId) { var atividade = new Atividade(); if (string.IsNullOrEmpty(criadoPorId)) { var usuarioAdm = _servicoUsuario.ObterPorEmail("*****@*****.**"); if (usuarioAdm != null) { criadoPorId = 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); } } /// Foi alterado esse trecho, pois o valor de atividadeTipo é Fixo, e estamos buscando performance nesse momento- 17/01/2019 Thiago H. Din //var atividadeTipo = _servicoAtividadeTipo.BuscarPorNome("Ligação"); //if (atividadeTipo == null) //{ // atividade.ValidationResult.Add(new ValidationError("AtividadaTipo com nome (Ligação) não cadastrada")); // return atividade; //} var atividadeTipoId = Convert.ToInt32(AtividadeTipoEnum.Ligacao); if (!statusAtividade.HasValue) { var statusAtividadePadraoLigacao = _servicoStatusAtividade.ObterStatusAtividadePadraoParaLigacao(); if (statusAtividadePadraoLigacao == null) { atividade.ValidationResult.Add( new ValidationError("StatusAtividade Padrão para Ligação não cadastrada.")); return(atividade); } statusAtividade = statusAtividadePadraoLigacao.Id; } //int? canalId = null; //var canal = _canalServico.ObterCanalTelefone(); //if (canal.ValidationResult.IsValid) // canalId = canal.Id; var canalId = Convert.ToInt32(CanalEnum.Telefone); atividade = new Atividade(criadoPorId, statusAtividade.Value, atividadeTipoId, "Ligação Receptiva", pessoaFisicaId, pessoaJuridicaId, null, null, null, atendimentoId, null, null, criadoPorId, null, previsaoDeExecucao, canalId, iniciadoPorUserId); _repositorio.Adicionar(atividade); 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); }