//Verificar se o usuario logado pertence a algum noc
        protected void VerificaOperador()
        {
            try
            {
                EventoRedeDataContext objDc = new EventoRedeDataContext();
                evt_chat_operador     Op    = (from o in objDc.evt_chat_operador
                                               where o.operador.Equals(Page.Request.ServerVariables["REMOTE_USER"].Split(char.Parse("\\"))[1])
                                               select o).FirstOrDefault <evt_chat_operador>();

                if (Op == null)
                {
                    //botar o erro aqui
                    string vstrScript = string.Empty;
                    //montando o script
                    vstrScript = "<script language='javascript'> " +
                                 "alert('O Usuário :" + Page.Request.ServerVariables["REMOTE_USER"].Split(char.Parse("\\"))[1] + "' nao esta cadastrado como operador.);history.go(-1);" +
                                 " <|script> ".ToString().Replace("|", "/");

                    Page.ClientScript.RegisterStartupScript(Page.GetType(), "Mensagem", vstrScript);
                }
                else
                {
                    ViewState.Add("OP", Op.operador);

                    //chamar o carregamento da pagina aqui
                    CarregaGrids();
                }
            }
            catch (Exception ex)
            {
                this.lblErro.Text = ex.Message;
            }
        }
 public void IniciaAtendimento(string strUsuario, int intNoc)
 {
     using (
         EventoRedeDataContext db = new EventoRedeDataContext())
     {
         db.EVT_IniciaAtendimento(strUsuario, intNoc);
     }
 }
 //Painel Atendimento Pendente
 protected System.Collections.Generic.List <EVT_ConsultaPendenciaNocOperadorResultado> CarregaPainelAtendimentoPendente(string operador)
 {
     try
     {
         EventoRedeDataContext objDc = new EventoRedeDataContext();
         return(objDc.EVT_ConsultaPendenciaNocOperador(operador).OrderBy(f => f.dt_inicio).ToList());
     }
     catch { return(null); }
 }
 //Painel Meus Atendimentos
 protected System.Collections.Generic.List <com.sandigital.sharepoint.dal.PainelOperador> CarregaPainelMeusAtendimentos(string operador)
 {
     try
     {
         EventoRedeDataContext objDc = new EventoRedeDataContext();
         return(objDc.EVT_ConsultaPainelOperador(operador).OrderBy(f => f.Status).OrderByDescending(f => f.dt_inicio).ToList <com.sandigital.sharepoint.dal.PainelOperador>());
     }
     catch { return(null); }
 }
 //Painel Status Noc
 protected System.Collections.Generic.List <evt_chat_noc_status> CarregaStatusNoc()
 {
     try
     {
         EventoRedeDataContext objDc = new EventoRedeDataContext();
         return(objDc.evt_chat_noc_status.ToList());
     }
     catch { return(null); }
 }
 protected void CarregaGridEventoDetalhe(DevExpress.Web.ASPxGridView.ASPxGridView objGrid, string strUsuario, int intComunidade, string strFiltro)
 {
     try
     {
         EventoRedeDataContext objDc = new EventoRedeDataContext();
         objGrid.DataSource = objDc.EVT_ConsultaPainelOperador("").ToList();
         objGrid.DataBind();
     }
     catch { }
 }
 protected void CarregaGrid(ASPxGridView objGrid, string strUsuario)
 {
     try
     {
         EventoRedeDataContext db = new EventoRedeDataContext();
         objGrid.DataSource = db.EVT_ConsultaPainelUsuario(strUsuario);
         objGrid.DataBind();
     }
     catch { }
 }
            public static void ProcessaLoginOperador(string strLogin)
            {
                EventoRedeDataContext objDs = new EventoRedeDataContext();


                foreach (evt_chat_operador o in objDs.evt_chat_operador.Where(f => f.operador.Equals(strLogin)))
                {
                    o.status = 1;
                    objDs.SubmitChanges();
                }
            }
        public void BuscaTitulo(System.Web.UI.WebControls.Label lblNoc, System.Web.UI.WebControls.Label lblUsuario, string strAtendimento)
        {
            EventoRedeDataContext db = new EventoRedeDataContext();

            var atendimentos = (from a in db.evt_chat_atendimento
                                join n in db.evt_chat_noc on a.id_noc equals n.id_noc
                                where a.id_atendimento == Convert.ToInt32(strAtendimento)
                                select new { a, n.descricao }).FirstOrDefault();

            lblNoc.Text     = atendimentos.descricao;
            lblUsuario.Text = ((atendimentos.a.Usuario != null) ? atendimentos.a.Usuario : "Pendente");
        }
        public bool BuscaFinalizado(string intAtendimento)
        {
            EventoRedeDataContext db = new EventoRedeDataContext();
            DateTime dt_fim          = DateTime.MinValue;

            var atendimentos = (from a in db.evt_chat_atendimento
                                where a.id_atendimento == Convert.ToInt32(intAtendimento)
                                select a);

            foreach (var atendimento in atendimentos)
            {
                dt_fim = (atendimento.dt_fim == null ? DateTime.MinValue : (DateTime)atendimento.dt_fim);
            }

            return(dt_fim != DateTime.MinValue);
        }
        protected int BuscaAtendimento(string intNoc, string strUsuario)
        {
            EventoRedeDataContext db = new EventoRedeDataContext();
            int intAtendimento       = 0;

            var atendimentos = (from a in db.evt_chat_atendimento
                                where a.id_noc == Convert.ToInt32(intNoc) && a.Usuario == strUsuario
                                select a);

            foreach (var atendimento in atendimentos)
            {
                intAtendimento = atendimento.id_atendimento;
            }

            return(intAtendimento);
        }
        public List <evt_chat_msg> BuscaMensagem(string strAtendimento)
        {
            EventoRedeDataContext objMsg = new EventoRedeDataContext();

            var messages = (from m in objMsg.evt_chat_msg
                            where m.id_atendimento == Convert.ToInt32(strAtendimento)
                            orderby m.data ascending
                            select m);

            List <evt_chat_msg> objSaida = new List <evt_chat_msg>();

            objSaida = messages.ToList <evt_chat_msg>();

            objMsg.Dispose();

            return(objSaida);
        }
        protected void BuscaStatusOperador(string operador)
        {
            try
            {
                //Declare ASPxGridView
                HiddenField HField = this.FindControl("HField") as HiddenField;

                int intStatus = 0;

                EventoRedeDataContext objDc = new EventoRedeDataContext();

                var operadorStatus = from o in objDc.evt_chat_operador
                                     where o.operador.Equals(operador)
                                     select o;

                foreach (evt_chat_operador o in operadorStatus)
                {
                    intStatus = (int)o.status;
                }



                DevExpress.Web.ASPxEditors.ASPxButton objBtn = this.FindControl("btnStatusOperador") as DevExpress.Web.ASPxEditors.ASPxButton;

                switch (intStatus)
                {
                case (0):
                {
                    objBtn.Text = "Offline";
                    ViewState["StatusOperador"] = "Online";
                    break;
                }

                default:
                {
                    objBtn.Text = "Online";
                    ViewState["StatusOperador"] = "Offline";
                    break;
                }
                }

                HField.Value = intStatus.ToString();
            }
            catch (Exception ex) { this.lblErro.Text = ex.Message; }
        }
        public void CarregaCombo(DropDownList ddlNoc)
        {
            using (
                EventoRedeDataContext db = new EventoRedeDataContext())
            {
                var noc = (from m in db.evt_chat_noc
                           where m.ativo
                           select m);

                if (noc != null)
                {
                    ddlNoc.DataTextField  = "descricao";
                    ddlNoc.DataValueField = "id_noc";
                    ddlNoc.DataSource     = noc;
                    ddlNoc.DataBind();
                }
                else
                {
                }
            }
        }
        protected void btnSelecionar_Click(object sender, EventArgs e)
        {
            string srtUsuario = "NoC";

            //alterado por Rodrigo 03/09 - Mudanças Chat.
            //verifica se ha algum operador online, caso contrário, redireciona para formulário de mensagens
            EventoRedeDataContext objDs = new EventoRedeDataContext();

            if (!(objDs.evt_chat_noc_status_detalhe.Where(f => f.id_noc.Equals(Convert.ToInt32(ddlNoc.SelectedValue))).Count() > 0))//não ha nenhum operador do Noc selecionado online.
            {
                //monta o script com o redirecionamento
                System.Text.StringBuilder strScript = new System.Text.StringBuilder();
                strScript.AppendLine("<script language=\"javascript\" > ");
                strScript.AppendFormat(" Redireciona('{0}/{1}/formularioChat.aspx');", SPContext.Current.Web.Url, strBibliotecaChat);
                strScript.AppendLine(@"</script>");
                Page.ClientScript.RegisterStartupScript(this.GetType(), "RedirecionaPaginaNovaAtendimento", strScript.ToString());
                return;
            }


            IniciaAtendimento(srtUsuario, Convert.ToInt32(ddlNoc.SelectedValue));
            //TODO:Passar isto para variável da webpart ou para uma classe de configuração global.
            string popupChatUrl = string.Format("{0}/{1}/popupUsuario.aspx", SPContext.Current.Web.Url, strBibliotecaChat);

            string painelUsuarioUrl = string.Format("{0}/{1}/PainelUsuario.aspx", SPContext.Current.Web.Url, strBibliotecaChat);

            int intAtendimento = BuscaAtendimento(ddlNoc.SelectedValue, srtUsuario);

            string vstrScript = string.Empty;

            //montando o script (Hugo Thomaz)
            vstrScript = "<script language='javascript'> " +
                         "if (ShowWindow('" + popupChatUrl + "','" + intAtendimento + "'))" +
                         "{" +
                         " Redireciona('" + painelUsuarioUrl + "');" +
                         "} " +
                         " <|script> ".ToString().Replace("|", "/");

            Page.ClientScript.RegisterStartupScript(Page.GetType(), "Mensagem", vstrScript);
        }
        protected void PassaParaMeusAtendimentosOperador(string id_atendimento, string operador)
        {
            try
            {
                EventoRedeDataContext objDc = new EventoRedeDataContext();

                var meusAtendimentos = from o in objDc.evt_chat_atendimento
                                       where o.id_atendimento.Equals(id_atendimento)
                                       select o;

                foreach (evt_chat_atendimento o in meusAtendimentos)
                {
                    o.Operador = operador;
                }

                objDc.SubmitChanges();
            }
            catch { }
            finally
            {
                CarregaGrids();
            }
        }
        protected void SetaStatusOperador(string operador, StatusOperador s)
        {
            try
            {
                EventoRedeDataContext objDc = new EventoRedeDataContext();

                var operadorStatus = from o in objDc.evt_chat_operador
                                     where o.operador.Equals(operador)
                                     select o;

                foreach (evt_chat_operador o in operadorStatus)
                {
                    o.status = (int)s;
                }

                objDc.SubmitChanges();

                BuscaStatusOperador(operador);
            }
            catch (Exception ex)
            {
                this.lblErro.Text = ex.Message;
            }
        }
            public static string GetConnectionString()
            {
                EventoRedeDataContext objDs = new EventoRedeDataContext();

                return(objDs.Connection.ConnectionString);
            }
        public void FinalizarAtendimento(string strAtendimento, string strUsuario)
        {
            EventoRedeDataContext db = new EventoRedeDataContext();

            db.EVT_FinalizarAtendimento(Convert.ToInt32(strAtendimento), strUsuario);
        }
        public void InserirMensagem(string strAtendimento, string text, string srtUsuario)
        {
            EventoRedeDataContext db = new EventoRedeDataContext();

            db.EVT_InserirMsg(Convert.ToInt32(strAtendimento), srtUsuario, text);
        }
        protected void ReabirAtendimento(string strAtendimento, string strUsuario)
        {
            EventoRedeDataContext db = new EventoRedeDataContext();

            db.EVT_ReabrirAtendimento(Convert.ToInt32(strAtendimento), strUsuario);
        }