Exemplo n.º 1
0
        public async Task Correio()
        {
            try
            {
                var _dadosform = Request.Form;

                var _de   = _dadosform["de"];
                var _para = _dadosform["para"];
                //var _paracnxid = _dadosform["cnxpara"];
                //var _decnxid = _dadosform["cnxde"];
                var _mens = _dadosform["mens"];

                //var _de = _dadosform["de"];
                //COM VISITANTE
                //var _de = User.Identity.IsAuthenticated ? User.Identity.Name.Replace("@", "").Replace(".", "") : "visitante";
                //var _de = User.Identity.Name.Replace("@", "").Replace(".", "");
                //var _email_de = _dadosform["emailde"];
                //var _avatar_de = _dadosform["avatarde"];
                //var _decnxid = _dadosform["cnxde"];
                //var _canal = _dadosform["canal"];

                //------------
                // SIGNALR
                //------------
                //await _hubNotificacoes.Clients.Client(_canal).SendAsync("enviarmens", _de, _para, _mens);
                //await _hubNotificacoes
                //    .Clients
                //    .Client(_paracnxid)
                //    .SendAsync("enviarmens", _de, _para, _mens);


                var _usulogado =
                    await _context.Users
                    .FirstOrDefaultAsync(x => x.Email == User.Identity.Name);

                //------------
                // SALVA TUDO
                //------------
                var _pegaCNXID =
                    _context.tblUsuSalaVIPs
                    .Where(x => x.UsuarioAppId == _usulogado.Id)
                    .OrderByDescending(x => x.DTHR)
                    .FirstOrDefault();

                var _pegaCNXID_PARA =
                    _context.tblUsuSalaVIPs
                    .Where(x => x.UsuarioAppId == _para)
                    .OrderByDescending(x => x.DTHR)
                    .FirstOrDefault();

                //if (_pegaCNXID != null)
                //{
                //    if (_pegaCNXID.Status == "ENTROU")
                //        _paracnxid = _pegaCNXID.CnxId;
                //}
                //if (_pegaCNXID_PARA != null)
                //{
                //    if (_pegaCNXID_PARA.Status == "ENTROU")
                //        _paracnxid = _pegaCNXID.CnxId;
                //}

                // LOG NO BANCO
                var _novamens = new tblHubConversa()
                {
                    De        = _de,
                    DeCnxId   = _pegaCNXID != null ? (_pegaCNXID.Status == "ENTROU" ? _pegaCNXID.CnxId : "") : "",
                    Para      = _para,
                    ParaCnxId = _pegaCNXID_PARA != null ? (_pegaCNXID_PARA.Status == "ENTROU" ? _pegaCNXID_PARA.CnxId : "") : "",
                    Mensagem  = _mens,
                    Lida      = false
                };
                _context.tblHubConversas.Add(_novamens);
                await _context.SaveChangesAsync();

                //await _hubNotificacoes
                //    .Clients.All
                //    .SendAsync("enviarmens", _novamens.DeCnxId, _de, _para, _mens);

                var conteudotraduzido = await VerificadoresRetornos.TranslateText(_mens, "en|pt-br");

                await _hubMensagens
                .Clients
                .Client(_novamens.ParaCnxId)
                .SendAsync("correio", _de, _para, conteudotraduzido, _novamens.DeCnxId, _novamens.ParaCnxId);
            }
            catch (System.Exception)
            {
                //return new { mens = "Não foi possível concluir sua solicitação." };
            }

            //await _hubContext.Clients.All.SendAsync("Notify", $"Página carregada");
            //return new { mens = "ok" };
        }