Example #1
0
        public AtendimentoChatViewModel Carregar(long atividadeId, string usuarioId)
        {
            var viewModel = new AtendimentoChatViewModel();
            var atividade = _atividadeServico.ObterPorId(atividadeId);

            if (atividade == null)
            {
                viewModel.ValidationResult.Add(
                    new ValidationError(string.Format("Nenhuma atividade encontrada com o Id {0}.", atividadeId)));
                return(viewModel);
            }

            var canal = _canalServico.ObterPorNome("CHAT").FirstOrDefault();

            viewModel.AtividadeId      = atividadeId;
            viewModel.PessoaFisicaId   = atividade.PessoasFisicasId;
            viewModel.PessoaJuridicaId = atividade.PessoasJuridicasId;
            viewModel.ListaStatus      = _statusAtividadeServico.ObterPor(canal.Id, "E", null).ToList();
            viewModel.Midias           = new SelectList(_midiaServico.ObterPor(null, canal.Id), "id", "nome");

            if (!atividade.AtendimentoId.HasValue)
            {
                return(viewModel);
            }

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

            viewModel.Protocolo     = atendimento.Protocolo;
            viewModel.AtendimentoId = atendimento.Id;
            var chat = _chatServico.ObterPorAtividadeId(atividadeId);

            if (chat != null)
            {
                viewModel.Mensagens = _chatMensagensServico.ObterMensagensChat(chat.Id);
            }

            return(viewModel);
        }
        public AtendimentoFormViewModel Novo(AtendimentoFormViewModel model)
        {
            switch (model.CanalId)
            {
            case (int)CanalValueObjects.Telefone:
                model.NomeCanal           = "Telefone";
                model.AtendimentoTelefone = true;
                break;

            case (int)CanalValueObjects.Email:
                model.NomeCanal        = "E-mail";
                model.AtendimentoEmail = true;
                break;

            case (int)CanalValueObjects.Chat:
                model.NomeCanal       = "Chat";
                model.AtendimentoChat = true;
                break;

            default:
                model.ValidationResult.Add(new ValidationError("Canal informado inválido!"));
                return(model);
            }

            var atendimento = _atendimento.AdicionarNovoAtendimento(model.CanalId, model.UsuarioId, model.MidiaId);

            if (!atendimento.ValidationResult.IsValid)
            {
                model.ValidationResult = atendimento.ValidationResult;
                return(model);
            }

            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;
            if (atendimento.CanalOrigemId.HasValue)
            {
                model.CanalId = (int)(atendimento.CanalOrigemId);
            }
            model.MidiaId = atendimento.MidiasId;

            return(model);
        }
 public IEnumerable <StatusAtividade> Obter(int canal, string sentido, bool?padrao)
 {
     return(_statusAtividadeServico.ObterPor(canal, sentido, padrao));
 }