Exemplo n.º 1
0
        protected void CarregarAtividadeChat(AtividadeNewViewModel model, Atividade atividade, string userId)
        {
            var where = new PredicateGroup {
                Operator = GroupOperator.And, Predicates = new List <IPredicate>()
            };
            where.Predicates.Add(Predicates.Field <Chat>(f => f.AtividadeId, Operator.Eq, atividade.Id));
            var chatAtividade = _chatServico.ObterPor(where);

            if (!chatAtividade.Any())
            {
                return;
            }

            var chat = _chatServico.ObterPorId(chatAtividade.FirstOrDefault().Id);

            if (chat.Id <= 0)
            {
                return;
            }
            model.Chat = new ChatViewModel(atividade.Id, chat.Id, atividade.AtendimentoId,
                                           atividade.PessoasJuridicasId, atividade.PessoasFisicasId, atividade.StatusAtividadeId);
            model.listaStatusAtividade = _statusAtividadeServico.ObterStatusAtividadeChat();

            if (atividade.AtendimentoId != null)
            {
                return;
            }
            var canal       = _canalServico.ObterPorNome("CHAT");
            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);
        }
Exemplo n.º 2
0
        public AtendimentoFormViewModel CarregarChat(long?chatId, long?atividadeId)
        {
            Chat chat = null;

            if (!chatId.HasValue)
            {
                if (atividadeId.HasValue)
                {
                    chat = _chatServico.ObterPorAtividadeId((long)atividadeId);

                    if (chat != null)
                    {
                        chatId = chat.Id;
                    }
                }
            }

            var model = new AtendimentoFormViewModel
            {
                CanalId         = (int)CanalValueObjects.Chat,
                NomeCanal       = "Chat",
                ChatId          = chatId,
                AtendimentoChat = true
            };

            if (chat == null)
            {
                chat = _chatServico.ObterPorId((long)chatId);
            }

            if (chat == null)
            {
                model.ValidationResult.Add(new ValidationError("Nenhum Chat encontrado com o Id Informado"));
                return(model);
            }

            var atividade = _atividadeServico.ObterPorId(chat.AtividadeId);

            if (atividade == null)
            {
                model.ValidationResult.Add(
                    new ValidationError("Nenhuma Atividade encontrado com o Id: " + chat.AtividadeId));
                return(model);
            }


            var statusAtividade = _statusAtividadeServico.ObterPorId(atividade.StatusAtividadeId);


            var atendimento = _atendimentoServico.ObterPorId(atividade.AtendimentoId.Value);

            if (atendimento == null)
            {
                model.ValidationResult.Add(
                    new ValidationError("Nenhum Atendimento encontrado com o Id: " + atividade.AtendimentoId));
                return(model);
            }

            var chatSolicitacao = _chatSolicitacaoServico.ObterPorId(chat.ChatSolicitacaoId);

            if (chatSolicitacao != null)
            {
                model.Documento = chatSolicitacao.Documento;
            }

            model.ListaStatus           = _statusAtividadeServico.ObterPor(model.CanalId, model.Sentido ?? "E", null).ToList();
            model.Midias                = new SelectList(_midiaServico.ObterPor(null, model.CanalId), "id", "nome");
            model.Procotolo             = atendimento.Protocolo;
            model.AtendimentoId         = atendimento.Id;
            model.AtividadeId           = atividade.Id;
            model.MidiaId               = atendimento.MidiasId;
            model.PessoaFisicaId        = atividade.PessoasFisicasId;
            model.PessoaJuridicaId      = atividade.PessoasJuridicasId;
            model.AtendimentoFinalizado = atividade.FinalizadoEm.HasValue;
            model.Status                = statusAtividade != null ? statusAtividade.Descricao : null;
            return(model);
        }