예제 #1
0
        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);
        }