public override void OnMessage(string dados) { try { var mensagem = JsonConvert.DeserializeObject <Mensagem>(dados, _settings); if (mensagem.Destinatario == null) { throw new ValidacaoException("Entrada de dados invalida. É necessário informar o Login do destinatário."); } Usuario usuarioDestinatario; usuarioDestinatario = _servicoUsuario.ObterPorLogin(mensagem.Destinatario.Login); if (usuarioDestinatario == null) { throw new ValidacaoException("Destinatário não encontrado."); } var atendimento = _servicoAtendimento.SalvarAtualizarAtendimento(_chaveAcesso, usuarioDestinatario, mensagem.Texto, mensagem.Atendimento); var usuarioRementente = _servicoUsuario.ObterPorChave(_chaveAcesso); EnviarMensagem(usuarioRementente, usuarioDestinatario, atendimento); var objetoRespostaParaRemetente = ObjetoResposta(usuarioDestinatario, atendimento); var responstaParaRemetente = JsonConvert.SerializeObject(objetoRespostaParaRemetente, _settings); Send(responstaParaRemetente); } catch (SessaoException ex) { webSocketClient.Remove(this); RetornarErro(ex); } catch (ValidacaoException ex) { RetornarErro(ex); } catch (Exception ex) { RetornarErro(ex); } }