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 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); }
//protected ICollection<StatusAtividade> ObterStatusAtividades(int canal, string sentido) //{ // var listaStatus = new List<StatusAtividade>(); // if (string.IsNullOrEmpty(sentido)) // sentido = "s"; //return listaStatus; // sentido = sentido.ToLower(); // switch (canal) // { // case (int) CanalValueObjects.Telefone: // listaStatus = sentido == "s" // ? _statusAtividadeServico.ObterStatusAtividadeLigacaoAtiva().ToList() // : _statusAtividadeServico.ObterStatusAtividadeLigacaoReceptiva().ToList(); // break; // case (int) CanalValueObjects.Email: // listaStatus = sentido == "s" // ? _statusAtividadeServico.ObterStatusAtividadeEmail().ToList() // : _statusAtividadeServico.ObterStatusAtividadeEmailRecebido().ToList(); // break; // case (int) CanalValueObjects.Chat: // // Vai ser preciso implementar o Chat // break; // } // return listaStatus; //} public AtendimentoFormViewModel Atualizar(AtendimentoFormViewModel model) { switch (model.CanalId) { case (int)CanalValueObjects.Telefone: break; case (int)CanalValueObjects.Email: model.Email.Sentido = model.Sentido; model.Email.UsuarioId = model.UsuarioId; model.Email.StatusId = model.StatusId; model.Email = TratarEmail(model.Email); if (!model.Email.ValidationResult.IsValid) { model.ValidationResult = model.Email.ValidationResult; } model.AtividadeId = model.Email.AtividadeId; break; case (int)CanalValueObjects.Chat: break; default: model.ValidationResult.Add(new ValidationError("Canal informado inválido!")); return(model); } if (!model.ValidationResult.IsValid) { return(model); } var statusAtendimentos = _statusAtividadeServico.ObterPorId((int)model.StatusId); //Somente atualiza os dados de Atendimento if (!model.AtendimentoId.HasValue) { return(model); } var atendimento = _atendimento.ObterPorId((long)model.AtendimentoId); atendimento.MidiasId = model.MidiaId; atendimento.CanalOrigemId = model.CanalId = model.CanalId; if (statusAtendimentos.FinalizaAtendimento) { atendimento.FinalizadoEm = DateTime.Now; atendimento.FinalizadoPorUserId = model.UsuarioId; } if (atendimento.IsValid()) { _atendimento.Atualizar(atendimento); } return(model); }