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); }
public ChatViewModel AdicionarAtendimento(string userId, string k) { var viewModel = new ChatViewModel(); var statusAtividade = _statusAtividadeServico.ObterStatusAtividadeChat(); var tipoAtividade = _atividadeTipoServico.BuscarPorNome("Chat"); var canal = _canalServico.ObterPorNome("chat"); var atividade = new Atividade(); if (!string.IsNullOrEmpty(k)) { atividade = _atividadeServico.ObterPorId(Convert.ToInt64(k)); } if (atividade.AtendimentoId != null) { var retornoAtendimento = _atendimentoServico.ObterPorId(atividade.AtendimentoId.Value); retornoAtendimento.CanalOrigemId = 4; _atendimentoServico.Atualizar(retornoAtendimento); if (statusAtividade.Any() && tipoAtividade != null) { if (atividade.Id > 0) { atividade.AtendimentoId = retornoAtendimento.Id; _atividadeServico.Atualizar(atividade); } IEnumerable <Cliente> listaCliente = new List <Cliente>(); if (atividade.PessoasJuridicasId.HasValue) { var pj = _pessoaJuridicaServico.ObterPorId(atividade.PessoasJuridicasId.Value); if (pj != null) { atividade.PessoasJuridicasId = pj.Id; _atividadeServico.Atualizar(atividade); listaCliente = _clienteServico.ObterSugestoes(pj.NomeFantasia, pj.Cnpj, null, null); viewModel.Popular(statusAtividade, retornoAtendimento.Protocolo, listaCliente, retornoAtendimento.Id, null, atividade.PessoasJuridicasId.Value, pj.NomeFantasia); } } if (atividade.PessoasFisicasId.HasValue) { var pf = _pessoaFisicaServico.ObterPorId(atividade.PessoasFisicasId.Value); if (pf != null) { atividade.PessoasFisicasId = pf.Id; _atividadeServico.Atualizar(atividade); listaCliente = _clienteServico.ObterSugestoes(pf.Nome, pf.Cpf, null, null); viewModel.Popular(statusAtividade, retornoAtendimento.Protocolo, listaCliente, retornoAtendimento.Id, atividade.PessoasFisicasId.Value, null, pf.Nome); } } else { viewModel.Popular(statusAtividade, retornoAtendimento.Protocolo, listaCliente, retornoAtendimento.Id, null, null, null); } } else { viewModel.ValidationResult.Add( new ValidationError("Não possui StatusAtividade Cadastrado.")); } } else if (statusAtividade.Any() && tipoAtividade != null) { var atendimento = new Atendimento(userId, _atendimentoServico.GerarNumeroProtocolo(DateTime.Now), null, null); var firstOrDefault = canal.FirstOrDefault(); if (firstOrDefault != null) { atendimento.CanalOrigemId = firstOrDefault.Id; } var atendimentoAux = _atendimentoServico.Adicionar(atendimento); if (!atendimentoAux.IsValid) { return(viewModel); } if (atividade.Id > 0) { atividade.AtendimentoId = atendimento.Id; _atividadeServico.Atualizar(atividade); } IEnumerable <Cliente> listaCliente = new List <Cliente>(); if (atividade.PessoasJuridicasId.HasValue) { var pj = _pessoaJuridicaServico.ObterPorId(atividade.PessoasJuridicasId.Value); if (pj != null) { atividade.PessoasJuridicasId = pj.Id; _atividadeServico.Atualizar(atividade); listaCliente = _clienteServico.ObterSugestoes(pj.NomeFantasia, pj.Cnpj, null, null); viewModel.Popular(statusAtividade, atendimento.Protocolo, listaCliente, atendimento.Id, null, atividade.PessoasJuridicasId.Value, pj.NomeFantasia); } } if (atividade.PessoasFisicasId.HasValue) { var pf = _pessoaFisicaServico.ObterPorId(atividade.PessoasFisicasId.Value); if (pf != null) { atividade.PessoasFisicasId = pf.Id; _atividadeServico.Atualizar(atividade); listaCliente = _clienteServico.ObterSugestoes(pf.Nome, pf.Cpf, null, null); viewModel.Popular(statusAtividade, atendimento.Protocolo, listaCliente, atendimento.Id, atividade.PessoasFisicasId.Value, null, pf.Nome); } } else { viewModel.Popular(statusAtividade, atendimento.Protocolo, listaCliente, atendimento.Id, null, null, null); } } else { viewModel.ValidationResult.Add( new ValidationError("Não possui StatusAtividade Cadastrado.")); } return(viewModel); }