Beispiel #1
0
        //public class WX_MenuContentList
        //{
        //    public string name { get; set; }
        //    public string type { get; set; }
        //    public string nbdm { get; set; }
        //    public string url { get; set; }
        //    public string dm;
        //    public List<WX_MenuContentListItem> sub_button { get; set; }
        //}
        //public class WX_MenuContentListItem
        //{
        //    public string type { get; set; }
        //    public string name { get; set; }
        //    public string nbdm { get; set; }
        //    public string url { get; set; }
        //}
        public WX_MenuContent Get_WX_PostMenu(out string msg, string PUBLICID)
        {
            msg = string.Empty;
            WX_MenuContent tp_menucontent = new WX_MenuContent();

            DbConnection conn = CyDbConnManager.GetDbConnection("CRMDB");

            try { conn.Open(); }
            catch (Exception e)
            {
                throw new MyDbException(e.Message, true);
            }
            try
            {
                CyQuery query = new CyQuery(conn);
                List <WX_MenuContentList> menucontentlist = new List <WX_MenuContentList>();
                tp_menucontent.button = menucontentlist;
                List <WX_MenuMiddle> menu = new List <WX_MenuMiddle>();
                try
                {
                    string DbSystemName = CyDbSystem.GetDbSystemName(query.Connection);
                    query.SQL.Clear();
                    query.Params.Clear();
                    query.SQL.Add("select NAME,ASKID,DM,TYPE,URL,PUBLICID from WX_MENU where ").Add(CyDbSystem.GetDataLengthFuncName(conn)).Add("(DM)=2 and PUBLICID='" + PUBLICID + "' order by DM");
                    //query.ParamByName("PUBLICID").AsInteger = Convert.ToInt32(PUBLICID);
                    query.Open();
                    while (!query.Eof)
                    {
                        WX_MenuMiddle tp_menu = new WX_MenuMiddle();
                        menu.Add(tp_menu);

                        tp_menu.key      = Convert.ToString(query.FieldByName("ASKID").AsInteger);
                        tp_menu.dm       = query.FieldByName("DM").AsString;
                        tp_menu.type     = query.FieldByName("TYPE").AsInteger;
                        tp_menu.url      = query.FieldByName("URL").AsString;
                        tp_menu.PUBLICID = query.FieldByName("PUBLICID").AsInteger;
                        if (DbSystemName == "ORACLE")
                        {
                            tp_menu.name = query.FieldByName("NAME").AsString;
                        }
                        else if (DbSystemName == "SYBASE")
                        {
                            tp_menu.name = query.FieldByName("NAME").GetChineseString(200);
                        }
                        query.Next();
                    }
                    query.Close();
                    query.Params.Clear();
                    for (int i = 0; i < menu.Count; i++)
                    {
                        WX_MenuContentList tp_menucontentlist = new WX_MenuContentList();
                        menucontentlist.Add(tp_menucontentlist);
                        tp_menucontentlist.name = menu[i].name;
                        if (menu[i].type == 0)
                        {
                            List <WX_MenuContentListItem> list_menucontentlistitem = new List <WX_MenuContentListItem>();
                            tp_menucontentlist.sub_button = list_menucontentlistitem;
                            query.Params.Clear();
                            query.SQL.Clear();
                            query.SQL.Add("select NAME,TYPE,ASKID,DM,URL,PUBLICID from WX_MENU where " + CyDbSystem.GetDataLengthFuncName(conn) + "(DM)=4 and DM LIKE '" + menu[i].dm + "%" + "' and PUBLICID='" + PUBLICID + "'  order by DM");
                            //query.ParamByName("PUBLICID").AsInteger = Convert.ToInt32(PUBLICID);
                            query.Open();
                            while (!query.Eof)
                            {
                                WX_MenuContentListItem tp_menucontentlistitem = new WX_MenuContentListItem();
                                list_menucontentlistitem.Add(tp_menucontentlistitem);
                                int itemtype = query.FieldByName("TYPE").AsInteger;
                                tp_menucontentlistitem.PUBLICID = query.FieldByName("PUBLICID").AsInteger;
                                if (DbSystemName == "ORACLE")
                                {
                                    tp_menucontentlistitem.name = query.FieldByName("NAME").AsString;
                                }
                                else if (DbSystemName == "SYBASE")
                                {
                                    tp_menucontentlistitem.name = query.FieldByName("NAME").GetChineseString(200);
                                }
                                if (itemtype == 2)
                                {
                                    tp_menucontentlistitem.type = "view";
                                    tp_menucontentlistitem.url  = query.FieldByName("URL").AsString;
                                }
                                if (itemtype == 1)
                                {
                                    tp_menucontentlistitem.type = "click";
                                    tp_menucontentlistitem.key  = Convert.ToString(query.FieldByName("ASKID").AsInteger);
                                }
                                query.Next();
                            }
                            query.Close();
                        }
                        else if (menu[i].type == 1)
                        {
                            tp_menucontentlist.type = "click";
                            tp_menucontentlist.key  = menu[i].key;
                        }
                        else if (menu[i].type == 2)
                        {
                            tp_menucontentlist.type = "view";
                            tp_menucontentlist.url  = menu[i].url;
                        }
                    }
                }
                catch (Exception e)
                {
                    if (e is MyDbException)
                    {
                        throw e;
                    }
                    else
                    {
                        throw new MyDbException(e.Message, query.SqlText);
                    }
                }
            }
            finally
            {
                conn.Close();
            }
            return(tp_menucontent);
        }