Exemple #1
0
        public MenuResponse Carregar(int MenuId, int IdiomaId, bool FiltrarPrivacidade = true)
        {
            MenuResponse resposta = new MenuResponse();
            Menu menu;

            try
            {
                using (ConexaoDB objetoConexao = new ConexaoDB())
                {
                    objetoConexao.AdicionarParametro("@MenuId", SqlDbType.Int, MenuId);
                    objetoConexao.AdicionarParametro("@IdiomaId", SqlDbType.Int, IdiomaId);
                    objetoConexao.AdicionarParametro("@FiltrarPrivacidade", SqlDbType.Bit, FiltrarPrivacidade);
                    using (DataTable dt = objetoConexao.RetornarTabela("USP_SEL_Menu"))
                    {
                        if (dt != null && dt.Rows.Count > 0)
                        {
                            DataRow dr = dt.Rows[0];
                            menu = new Menu();
                            CarregarDTO(menu, dr);

                            resposta.Menu = menu;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                //logBLL.Error(ex);
                throw;
            }

            return resposta;
        }
Exemple #2
0
        public MenuResponse Excluir(int MenuId)
        {
            MenuResponse resposta = new MenuResponse();
            try
            {
                using (ConexaoDB objetoConexao = new ConexaoDB())
                {
                    objetoConexao.AdicionarParametro("@MenuId", SqlDbType.Int, MenuId);
                    using (DataTable dt = objetoConexao.RetornarTabela("USP_DEL_Menu"))
                    {
                        if (dt != null && dt.Rows.Count > 0)
                        {
                            resposta.Resposta.Erro = (bool)dt.Rows[0]["indErro"];
                            resposta.Resposta.Mensagem = (string)dt.Rows[0]["msgErro"];
                            resposta.Menu = null;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                resposta.Resposta.Erro = true;
                resposta.Resposta.Mensagem = ex.Message;

                //logBLL.Error(ex);
            }
            return resposta;
        }
Exemple #3
0
        public MenuResponse Gravar(Menu Menu, Menu MenuOld, List<MenuIdiomaExcecao> Extras, List<MenuIdiomaExcecao> ExtrasOld, string ListaUsuarioGrupo, string ListaUsuario)
        {
            MenuResponse resposta = new MenuResponse();
            try
            {
                using (ConexaoDB objetoConexao = new ConexaoDB())
                {
                    objetoConexao.AdicionarParametro("@MenuId", SqlDbType.Int, Menu.MenuId);
                    objetoConexao.AdicionarParametro("@MenuPaiId", SqlDbType.Int, Menu.MenuPaiId);
                    objetoConexao.AdicionarParametro("@SiteId", SqlDbType.Int, Menu.SiteId);
                    objetoConexao.AdicionarParametro("@MenuTipoId", SqlDbType.Int, Menu.MenuTipoId);
                    objetoConexao.AdicionarParametro("@MenuTipoAcaoId", SqlDbType.Int, Menu.MenuTipoAcaoId);
                    objetoConexao.AdicionarParametro("@PublicacaoId", SqlDbType.Int, Menu.PublicacaoId);
                    objetoConexao.AdicionarParametro("@LinkURL", SqlDbType.VarChar, Menu.LinkURL);
                    objetoConexao.AdicionarParametro("@ImageURL", SqlDbType.VarChar, Menu.ImageURL);
                    objetoConexao.AdicionarParametro("@TargetId", SqlDbType.VarChar, Menu.TargetId);
                    objetoConexao.AdicionarParametro("@Privado", SqlDbType.Bit, Menu.Complemento.Privado);
                    objetoConexao.AdicionarParametro("@ListaUsuarioGrupo", SqlDbType.VarChar, ListaUsuarioGrupo);
                    objetoConexao.AdicionarParametro("@ListaUsuario", SqlDbType.VarChar, ListaUsuario);
                    using (DataTable dt = objetoConexao.RetornarTabela("USP_INS_Menu"))
                    {
                        if (dt != null && dt.Rows.Count > 0)
                        {
                            resposta.Resposta.Erro = false;// (bool)dt.Rows[0]["indErro"];
                            resposta.Resposta.Mensagem = "";// (string)dt.Rows[0]["msgErro"];
                            resposta.Menu = Menu;
                            resposta.Menu.MenuId = (int)dt.Rows[0]["MenuId"];
                        }
                    }
                }

                //using (ConexaoDB objetoConexao = new ConexaoDB())
                //{
                //    objetoConexao.AdicionarParametro("@PublicacaoId", SqlDbType.Int, resposta.Publicacao.PublicacaoId);
                //    objetoConexao.AdicionarParametro("@Privado", SqlDbType.Bit, false);
                //    using (DataTable dt = objetoConexao.RetornarTabela("USP_INS_PublicacaoRestricao"))
                //    {
                //        if (dt != null && dt.Rows.Count > 0)
                //        {
                //            resposta.Resposta.Erro = false;// (bool)dt.Rows[0]["indErro"];
                //            resposta.Resposta.Mensagem = "";// (string)dt.Rows[0]["msgErro"];
                //            resposta.Publicacao = Publicacao;
                //            //resposta.Publicacao.PublicacaoId = (int)dt.Rows[0]["PublicacaoRestricaoId"];
                //        }
                //    }
                //}

                using (ConexaoDB objetoConexao = new ConexaoDB())
                {

                    objetoConexao.AdicionarParametro("@MenuIdiomaExcecaoId", SqlDbType.Int, 0);
                    objetoConexao.AdicionarParametro("@MenuId", SqlDbType.Int, resposta.Menu.MenuId);
                    objetoConexao.AdicionarParametro("@IdiomaId", SqlDbType.Int, Menu.Detalhe.IdiomaId);
                    objetoConexao.AdicionarParametro("@Rotulo", SqlDbType.VarChar, Menu.Detalhe.Rotulo);
                    using (DataTable dt = objetoConexao.RetornarTabela("USP_INS_MenuIdiomaExcecao"))
                    {
                        if (dt != null && dt.Rows.Count > 0)
                        {
                            resposta.Resposta.Erro = false;// (bool)dt.Rows[0]["indErro"];
                            resposta.Resposta.Mensagem = "";// (string)dt.Rows[0]["msgErro"];
                            resposta.Menu = Menu;
                            //resposta.Publicacao.PublicacaoId = (int)dt.Rows[0]["PublicacaoRestricaoId"];
                        }
                    }
                }

                foreach (var Extra in Extras)
                {
                    using (ConexaoDB objetoConexao = new ConexaoDB())
                    {

                        objetoConexao.AdicionarParametro("@MenuIdiomaExcecaoId", SqlDbType.Int, 0);
                        objetoConexao.AdicionarParametro("@MenuId", SqlDbType.Int, resposta.Menu.MenuId);
                        objetoConexao.AdicionarParametro("@IdiomaId", SqlDbType.Int, Extra.IdiomaId);
                        objetoConexao.AdicionarParametro("@Rotulo", SqlDbType.VarChar, Extra.Rotulo);
                        using (DataTable dt = objetoConexao.RetornarTabela("USP_INS_MenuIdiomaExcecao"))
                        {
                            if (dt != null && dt.Rows.Count > 0)
                            {
                                resposta.Resposta.Erro = false;// (bool)dt.Rows[0]["indErro"];
                                resposta.Resposta.Mensagem = "";// (string)dt.Rows[0]["msgErro"];
                                resposta.Menu = Menu;
                                //resposta.Publicacao.PublicacaoId = (int)dt.Rows[0]["PublicacaoRestricaoId"];
                            }
                        }
                    }
                }

            }
            catch (Exception ex)
            {
                resposta.Resposta.Erro = true;
                resposta.Resposta.Mensagem = ex.Message;

                //logBLL.Error(ex);
            }
            return resposta;
        }
        public ActionResult GravarMenu(string Menu, string MenuOld, string ListaUsuarioGrupo, string ListaUsuario)
        {
            var form = (JObject)JsonConvert.DeserializeObject(Menu);

            Menu _anterior = new Menu();
            Menu _novo = new Menu();

            _novo.MenuId = (int)Util.GetValue<int>(form, "MenuId");
            _novo.MenuPaiId = (int?)Util.GetValue<int?>(form, "MenuPaiId");
            _novo.SiteId = GetCurrentSite();
            _novo.MenuTipoAcaoId = (int)Util.GetValue<int>(form, "MenuTipoAcao"); ;
            _novo.MenuTipoId = (int)Util.GetValue<int>(form, "MenuTipo");
            _novo.TargetId = (int)Util.GetValue<int>(form, "Target");
            _novo.LinkURL = (string)Util.GetValue<string>(form, "LinkURL");
            _novo.Detalhe.IdiomaId = (int)Util.IDIOMA.PORTUGUES;
            _novo.Detalhe.Rotulo = (string)Util.GetValue<string>(form, "Rotulo");

            _novo.Complemento.Privado = Convert.ToBoolean((int?)Util.GetValue<int?>(form, "Privado"));

            #region --> Validação
            MenuResponse resp = new MenuResponse();
            if (string.IsNullOrEmpty(_novo.Detalhe.Rotulo) || string.IsNullOrWhiteSpace(_novo.Detalhe.Rotulo))
            {
                resp.Resposta.Erro = true;
                resp.Resposta.Mensagem += "- Informar um Rótulo";
            }
            if (_novo.MenuTipoAcaoId == null || _novo.MenuTipoAcaoId == 0)
            {
                resp.Resposta.Erro = true;
                if (resp.Resposta.Mensagem.Length > 0) resp.Resposta.Mensagem += "<br />";
                resp.Resposta.Mensagem += "- Selecionar o Tipo de Ação";
            }
            if (_novo.TargetId == null || _novo.TargetId == 0)
            {
                resp.Resposta.Erro = true;
                if (resp.Resposta.Mensagem.Length > 0) resp.Resposta.Mensagem += "<br />";
                resp.Resposta.Mensagem += "- Selecionar o Target";
            }
            if (_novo.MenuTipoAcaoId == 2) // 2-Conteúdo = Link ou Publicacao!
            {
                if (string.IsNullOrEmpty(_novo.LinkURL) || string.IsNullOrEmpty(_novo.LinkURL.Trim()))
                {
                    resp.Resposta.Erro = true;
                    if (resp.Resposta.Mensagem.Length > 0) resp.Resposta.Mensagem += "<br />";
                    resp.Resposta.Mensagem += "- Informar o link";
                }
            }
            if (_novo.Complemento.Privado == true && string.IsNullOrEmpty(ListaUsuarioGrupo) && string.IsNullOrEmpty(ListaUsuario))
            {
                resp.Resposta.Erro = true;
                if (resp.Resposta.Mensagem.Length > 0) resp.Resposta.Mensagem += "<br />";
                resp.Resposta.Mensagem += "- Informar pelo menos um Usuário ou Grupo para publicação privada.";
            }
            if (resp.Resposta.Erro)
            {
                return Json(resp, JsonRequestBehavior.AllowGet);
            }
            #endregion

            #region --> PublicacaoId
            if (_novo.MenuTipoAcaoId == 2) // 2-Conteúdo = Link ou Publicacao!
            {
                var _index = -1;
                int _publicacaoID = 0;

                if (_novo.LinkURL.IndexOf("/Eventos/") > -1)
                {
                    _index = _novo.LinkURL.IndexOf("/Eventos/");
                    var _posIniID = _index + ("/Eventos/").Length;
                    var _posFimID = _novo.LinkURL.IndexOf("/", (_index + ("/Eventos/").Length));
                    int.TryParse(_novo.LinkURL.Substring(_posIniID, _posFimID - _posIniID), out _publicacaoID);
                }
                else if (_novo.LinkURL.IndexOf("/Noticias/") > -1)
                {
                    _index = _novo.LinkURL.IndexOf("/Noticias/");
                    var _posIniID = _index + ("/Noticias/").Length;
                    var _posFimID = _novo.LinkURL.IndexOf("/", (_index + ("/Noticias/").Length));
                    int.TryParse(_novo.LinkURL.Substring(_posIniID, _posFimID - _posIniID), out _publicacaoID);
                }
                else if (_novo.LinkURL.IndexOf("/Materia/") > -1)
                {
                    _index = _novo.LinkURL.IndexOf("/Materia/");
                    var _posIniID = _index + ("/Materia/").Length;
                    var _posFimID = _novo.LinkURL.IndexOf("/", (_index + ("/Materia/").Length));
                    int.TryParse(_novo.LinkURL.Substring(_posIniID, _posFimID - _posIniID), out _publicacaoID);
                }
                else if (_novo.LinkURL.IndexOf("/Interna/") > -1)
                {
                    _index = _novo.LinkURL.IndexOf("/Interna/");
                    var _posIniID = _index + ("/Interna/").Length;
                    var _posFimID = _novo.LinkURL.IndexOf("/", (_index + ("/Interna/").Length));
                    int.TryParse(_novo.LinkURL.Substring(_posIniID, _posFimID - _posIniID), out _publicacaoID);
                }

                _novo.PublicacaoId = _publicacaoID == 0 ? new Nullable<int>(): _publicacaoID;

            }
            #endregion

            List<MenuIdiomaExcecao> Extras = new List<MenuIdiomaExcecao>();
            List<MenuIdiomaExcecao> ExtrasOld = new List<MenuIdiomaExcecao>();

            #region -> Idiomas Extras
            //-- EN
            MenuIdiomaExcecao ExtraEN = new MenuIdiomaExcecao();
            ExtraEN.IdiomaId = (int)Util.IDIOMA.ENGLISH;
            ExtraEN.Rotulo = (string)Util.GetValue<string>(form, "RotuloEN");
            Extras.Add(ExtraEN);
            //-- ES
            MenuIdiomaExcecao ExtraES = new MenuIdiomaExcecao();
            ExtraES.IdiomaId = (int)Util.IDIOMA.ESPANHOL;
            ExtraES.Rotulo = (string)Util.GetValue<string>(form, "RotuloES");
            Extras.Add(ExtraES);
            //-- FR
            MenuIdiomaExcecao ExtraFR = new MenuIdiomaExcecao();
            ExtraFR.IdiomaId = (int)Util.IDIOMA.FRANCES;
            ExtraFR.Rotulo = (string)Util.GetValue<string>(form, "RotuloFR");
            Extras.Add(ExtraFR);
            #endregion

            if (MenuOld != null && MenuOld != "null")
            {
                var formOld = (JObject)JsonConvert.DeserializeObject(MenuOld);

                _anterior.MenuId = (int)Util.GetValue<int>(formOld, "MenuId");
                _anterior.MenuPaiId = (int)Util.GetValue<int>(formOld, "MenuPaiId");
                _anterior.MenuTipoId = (int)Util.GetValue<int>(formOld, "MenuTipo");
                _anterior.LinkURL = (string)Util.GetValue<string>(formOld, "LinkURL");
                _anterior.Detalhe.IdiomaId = (int)Util.IDIOMA.PORTUGUES;
                _anterior.Detalhe.Rotulo = (string)Util.GetValue<string>(formOld, "Rotulo");

                #region -> Idiomas Extras (Dados anterior a alteração)
                //-- EN
                MenuIdiomaExcecao ExtraENOld = new MenuIdiomaExcecao();
                ExtraENOld.IdiomaId = (int)Util.IDIOMA.ENGLISH;
                ExtraENOld.Rotulo = (string)Util.GetValue<string>(formOld, "RotuloEN");
                ExtrasOld.Add(ExtraENOld);
                //-- ES
                MenuIdiomaExcecao ExtraESOld = new MenuIdiomaExcecao();
                ExtraESOld.IdiomaId = (int)Util.IDIOMA.ESPANHOL;
                ExtraESOld.Rotulo = (string)Util.GetValue<string>(formOld, "RotuloES");
                ExtrasOld.Add(ExtraESOld);
                //-- FR
                MenuIdiomaExcecao ExtraFROld = new MenuIdiomaExcecao();
                ExtraFROld.IdiomaId = (int)Util.IDIOMA.FRANCES;
                ExtraFROld.Rotulo = (string)Util.GetValue<string>(formOld, "RotuloFR");
                ExtrasOld.Add(ExtraFROld);
                #endregion
            }

            return Json(new MenuDAL().Gravar(_novo, _anterior, Extras, ExtrasOld, ListaUsuarioGrupo, ListaUsuario), JsonRequestBehavior.AllowGet);
        }