Exemple #1
0
        private static MenusModels CreateData(DataRow dr)
        {
            MenusModels nData = new MenusModels
            {
                ID                = (long)dr["id"],
                SiteID            = (long)dr["SiteID"],
                ParentID          = (long)dr["ParentID"],
                AreaID            = (byte)dr["AreaID"],
                Title             = dr["Title"].ToString().Trim(),
                SN                = dr["SN"].ToString().Trim(),
                DataType          = dr["DataType"].ToString().Trim(),
                DataTypeValue     = dr["DataTypeValue"].ToString().Trim(),
                ShowStatus        = (byte)dr["ShowStatus"],
                Sort              = (int)dr["Sort"],
                Creator           = (long)dr["Creator"],
                CreateTime        = dr["CreateTime"] as DateTime?,
                Modifier          = dr["Modifier"] as long?,
                ModifyTime        = dr["ModifyTime"] as DateTime?,
                MenuIcon          = dr["MenuIcon"].ToString().Trim(),
                MenuURLAction     = dr["MenuURLAction"].ToString().Trim(),
                MenuEditURLAction = dr["MenuEditURLAction"].ToString().Trim(),
                MenuiFrameH       = (int)dr["MenuiFrameH"],
                MenuiFrameW       = (int)dr["MenuiFrameW"],
                MenuCode          = dr["MenuCode"].ToString(),
                MenuManageURL     = GetManageURLs(dr["MenuManageURL"].ToString()),
                MenuIsNeedSN      = (bool)dr["MenuIsNeedSN"],
                DisableDelete     = (bool)dr["DisableDelete"]
            };

            return(nData);
        }
Exemple #2
0
        public static void SaveInfo(MenusModels data)
        {
            SQLData.Database db = new SQLData.Database(WebInfo.Conn);

            SQLData.TableObject TableObj = db.GetTableObject("Menus");
            //TableObj.GetDataFromObject(data);

            TableObj.Add("Title", data.Title);
            TableObj.Add("ShowStatus", data.ShowStatus);

            SQLData.ParameterCollection para = new SQLData.ParameterCollection();
            if (data.ID == 0)
            {
                TableObj.Add("ID", GetItem.NewSN());
                TableObj.Add("SN", data.SN);
                TableObj.Add("SiteID", data.SiteID);
                TableObj.Add("AreaID", data.AreaID);
                TableObj.Add("ParentID", data.ParentID);
                TableObj.Add("DataType", data.DataType);
                TableObj.Add("Sort", data.Sort);
                TableObj.Add("Creator", MemberDAO.SysCurrent.Id);
                TableObj.Add("CreateTime", DateTime.Now.ToString(WebInfo.DateTimeFmt));
                TableObj.Insert();
            }
            else
            {
                TableObj.Add("Modifier", MemberDAO.SysCurrent.Id);
                TableObj.Add("ModifyTime", DateTime.Now.ToString(WebInfo.DateTimeFmt));
                para.Add("@ID", data.ID);
                TableObj.Update(para);
            }
        }
Exemple #3
0
        //wei20180808 複製功能抄徵件
        public static void Copy(long siteId, IEnumerable <long> ids)
        {
            if (ids == null || ids.Count() == 0)
            {
                return;
            }

            long        menuId = RewardDAO.GetMenuID(siteId);
            MenusModels menu   = DataAccess.MenusDAO.GetInfo(siteId, menuId);

            SQLData.Database db = new SQLData.Database(WebInfo.Conn);
            foreach (long id in ids)
            {
                SQLData.TableObject tableObj = db.GetTableObject("Reward", id);
                if (tableObj.Count == 0)
                {
                    continue;
                }

                long newId = WorkLib.GetItem.NewSN();
                tableObj["ID"] = newId;
                //tableObj["CardNo"] = Golbal.PubFunc.AddPage(siteId, menuId, menu.SN, "Reward", "Index", true);
                tableObj["Sort"]       = 1;
                tableObj["Creator"]    = Areas.Backend.Models.DataAccess.MemberDAO.SysCurrent.Id;
                tableObj["CreateTime"] = DateTime.Now;
                tableObj.Remove("Modifier");
                tableObj.Remove("ModifyTime");

                tableObj.Insert();
            }
        }
Exemple #4
0
        private static MenusModels ConvertDynamicToMenusModel(dynamic obj)
        {
            MenusModels nData = new MenusModels
            {
                ID                = obj.ID,
                SiteID            = obj.SiteID,
                ParentID          = obj.ParentID,
                AreaID            = obj.AreaID,
                Title             = obj.Title,
                SN                = obj.SN,
                DataType          = obj.DataType,
                DataTypeValue     = obj.DataTypeValue,
                ShowStatus        = obj.ShowStatus,
                Sort              = obj.Sort,
                Creator           = obj.Creator,
                CreateTime        = obj.CreateTime,
                Modifier          = obj.Modifier,
                ModifyTime        = obj.ModifyTime,
                MenuIcon          = obj.MenuIcon,
                MenuURLAction     = obj.MenuURLAction,
                MenuEditURLAction = obj.MenuEditURLAction,
                MenuiFrameH       = obj.MenuiFrameH,
                MenuiFrameW       = obj.MenuiFrameW,
                MenuCode          = obj.MenuCode,
                MenuManageURL     = GetManageURLs(obj.MenuManageURL),
                MenuIsNeedSN      = obj.MenuIsNeedSN
            };

            return(nData);
        }
Exemple #5
0
        public static void SetItem(ArticleModels item, int cardStyleID = 1)
        {
            SQLData.Database    db       = new SQLData.Database(WebInfo.Conn);
            SQLData.TableObject tableObj = db.GetTableObject("Article");
            tableObj.GetDataFromObject(item);
            string sql   = "Select 1 From Article Where ID = " + item.ID;
            bool   isNew = db.GetFirstValue(sql) == null;

            if (isNew)
            {
                MenusModels menu   = MenusDAO.GetInfo(item.SiteID, item.MenuID);
                long        cardNo = WorkV3.Golbal.PubFunc.AddPage(item.SiteID, item.MenuID, menu.SN, "Article", "Content", true, item.Title, CardStyleId: cardStyleID);
                tableObj["CardNo"]     = cardNo;
                tableObj["Creator"]    = MemberDAO.SysCurrent.Id;
                tableObj["CreateTime"] = DateTime.Now;
                tableObj["Sort"]       = 1;

                tableObj.Insert();
            }
            else
            {
                tableObj.Remove("ID");
                tableObj.Remove("SiteID");
                tableObj.Remove("MenuID");
                tableObj.Remove("CardNo");
                tableObj.Remove("Clicks");
                tableObj.Remove("Creator");
                tableObj.Remove("CreateTime");

                tableObj["Modifier"]   = MemberDAO.SysCurrent.Id;
                tableObj["ModifyTime"] = DateTime.Now;

                tableObj.Update(item.ID);
            }
        }
Exemple #6
0
        /// <summary>
        /// 取得資料
        /// </summary>
        /// <returns></returns>
        public static List <MenusModels> GetData(long SiteID, MenusAreaIDType AreaID = MenusAreaIDType.All)
        {
            using (var conn = new SqlConnection(WebInfo.Conn))
            {
                string Sql = @"Select ID,SiteID,ParentID,AreaID,M.Title,SN,DataType,DataTypeValue,ShowStatus,M.Sort,Creator,CreateTime,Modifier,ModifyTime,CT.Code MenuCode, CT.ICON as MenuIcon, CT.URLAction MenuURLAction, CT.iFrameH MenuiFrameH, CT.iFrameW MenuiFrameW, CT.EditURLAction MenuEditURLAction, CT.ManageURL MenuManageURL, CT.IsNeedSN MenuIsNeedSN 
                           from Menus M 
                           inner join CardsType CT on DataType=CT.Code 
                           where SiteID=@SiteID";
                if (AreaID != MenusAreaIDType.All)
                {
                    Sql += " and  AreaID=" + AreaID;
                }
                Sql += " order by Sort";

                List <dynamic>     queryResult = conn.Query <dynamic>(Sql, new { SiteID = SiteID }).ToList();
                List <MenusModels> result      = new List <MenusModels>();

                for (int i = 0; i < queryResult.Count; i++)
                {
                    MenusModels item = ConvertDynamicToMenusModel(queryResult[i]);
                    result.Add(item);
                }

                return(result);
            }
        }
Exemple #7
0
        public static void Save_Single(MenusModels data)
        {
            SQLData.Database db = new SQLData.Database(WebInfo.Conn);

            SQLData.TableObject TableObj = db.GetTableObject("Menus");

            TableObj.Add("Title", data.Title);
            //TableObj.Add("ParentID", data.ParentID);
            TableObj.Add("ShowStatus", data.ShowStatus);
            //TableObj.Add("Sort", data.Sort);

            TableObj.Add("Modifier", MemberDAO.SysCurrent.Id);
            TableObj.Add("ModifyTime", DateTime.Now.ToString(WebInfo.DateTimeFmt));

            SQLData.ParameterCollection para = new SQLData.ParameterCollection();
            para.Add("@ID", data.ID);
            TableObj.Update(para);
            PagesModels mPage = PagesDAO.GetPageInfo(data.SiteID, data.ID);

            if (mPage != null)
            {
                mPage.Title = data.Title;
                PagesDAO.SetPageInfo(mPage);
            }
        }
Exemple #8
0
        public ActionResult MenuEdit_File(long?id)
        {
            ViewBag.HasChildren = false;
            //檔案上限
            ViewBag.FileLimit      = 1;
            ViewBag.FileExtensions = UpdFileInfo.FileExtensionsType.Custom;//Joe 20190925 問題單:後台單一檔案允許格式

            if (uCheck.IsNumeric(id))
            {
                long        SiteId = GetItem.SiteID();
                string      vPath  = UpdFileInfo.GetVPathBySiteID(SiteId, "Menus");
                MenusModels mm     = MenusDAO.GetInfo(SiteId, (long)id);

                ResourceFilesModels newFile = ResourceFilesDAO.GetInfo(SiteId, (long)id, (byte)SourceType.Menu, 1, 1, 1);
                if (newFile != null)
                {
                    ViewBag.FileExists = new HtmlString(ResourceFilesDAO.fileuploader(newFile, vPath));
                }
                var childList = MenusDAO.GetChildren(id.Value);
                if (childList != null && childList.Count() > 0)
                {
                    ViewBag.HasChildren = true;
                }
                return(View(mm));
            }
            return(View());
        }
Exemple #9
0
        public void MenuAdd(MenusModels MData)
        {
            long NewID = GetItem.NewSN();

            MData.ID = NewID;
            MenusDAO.Insert_Single(MData);

            List <CardsTypeModels> CardsType = CardsTypeDAO.GetData();
            CardsTypeModels        CT        = CardsType.FindLast(dr => dr.Code == MData.DataType);

            if (CT.isNeedSN == true)
            {
                //新增
                // PubFunc.AddPage(MData.SiteID, MData.ID, MData.SN, MData.DataType, CT.EditURLAction, false, MData.Title, 1, true);
                PubFunc.AddPage(MData.SiteID, MData.ID, MData.SN, MData.DataType, null, false, MData.Title, 1, true);
            }
            SysLog.SaveLog(SysActions.Add, SysMgrNo.Menu, MData.Title, MData.SiteID, MData.ID, null);
            if (CT != null)
            {
                Response.Redirect(Url.Action(CT.URLAction, "Menus", new { id = NewID, SiteID = MData.SiteID }));
            }
            else
            {
                TempData["refreshData"] = 1;
                Response.Redirect(Request.RawUrl);
            }
        }
Exemple #10
0
        public ActionResult Index(int?page, MenuListType type = MenuListType.Top)
        {
            MenusModels  model            = new MenusModels();
            int          total            = 0;
            int          PageSize         = 10;
            int          CurrentPageIndex = page.HasValue ? page.Value - 1 : 0;
            IList <Menu> lst = menuBarSrv.GetList(type, CurrentPageIndex, PageSize, out total);

            model.Type          = type;
            model.PageListMenus = new PagedList <Menu>(lst, CurrentPageIndex, PageSize, total);
            return(View(model));
        }
Exemple #11
0
        /// <summary>
        /// 取得瀏覽目錄by SiteID
        /// </summary>
        /// <param name="SiteID"></param>
        /// <param name="MenuID"></param>
        /// <returns></returns>
        public static string GetVPathByMenuID(long SiteID, long MenuID)
        {
            string      Path  = GetItem.ViewUpdUrl().TrimEnd('/');
            MenusModels datas = MenusDAO.GetInfo(SiteID, MenuID);

            if (datas != null)
            {
                Path += "/" + datas.SiteSN + "/" + datas.SN + "/";
            }

            return(Path);
        }
Exemple #12
0
        /// <summary>
        /// 取得實體上傳目錄by SiteID
        /// </summary>
        /// <param name="MenuID"></param>
        /// <param name="SiteID"></param>
        /// <returns></returns>
        public static string GetUPathByMenuID(long SiteID, long MenuID)
        {
            string      Path  = GetItem.UpdPath();
            MenusModels datas = MenusDAO.GetInfo(SiteID, MenuID);

            if (datas != null)
            {
                Path += "\\" + datas.SiteSN + "\\" + datas.SN + "\\";
            }

            return(Path);
        }
Exemple #13
0
        public void MenuEdit_Folder(MenusModels MData)
        {
            ViewBag.HasChildren = false;
            var childList = MenusDAO.GetChildren(MData.ID);

            if (childList != null && childList.Count() > 0)
            {
                ViewBag.HasChildren = true;
            }
            MenusDAO.Save_Folder(MData);
            SysLog.SaveLog(SysActions.Edit, SysMgrNo.Menu, MData.Title, MData.SiteID, MData.ID);
            TempData["refreshData"] = SysActions.Edit;
            Response.Redirect(Request.RawUrl);
        }
Exemple #14
0
 public ActionResult MenuEdit_Folder(long?id)
 {
     ViewBag.HasChildren = false;
     if (uCheck.IsNumeric(id))
     {
         MenusModels mm        = MenusDAO.GetInfo(GetItem.SiteID(), (long)id);
         var         childList = MenusDAO.GetChildren(id.Value);
         if (childList != null && childList.Count() > 0)
         {
             ViewBag.HasChildren = true;
         }
         return(View(mm));
     }
     return(View());
 }
Exemple #15
0
        public static void Save_Folder(MenusModels data)
        {
            SQLData.Database db = new SQLData.Database(WebInfo.Conn);

            SQLData.TableObject TableObj = db.GetTableObject("Menus");

            TableObj.Add("Title", data.Title);
            TableObj.Add("ShowStatus", data.ShowStatus);
            TableObj.Add("DataTypeValue", data.DataTypeValue);
            TableObj.Add("Modifier", MemberDAO.SysCurrent.Id);
            TableObj.Add("ModifyTime", DateTime.Now.ToString(WebInfo.DateTimeFmt));

            SQLData.ParameterCollection para = new SQLData.ParameterCollection();
            para.Add("@ID", data.ID);
            TableObj.Update(para);
        }
Exemple #16
0
        public static void UpdateParentID(List <MenusModels> datas, long?parentID)
        {
            string        fmt = "Update Menus Set ParentID = {1} Where ID = {0};\n";
            StringBuilder sql = new StringBuilder();

            if (datas.Count > 0)
            {
                for (int i = 0, len = datas.Count; i < len; ++i)
                {
                    MenusModels menu = datas[i];
                    sql.AppendFormat(fmt, menu.ID, parentID.HasValue?parentID.Value.ToString():"Null");
                }
                SQLData.Database db = new SQLData.Database(WebInfo.Conn);
                db.ExecuteNonQuery(sql.ToString());
            }
        }
Exemple #17
0
        public static MenusModels GetInfo(long Id)
        {
            string Sql = "Select *, S.SN SiteSN From Menus M Inner join Sites S on S.ID =M.SiteID where M.ID={0}";

            SQLData.Database db = new SQLData.Database(WebInfo.Conn);

            DataTable   dt       = db.GetDataTable(string.Format(Sql, Id));
            MenusModels _TempRow = new MenusModels();

            if (dt.Rows.Count > 0)
            {
                _TempRow = CreateData(dt.Rows[0]);
            }

            return(_TempRow);
        }
Exemple #18
0
        public static void UpdateSort(List <MenusModels> datas)
        {
            string        fmt = "Update Menus Set AreaID = {0}, Sort = {1}, ParentID = {2} Where ID = {3} and SiteID={4};\n";
            StringBuilder sql = new StringBuilder();

            if (datas.Count > 0)
            {
                for (int i = 0, len = datas.Count; i < len; ++i)
                {
                    MenusModels menu = datas[i];
                    sql.AppendFormat(fmt, menu.AreaID, i + 1, menu.ParentID, menu.ID, menu.SiteID);
                }
                SQLData.Database db = new SQLData.Database(WebInfo.Conn);
                db.ExecuteNonQuery(sql.ToString());
            }
        }
Exemple #19
0
        public ActionResult Index(int?parentId, int?page, int position = 0)
        {
            int           pageIndex   = page.HasValue ? page.Value - 1 : 0;
            int           pageSize    = 20;
            int           totalRecord = 0;
            Company       company     = ((EInvoiceContext)FXContext.Current).CurrentCompany;
            IMenusService menuSrv     = IoC.Resolve <IMenusService>();
            MenusModels   model       = new MenusModels();

            model.RootMenus = MenuModel.GetRoots(company.id, position);
            int pId  = parentId.HasValue ? parentId.Value : model.RootMenus[0].Id;
            var list = MenuModel.GetTree(company.id, pId);

            totalRecord          = list.Count;
            model.PagedListMenus = new PagedList <MenuModel>(list, pageIndex, pageSize, totalRecord);
            return(View(model));
        }
Exemple #20
0
        public static void Insert_Single(MenusModels data)
        {
            SQLData.Database    db       = new SQLData.Database(WebInfo.Conn);
            SQLData.TableObject TableObj = db.GetTableObject("Menus");

            SQLData.ParameterCollection para = new SQLData.ParameterCollection();

            TableObj.Add("Title", data.Title);
            TableObj.Add("ParentID", 0);
            TableObj.Add("ShowStatus", data.ShowStatus);
            TableObj.Add("Sort", 0);
            TableObj.Add("ID", data.ID);
            TableObj.Add("SN", data.SN);
            TableObj.Add("SiteID", data.SiteID);
            TableObj.Add("AreaID", data.AreaID);
            TableObj.Add("DataType", data.DataType);
            TableObj.Add("Creator", MemberDAO.SysCurrent.Id);
            TableObj.Add("CreateTime", DateTime.Now.ToString(WebInfo.DateTimeFmt));
            TableObj.Add("DisableDelete", data.DisableDelete);
            TableObj.Insert();
        }
Exemple #21
0
        public static MenusModels GetInfo(long siteId, string menuSn)
        {
            if (string.IsNullOrWhiteSpace(menuSn))
            {
                return(null);
            }

            string Sql = "Select *, S.SN SiteSN From Menus M Inner join Sites S on S.ID =M.SiteID where SiteID = {0} AND M.SN = N'{1}'";

            SQLData.Database db = new SQLData.Database(WebInfo.Conn);

            DataTable   dt       = db.GetDataTable(string.Format(Sql, siteId, menuSn.Replace("'", "''")));
            MenusModels _TempRow = new MenusModels();

            if (dt.Rows.Count > 0)
            {
                _TempRow = CreateData(dt.Rows[0]);
            }

            return(_TempRow);
        }
Exemple #22
0
        public void GetAddMenuTag(long?id)
        {
            long SiteID = GetItem.SiteID();

            if (uCheck.IsNumeric(id))
            {
                MenusModels mm  = MenusDAO.GetInfo(SiteID, (long)id);
                string      Fmt =
                    "<li class=\"dd-item\" data-id=\"" + mm.ID + "\">" +
                    "<div class=\"dd-handle\">" +
                    "    <i class=\"\"></i>" +
                    "    <span class=\"menu-title\">" + mm.Title + "</span>" +
                    "    <span class=\"icons-box\">" +
                    "	 <i class=\""+ mm.GetShowStatusClass() + "\"></i>" +
                    "	 <a class=\"openEdit\" href=\""+ Url.Action(mm.MenuURLAction, "Menus", new { id = mm.ID, SiteID = mm.SiteID }) + "\" data-height=\"" + mm.MenuiFrameH + "\" data-width=\"" + mm.MenuiFrameW + "\"><i class=\"cc cc-settings\"></i></a>" +
                    "    </span>" +
                    "</div>" +
                    "</li>";
                Response.Write(Fmt);
            }
        }
Exemple #23
0
        public static MenusModels GetInfo(long Id)
        {
            string Sql = @" Select ID,SiteID,ParentID,AreaID,M.Title,SN,DataType,DataTypeValue,ShowStatus,M.Sort,Creator,CreateTime,Modifier,ModifyTime, 
                                   CT.Code MenuCode,CT.ICON as MenuIcon, CT.URLAction MenuURLAction, CT.iFrameH MenuiFrameH, CT.iFrameW MenuiFrameW,
                                   CT.EditURLAction MenuEditURLAction, CT.ManageURL MenuManageURL, CT.IsNeedSN MenuIsNeedSN ,M.DisableDelete
                            from Menus M 
                            inner join CardsType CT on DataType=CT.Code 
                            where  ID={0} ";

            SQLData.Database db = new SQLData.Database(WebInfo.Conn);

            DataTable   dt       = db.GetDataTable(string.Format(Sql, Id));
            MenusModels _TempRow = new MenusModels();

            if (dt.Rows.Count > 0)
            {
                _TempRow = CreateData(dt.Rows[0]);
            }

            return(_TempRow);
        }
Exemple #24
0
        private static MenusModels CreateData(DataRow dr)
        {
            MenusModels nData = new MenusModels
            {
                Id            = (long)dr["id"],
                SiteID        = (long)dr["SiteID"],
                SiteSN        = dr["SiteSN"].ToString().Trim(),
                ParentID      = (long)dr["ParentID"],
                AreaID        = (byte)dr["AreaID"],
                Title         = dr["Title"].ToString().Trim(),
                SN            = dr["SN"].ToString().Trim(),
                DataType      = dr["DataType"].ToString().Trim(),
                DataTypeValue = dr["DataTypeValue"].ToString().Trim(),
                ShowStatus    = (byte)dr["ShowStatus"],
                Sort          = (int)dr["Sort"],
                Creator       = (long)dr["Creator"],
                CreateTime    = dr["CreateTime"] as DateTime?,
                Modifier      = dr["Modifier"] as long?,
                ModifyTime    = dr["ModifyTime"] as DateTime?,
            };

            return(nData);
        }
Exemple #25
0
        public ActionResult CleanIndex(string SiteSN, string PageSN, long?id)
        {
            bool        PageisExist = false;
            byte        ShowStatus  = 3;
            SitesModels mSites      = SitesDAO.GetSiteInfo(SiteSN);
            PageCache   pageCache   = new PageCache();

            if (mSites != null)
            {
                ViewBag.SiteID = mSites.Id;
                PagesModels mPages = PagesDAO.GetPageInfo(mSites.Id, PageSN);
                if (mPages != null)
                {
                    pageCache.SiteID   = mPages.SiteID;
                    pageCache.MenuID   = mPages.MenuID;
                    pageCache.PageNO   = mPages.No;
                    pageCache.PageSN   = mPages.SN;
                    pageCache.SiteName = mSites.Title;
                    pageCache.SiteSN   = mSites.SN;
                    MenusModels mMenus = MenusDAO.GetInfo(mPages.SiteID, mPages.MenuID);

                    if (mMenus != null)
                    {
                        ShowStatus = mMenus.ShowStatus;
                    }
                    if (ShowStatus != 3)
                    {
                        ShowStatus = mPages.ShowStatus;
                    }

                    PageisExist      = true;
                    ViewBag.PageNo   = mPages.No;
                    ViewBag.Title    = mPages.Title;
                    ViewBag.SiteName = mSites.Title;
                }

                #region GA
                List <SitesModels.GAInfoCont> GA = new List <SitesModels.GAInfoCont>();
                if (mSites.GAInfo != string.Empty)
                {
                    GA = JsonConvert.DeserializeObject <List <SitesModels.GAInfoCont> >(mSites.GAInfo);
                }
                ViewBag.GA = GA;
                #endregion
            }
            ViewBag.SiteSN = SiteSN;
            ViewBag.PageSN = PageSN;
            ViewBag.Id     = id;
            PageCache.SetTempDataPageCache(TempData, pageCache);
            ViewBag.CustomCont = LoadCustomCont(pageCache);
            if (PageisExist == true)
            {
                if (ShowStatus == 3)
                {
                    Response.Redirect(Url.Action("PageNotFound", "ErrorPages"));
                }
                else
                {
                    #region 網頁點擊LOG

                    long?memberID = null;
                    WorkV3.Common.Member curUser = WorkV3.Common.Member.Current;
                    if (curUser != null)
                    {
                        memberID = curUser.ID;
                    }

                    string referUrl = "", referUrlTitle = "", referrerUrlPageNo = "";
                    if (Request.UrlReferrer != null)
                    {
                        referUrl = Request.UrlReferrer.AbsoluteUri;
                        if (referUrl.StartsWith(WorkLib.uUrl.GetURL()))
                        {
                            if (referUrl.Split('/').Length > 0)
                            {
                                string             pageSN   = referUrl.Split('/')[referUrl.Split('/').Length - 1];
                                Models.PagesModels pageInfo = Models.DataAccess.PagesDAO.GetPageInfo(pageCache.SiteID, pageSN);
                                if (pageInfo != null)
                                {
                                    referUrlTitle     = pageInfo.Title;
                                    referrerUrlPageNo = pageInfo.No.ToString();
                                }
                                else
                                {
                                    Models.MenusModels menuInfo = Models.DataAccess.MenusDAO.GetInfo(pageCache.SiteID, pageSN);
                                    if (menuInfo != null)
                                    {
                                        referUrlTitle     = menuInfo.Title;
                                        referrerUrlPageNo = menuInfo.Id.ToString();
                                    }
                                }
                            }
                        }
                    }
                    AddPageLog((long)pageCache.PageNO, mSites.Lang, 3, mSites.Id, getSessionID(), memberID, referUrl, referUrlTitle, referrerUrlPageNo);
                    #endregion
                    return(View());
                }
            }

            else
            {
                string DefaultSiteSN = GetItem.appSet("DefaultSiteSN").ToString();

                if (DefaultSiteSN != "")
                {
                    Response.Redirect("~/w/" + DefaultSiteSN + "/index");
                }
            }

            return(View("EmptyPage"));
        }
Exemple #26
0
        public ActionResult IndexWithoutLayout(string SiteSN, string PageSN, long?id, string lay = "")
        {
            PageCache   pageCache   = new PageCache();
            bool        PageisExist = false;
            byte        ShowStatus  = 3;
            SitesModels mSites      = SitesDAO.GetSiteInfo(SiteSN);

            if (mSites != null)
            {
                ViewBag.SiteID = mSites.Id;
                PagesModels mPages = PagesDAO.GetPageInfo(mSites.Id, PageSN);
                if (mPages != null)
                {
                    pageCache.SiteID   = mPages.SiteID;
                    pageCache.MenuID   = mPages.MenuID;
                    pageCache.PageNO   = mPages.No;
                    pageCache.PageSN   = mPages.SN;
                    pageCache.SiteName = mSites.Title;
                    pageCache.SiteSN   = mSites.SN;
                    MenusModels mMenus = MenusDAO.GetInfo(mPages.SiteID, mPages.MenuID);

                    if (mMenus != null)
                    {
                        ShowStatus = mMenus.ShowStatus;
                    }
                    if (ShowStatus != 3)
                    {
                        ShowStatus = mPages.ShowStatus;
                    }

                    PageisExist      = true;
                    ViewBag.PageNo   = mPages.No;
                    ViewBag.Title    = mPages.Title;
                    ViewBag.SiteName = mSites.Title;
                    #region 網頁SEO wei 20180914 對集點

                    if (mPages != null)
                    {
                        string imgUrl = "", description = "", author = "", Title = "";
                        var    pageSEO      = PagesDAO.GetPageSEO(mPages.SiteID, mPages.No, mPages.Title);
                        var    siteSEO      = Areas.Backend.Models.DataAccess.SiteSeoSettingDAO.GetItem(mPages.SiteID);
                        var    contentSEO   = PagesDAO.GetContentSEO(mPages.SiteID, mPages.MenuID, mPages.No);
                        string typeKeywords = contentSEO.Keywords;//PagesDAO.GetContentTypeKeyword(mPages.SiteID, mPages.MenuID, mPages.No);

                        if (!string.IsNullOrEmpty(mPages.Title))
                        {
                            ViewBag.SEO_Title = mPages.Title; // 以單頁的先給值
                        }
                        //先設定頁面的 SEO
                        //若PAGE SEO 存在, 則取代碼 => PAGE > SITE
                        if (pageSEO != null)
                        {
                            string UploadUrl = UpdFileInfo.GetVPathByMenuID(mPages.SiteID, mPages.MenuID).TrimEnd('/') + "/";
                            if (!string.IsNullOrEmpty(pageSEO.Title))
                            {
                                ViewBag.SEO_Title = pageSEO.Title;
                            }
                            if (!string.IsNullOrEmpty(pageSEO.Description))
                            {
                                ViewBag.SEO_Description = pageSEO.Description;
                            }
                            if (!string.IsNullOrEmpty(pageSEO.Author))
                            {
                                author = pageSEO.Author;
                            }
                            if (!string.IsNullOrEmpty(pageSEO.Copyright))
                            {
                                ViewBag.SEO_Copyright = pageSEO.Copyright;
                            }
                            if (!string.IsNullOrEmpty(pageSEO.Keywords))
                            {
                                ViewBag.SEO_Keywords = pageSEO.Keywords;
                            }
                            if (!string.IsNullOrEmpty(pageSEO.Image))
                            {
                                ViewBag.SEO_Image = UploadUrl + pageSEO.Image;
                            }
                            description = ViewBag.SEO_Description;
                            Title       = ViewBag.SEO_Title;
                        }
                        if (contentSEO != null)
                        {
                            if (!string.IsNullOrEmpty(contentSEO.SocialImage))
                            {
                                ViewBag.SEO_Image = contentSEO.SocialImage;
                            }
                            if (string.IsNullOrEmpty(description) && !string.IsNullOrEmpty(contentSEO.Description))
                            {
                                ViewBag.SEO_Description = contentSEO.Description;
                            }
                            if (string.IsNullOrEmpty(Title) && !string.IsNullOrEmpty(contentSEO.Title))
                            {
                                ViewBag.SEO_Title = contentSEO.Title;
                            }
                            if (contentSEO != null && !string.IsNullOrEmpty(contentSEO.Author))
                            {
                                author = author.Trim(';') + ";" + contentSEO.Author;
                            }
                        }
                        imgUrl = ViewBag.SEO_Image;
                        ViewBag.SEO_Keywords = typeKeywords;
                        //以SITE SEO 先給值, 若PAGE SEO 存在, 則取代碼 => PAGE > SITE
                        if (siteSEO != null)
                        {
                            if (!string.IsNullOrEmpty(siteSEO.Title) && string.IsNullOrEmpty(ViewBag.SEO_Title))
                            {
                                ViewBag.SEO_Title = siteSEO.Title;
                            }
                            if (!string.IsNullOrEmpty(siteSEO.Description) && string.IsNullOrEmpty(ViewBag.SEO_Description))
                            {
                                ViewBag.SEO_Description = siteSEO.Description;
                            }
                            if (!string.IsNullOrEmpty(siteSEO.Author))
                            {
                                author = author.Trim(';') + ";" + siteSEO.Author;
                            }
                            if (!string.IsNullOrEmpty(siteSEO.Copyright) && string.IsNullOrEmpty(ViewBag.SEO_Copyright))
                            {
                                ViewBag.SEO_Copyright = siteSEO.Copyright;
                            }
                            if (!string.IsNullOrEmpty(siteSEO.Keywords))
                            {
                                ViewBag.SEO_Keywords += (string.IsNullOrEmpty(ViewBag.SEO_Keywords) ? "" : ";") + siteSEO.Keywords;
                            }
                            WorkV3.Areas.Backend.Models.SocialSettingModels siteSocialSetting = WorkV3.Areas.Backend.Models.DataAccess.SocialSettingDAO.GetItem(mPages.SiteID);
                            if (siteSocialSetting != null && !string.IsNullOrEmpty(siteSocialSetting.SocialDefaultImage))
                            {
                                if (string.IsNullOrEmpty(imgUrl) && !string.IsNullOrEmpty(siteSocialSetting.SocialDefaultImage))
                                {
                                    string customImageFolder          = "SocialImage";
                                    WorkV3.Models.ImageModel imgModel = Newtonsoft.Json.JsonConvert.DeserializeObject <WorkV3.Models.ImageModel>(siteSocialSetting.SocialDefaultImage);
                                    string UploadUrl = UpdFileInfo.GetVPathBySiteID(mPages.SiteID, customImageFolder).TrimEnd('/') + "/";
                                    ViewBag.SEO_Image = UploadUrl + imgModel.Img;
                                }
                            }
                        }
                        ViewBag.SEO_Author = author.Trim(';');
                    }
                    #endregion
                }

                #region GA
                List <SitesModels.GAInfoCont> GA = new List <SitesModels.GAInfoCont>();
                if (!string.IsNullOrEmpty(mSites.GAInfo))
                {
                    GA = JsonConvert.DeserializeObject <List <SitesModels.GAInfoCont> >(mSites.GAInfo);
                }
                ViewBag.GA = GA;
                #endregion
            }
            PageCache.SetTempDataPageCache(TempData, pageCache);
            ViewBag.SiteSN     = SiteSN;
            ViewBag.PageSN     = PageSN;
            ViewBag.Id         = id;
            ViewBag.CustomCont = LoadCustomCont(pageCache);
            if (PageisExist == true)
            {
                if (ShowStatus == 3)
                {
                    Response.Redirect(Url.Action("PageNotFound", "ErrorPages"));
                }
                else
                {
                    #region 網頁點擊LOG
                    long?memberID = null;
                    WorkV3.Common.Member curUser = WorkV3.Common.Member.Current;
                    if (curUser != null)
                    {
                        memberID = curUser.ID;
                    }

                    string referUrl = "", referUrlTitle = "", referrerUrlPageNo = "";
                    if (Request.UrlReferrer != null)
                    {
                        referUrl = Request.UrlReferrer.AbsoluteUri;
                        if (referUrl.StartsWith(WorkLib.uUrl.GetURL()))
                        {
                            if (referUrl.Split('/').Length > 0)
                            {
                                string             pageSN   = referUrl.Split('/')[referUrl.Split('/').Length - 1];
                                Models.PagesModels pageInfo = Models.DataAccess.PagesDAO.GetPageInfo(pageCache.SiteID, pageSN);
                                if (pageInfo != null)
                                {
                                    referUrlTitle     = pageInfo.Title;
                                    referrerUrlPageNo = pageInfo.No.ToString();
                                }
                                else
                                {
                                    Models.MenusModels menuInfo = Models.DataAccess.MenusDAO.GetInfo(pageCache.SiteID, pageSN);
                                    if (menuInfo != null)
                                    {
                                        referUrlTitle     = menuInfo.Title;
                                        referrerUrlPageNo = menuInfo.Id.ToString();
                                    }
                                }
                            }
                        }
                    }
                    AddPageLog((long)pageCache.PageNO, mSites.Lang, 3, mSites.Id, getSessionID(), memberID, referUrl, referUrlTitle, referrerUrlPageNo);
                    #endregion
                    ViewBag.lay = null;
                    if (lay != "")
                    {
                        ViewBag.lay = lay;
                    }
                    return(View());
                }
            }

            else
            {
                string DefaultSiteSN = GetItem.appSet("DefaultSiteSN").ToString();

                if (DefaultSiteSN != "")
                {
                    Response.Redirect("~/w/" + DefaultSiteSN + "/index");
                }
            }

            return(View("EmptyPage"));
        }
Exemple #27
0
        public ActionResult Index(string SiteSN, string PageSN, long?id)
        {
            bool        PageisExist = false;
            byte        ShowStatus  = 3;
            SitesModels mSites      = SitesDAO.GetSiteInfo(SiteSN);
            PageCache   pageCache   = new PageCache();

            if (mSites != null)
            {
                if (mSites.IsDelete || !mSites.Issue)
                {
                    var member = WorkV3.Areas.Backend.Models.DataAccess.MemberDAO.SysCurrent;
                    if (member == null)
                    {
                        return(HttpNotFound());
                    }
                }
                ViewBag.SiteID = mSites.Id;
                Areas.Backend.Models.SiteSeoSettingModels siteSeoSetting = Areas.Backend.Models.DataAccess.SiteSeoSettingDAO.GetItem(mSites.Id);
                if (siteSeoSetting != null)
                {
                    if (!siteSeoSetting.Robot)
                    {
                        ViewBag.NoRobot = true;
                    }
                    ViewBag.GoogleSearchCode = siteSeoSetting.GoogleSearch;
                    ViewBag.BaidoSearchCode  = siteSeoSetting.BaiduMA;
                    ViewBag.BingSearchCode   = siteSeoSetting.Bing;
                    if (!string.IsNullOrEmpty(siteSeoSetting.GA))
                    {
                        ViewBag.GACode = "<script async src=\"https://www.googletagmanager.com/gtag/js?id=" + siteSeoSetting.GA + "\"></script><script>window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('config', '" + siteSeoSetting.GA + "');</script>";
                    }
                    if (!string.IsNullOrEmpty(siteSeoSetting.Baidu))
                    {
                        ViewBag.Baidu = @"<script>
                                                        var _hmt = _hmt || [];
                                                        (function() {
                                                            var hm = document.createElement('script');
                                                            hm.src = 'https://hm.baidu.com/hm.js?" + siteSeoSetting.Baidu + @"';
                                                            var s = document.getElementsByTagName('script')[0];
                                                            s.parentNode.insertBefore(hm, s);
                                                            })();
                                                        </script> ";
                    }
                    if (!string.IsNullOrEmpty(siteSeoSetting.GTM))
                    {
                        ViewBag.GTM_Head = @"<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
                                                        new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
                                                        j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
                                                        'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
                                                        })(window,document,'script','dataLayer','" + siteSeoSetting.GTM + @"');</script>
                                                        <!-- End Google Tag Manager -->";
                        ViewBag.GTM_Body = "<noscript><iframe src=\"https://www.googletagmanager.com/ns.html?id=" + siteSeoSetting.GTM + "\" height=\"0\" width=\"0\" style = \"display:none;visibility:hidden\"></iframe></noscript>";
                    }
                    if (siteSeoSetting.IsExtraCode)
                    {
                        ViewBag.ExtraCode = siteSeoSetting.ExtraCode;
                    }
                }
                pageCache.SiteID   = mSites.Id;
                pageCache.SiteName = mSites.Title;
                pageCache.SiteSN   = mSites.SN;
                PagesModels mPages = PagesDAO.GetPageInfo(mSites.Id, PageSN);
                if (mPages != null)
                {
                    pageCache.SiteID   = mPages.SiteID;
                    pageCache.MenuID   = mPages.MenuID;
                    pageCache.PageNO   = mPages.No;
                    pageCache.PageSN   = mPages.SN;
                    pageCache.SiteName = mSites.Title;
                    pageCache.SiteSN   = mSites.SN;
                    MenusModels mMenus = MenusDAO.GetInfo(mPages.SiteID, mPages.MenuID);

                    if (mMenus != null)
                    {
                        ShowStatus = mMenus.ShowStatus;
                    }
                    if (ShowStatus != 3)
                    {
                        ShowStatus = mPages.ShowStatus;
                    }

                    PageisExist         = true;
                    ViewBag.PageNo      = mPages.No;
                    ViewBag.Title       = mPages.Title;
                    ViewBag.MenuID      = mPages.MenuID;
                    ViewBag.SiteName    = mSites.Title;
                    ViewBag.FaviconPath = $"{WorkV3.Golbal.UpdFileInfo.GetVPathBySiteID(mSites.Id, "Header")}/{mSites.Favicon}";
                    #region 網頁SEO

                    if (mPages != null)
                    {
                        string imgUrl = "", description = "", author = "", Title = "";

                        SEOModels pageSEO = null;
                        if (PageSN == "RecruitDetail") //20190516 Nina 徵才需用ID取得SEO
                        {
                            long Id     = 0;
                            bool result = long.TryParse(Request.QueryString["ID"], out Id);
                            if (result)
                            {
                                pageSEO = PagesDAO.GetPageSEO(mPages.SiteID, mPages.No, mPages.Title, Id);
                            }
                        }
                        else
                        {
                            pageSEO = PagesDAO.GetPageSEO(mPages.SiteID, mPages.No, mPages.Title);
                        }

                        var    siteSEO      = Areas.Backend.Models.DataAccess.SiteSeoSettingDAO.GetItem(mPages.SiteID);
                        var    contentSEO   = PagesDAO.GetContentSEO(mPages.SiteID, mPages.MenuID, mPages.No);
                        string typeKeywords = contentSEO.Keywords;//PagesDAO.GetContentTypeKeyword(mPages.SiteID, mPages.MenuID, mPages.No);

                        if (!string.IsNullOrEmpty(mPages.Title))
                        {
                            ViewBag.SEO_Title = mPages.Title; // 以單頁的先給值
                        }
                        //先設定頁面的 SEO
                        //若PAGE SEO 存在, 則取代碼 => PAGE > SITE
                        if (pageSEO != null)
                        {
                            string UploadUrl = UpdFileInfo.GetVPathByMenuID(mPages.SiteID, mPages.MenuID).TrimEnd('/') + "/";
                            if (!string.IsNullOrEmpty(pageSEO.Title))
                            {
                                ViewBag.SEO_Title = pageSEO.Title;
                            }
                            if (!string.IsNullOrEmpty(pageSEO.Description))
                            {
                                ViewBag.SEO_Description = pageSEO.Description;
                            }
                            if (!string.IsNullOrEmpty(pageSEO.Author))
                            {
                                author = pageSEO.Author;
                            }
                            if (!string.IsNullOrEmpty(pageSEO.Copyright))
                            {
                                ViewBag.SEO_Copyright = pageSEO.Copyright;
                            }
                            if (!string.IsNullOrEmpty(pageSEO.Keywords))
                            {
                                ViewBag.SEO_Keywords = pageSEO.Keywords;
                            }
                            if (!string.IsNullOrEmpty(pageSEO.Image))
                            {
                                ViewBag.SEO_Image = UploadUrl + pageSEO.Image;
                            }
                            description = ViewBag.SEO_Description;
                            Title       = ViewBag.SEO_Title;
                        }
                        if (contentSEO != null)
                        {
                            if (!string.IsNullOrEmpty(contentSEO.SocialImage))
                            {
                                ViewBag.SEO_Image = contentSEO.SocialImage;
                            }
                            if (string.IsNullOrEmpty(description) && !string.IsNullOrEmpty(contentSEO.Description))
                            {
                                ViewBag.SEO_Description = contentSEO.Description;
                            }
                            if (string.IsNullOrEmpty(Title) && !string.IsNullOrEmpty(contentSEO.Title))
                            {
                                ViewBag.SEO_Title = contentSEO.Title;
                            }
                            if (contentSEO != null && !string.IsNullOrEmpty(contentSEO.Author))
                            {
                                author = author.Trim(';') + ";" + contentSEO.Author;
                            }
                        }
                        imgUrl = ViewBag.SEO_Image;
                        ViewBag.SEO_Keywords = typeKeywords;
                        //以SITE SEO 先給值, 若PAGE SEO 存在, 則取代碼 => PAGE > SITE
                        if (siteSEO != null)
                        {
                            if (!string.IsNullOrEmpty(siteSEO.Title) && string.IsNullOrEmpty(ViewBag.SEO_Title))
                            {
                                ViewBag.SEO_Title = siteSEO.Title;
                            }
                            if (!string.IsNullOrEmpty(siteSEO.Description) && string.IsNullOrEmpty(ViewBag.SEO_Description))
                            {
                                ViewBag.SEO_Description = siteSEO.Description;
                            }
                            if (!string.IsNullOrEmpty(siteSEO.Author))
                            {
                                author = author.Trim(';') + ";" + siteSEO.Author;
                            }
                            if (!string.IsNullOrEmpty(siteSEO.Copyright) && string.IsNullOrEmpty(ViewBag.SEO_Copyright))
                            {
                                ViewBag.SEO_Copyright = siteSEO.Copyright;
                            }
                            if (!string.IsNullOrEmpty(siteSEO.Keywords))
                            {
                                ViewBag.SEO_Keywords += (string.IsNullOrEmpty(ViewBag.SEO_Keywords) ? "" : ";") + siteSEO.Keywords;
                            }
                            WorkV3.Areas.Backend.Models.SocialSettingModels siteSocialSetting = WorkV3.Areas.Backend.Models.DataAccess.SocialSettingDAO.GetItem(mPages.SiteID);
                            if (siteSocialSetting != null && !string.IsNullOrEmpty(siteSocialSetting.SocialDefaultImage))
                            {
                                if (string.IsNullOrEmpty(imgUrl) && !string.IsNullOrEmpty(siteSocialSetting.SocialDefaultImage))
                                {
                                    string customImageFolder          = "SocialImage";
                                    WorkV3.Models.ImageModel imgModel = Newtonsoft.Json.JsonConvert.DeserializeObject <WorkV3.Models.ImageModel>(siteSocialSetting.SocialDefaultImage);
                                    string UploadUrl = UpdFileInfo.GetVPathBySiteID(mPages.SiteID, customImageFolder).TrimEnd('/') + "/";
                                    ViewBag.SEO_Image = UploadUrl + imgModel.Img;
                                }
                            }
                        }
                        ViewBag.SEO_Author = author.Trim(';');
                    }
                    #endregion
                }

                #region GA
                List <SitesModels.GAInfoCont> GA = new List <SitesModels.GAInfoCont>();
                if (!string.IsNullOrEmpty(mSites.GAInfo))
                {
                    GA = JsonConvert.DeserializeObject <List <SitesModels.GAInfoCont> >(mSites.GAInfo);
                }
                ViewBag.GA = GA;
                #endregion
            }
            ViewBag.SiteSN = SiteSN;
            ViewBag.PageSN = PageSN;
            ViewBag.Id     = id;
            PageCache.SetTempDataPageCache(TempData, pageCache);
            ViewBag.CustomCont = LoadCustomCont(pageCache);
            if (PageisExist == true)
            {
                if (ShowStatus == 3)
                {
                    Response.Redirect(Url.Action("PageNotFound", "ErrorPages"));
                }
                else
                {
                    #region 網頁點擊LOG
                    long?memberID = null;

                    WorkV3.Common.Member curUser = WorkV3.Common.Member.Current;
                    if (curUser != null)
                    {
                        memberID = curUser.ID;
                    }
                    string referUrl = "", referUrlTitle = "", referrerUrlPageNo = "";
                    if (Request.UrlReferrer != null)
                    {
                        referUrl = Request.UrlReferrer.AbsoluteUri;
                        if (referUrl.StartsWith(WorkLib.uUrl.GetURL()))
                        {
                            if (referUrl.Split('/').Length > 0)
                            {
                                string             pageSN   = referUrl.Split('/')[referUrl.Split('/').Length - 1];
                                Models.PagesModels pageInfo = Models.DataAccess.PagesDAO.GetPageInfo(pageCache.SiteID, pageSN);
                                if (pageInfo != null)
                                {
                                    referUrlTitle     = pageInfo.Title;
                                    referrerUrlPageNo = pageInfo.No.ToString();
                                }
                                else
                                {
                                    Models.MenusModels menuInfo = Models.DataAccess.MenusDAO.GetInfo(pageCache.SiteID, pageSN);
                                    if (menuInfo != null)
                                    {
                                        referUrlTitle     = menuInfo.Title;
                                        referrerUrlPageNo = menuInfo.Id.ToString();
                                    }
                                }
                            }
                        }
                    }
                    AddPageLog((long)pageCache.PageNO, mSites.Lang, 3, mSites.Id, getSessionID(), memberID, referUrl, referUrlTitle, referrerUrlPageNo);
                    #endregion
                    return(View());
                }
            }

            else
            {
                //客製start
                string DefaultWebSite = Request.Url.AbsoluteUri;

                if (DefaultWebSite.Contains("webdemo") || DefaultWebSite.Contains("localhost"))
                {
                    string DefaultSiteSN = GetItem.appSet("DefaultSiteSN").ToString();
                    if (DefaultSiteSN != null)
                    {
                        Response.Redirect("~/w/" + DefaultSiteSN + "/index");
                    }
                }
                else
                {
                    DefaultWebSite = DefaultWebSite.Replace("www.", "").Replace("http://", "").Replace(".com.tw/", "");
                    if (DefaultWebSite == "nhmc")
                    {
                        DefaultWebSite = "NewHopeMarketing";
                    }
                    else if (DefaultWebSite == "edec")
                    {
                        DefaultWebSite = "ELITEDREAM";
                    }
                    Response.Redirect("~/w/" + DefaultWebSite + "/index");
                }
                //客製end
            }

            return(View("EmptyPage"));
        }
Exemple #28
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="ID"></param>
        /// <param name="menuClass"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        public static IEnumerable <Menu> GetChildren(long ID, int menuClass = 3)
        {
            if (ID == 0)
            {
                return(new List <Menu>());
            }

            using (var conn = new SqlConnection(WebInfo.Conn))
            {
                Dictionary <string, object> param = new Dictionary <string, object>();
                param.Add("@ParentID", ID);

                string             sql      = "";
                IEnumerable <Menu> retValue = new List <Menu>();
                switch (menuClass)
                {
                case 1:

                    long siteId = BackendMenuDAO.GetSiteId(ID);
                    IEnumerable <MenusModels> submenu = MenusDAO.GetRootDataBySite(siteId);

                    foreach (MenusModels item in submenu)
                    {
                        item.GetChildren();
                    }

                    List <Menu> childMenu = new List <Menu>();
                    MenusModels lv1Menu   = new MenusModels();
                    MenusModels lv2Menu   = new MenusModels();
                    MenusModels lv3Menu   = new MenusModels();

                    lv1Menu.Type     = 1;
                    lv1Menu.Title    = "上導覽列";
                    lv1Menu.ID       = long.MaxValue;
                    lv1Menu.Children = submenu.Where(m => m.AreaID == 1);
                    lv2Menu.Type     = 1;
                    lv2Menu.Title    = "主選單";
                    lv2Menu.ID       = long.MaxValue - 1;
                    lv2Menu.Children = submenu.Where(m => m.AreaID == 2);
                    lv3Menu.Type     = 1;
                    lv3Menu.Title    = "下導覽列";
                    lv3Menu.ID       = long.MaxValue - 2;
                    lv3Menu.Children = submenu.Where(m => m.AreaID == 3);

                    if (lv1Menu.Children.Count() > 0)
                    {
                        childMenu.Add(lv1Menu);
                    }
                    if (lv2Menu.Children.Count() > 0)
                    {
                        childMenu.Add(lv2Menu);
                    }
                    if (lv3Menu.Children.Count() > 0)
                    {
                        childMenu.Add(lv3Menu);
                    }

                    return(childMenu);

                case 2:
                case 3:
                default:
                    sql = @" SELECT * 
                                 FROM BackendMenu
                                 WHERE ParentID = @ParentID 
                                 ORDER BY Sort ";

                    retValue = conn.Query <BackendMenuModel>(sql, param);
                    foreach (BackendMenuModel menu in retValue)
                    {
                        menu.GetChildren();
                    }
                    return(retValue);
                }
            }
        }
Exemple #29
0
        public ActionResult Edit(long siteId, long menuId, string type, long?id, long?templateId)
        {
            ViewBag.SiteID       = siteId;
            ViewBag.MenuID       = menuId;
            ViewBag.Types        = ArticleTypesDAO.GetIssueItems(menuId);
            ViewBag.Series       = ArticleSeriesDAO.GetIssueItems(menuId);
            ViewBag.Categories   = CategoryDAO.GetItems(FavorityType);
            ViewBag.Sites        = WorkV3.Models.DataAccess.SitesDAO.GetDatas();
            ViewBag.UploadUrl    = WorkV3.Golbal.UpdFileInfo.GetVPathByMenuID(siteId, menuId);
            ViewBag.ListIdentity = CategoryDAO.GetIssueItems(IdentityType);

            int cardStyleID             = 1;
            List <CardsModels> cardItem = CardsDAO.GetPageData(siteId, menuId);

            foreach (var cards in cardItem)
            {
                if (cards.CardsType == "Article")
                {
                    cardStyleID = cards.StylesID;
                    break;
                }
            }

            ArticleModels item = null;

            if (id != null)
            {
                item = ArticleDAO.GetItem((long)id);
                SetLinkDetailViewBag(item.LinkDetail);
            }

            if (item == null && templateId != null)
            {
                MenusModels menu         = MenusDAO.GetInfo(siteId, menuId);
                long        newArticleId = WorkLib.GetItem.NewSN();
                long        cardNo       = WorkV3.Golbal.PubFunc.AddPage(siteId, menuId, menu.SN, "Article", "Content", true, CardStyleId: cardStyleID);
                ArticleDAO.Copy((long)templateId, newArticleId, cardNo, menuId, siteId, true);
                item                 = ArticleDAO.GetItem(newArticleId);
                item.VideoType       = "youtube";
                ViewBag.FromTemplate = true;
            }

            if (item == null)
            {
                item = new ArticleModels {
                    ID = WorkLib.GetItem.NewSN(), Type = type, IsIssue = true
                };
                ViewBag.ArticleTypes      = new long[] { };
                ViewBag.ArticleSeries     = new long[] { };
                ViewBag.ArticleCategories = new long[] { };
                ViewBag.ArticlePosters    = new ArticlePosterModels[] { };
            }
            else
            {
                ViewBag.ArticleTypes      = ArticleDAO.GetItemTypes(item.ID);
                ViewBag.ArticleSeries     = ArticleDAO.GetItemSeries(item.ID);
                ViewBag.ArticleCategories = ArticleDAO.GetItemCategories(item.ID);

                IEnumerable <ArticlePosterModels> posters = ArticleDAO.GetItemPosters(item.ID);
                foreach (ArticlePosterModels p in posters)
                {
                    if (!string.IsNullOrWhiteSpace(p.Photo))
                    {
                        ResourceImagesModels photo = Newtonsoft.Json.JsonConvert.DeserializeObject <ResourceImagesModels>(p.Photo);
                        if (photo.Img != string.Empty)
                        {
                            p.Photo = photo.Img;
                        }
                    }
                }
                ViewBag.ArticlePosters = posters;
            }
            ViewBag.showMainVideo = false;
            if (item.VideoID != "")
            {
                ViewBag.showMainVideo = true;
            }

            return(View(item));
        }
Exemple #30
0
        public ActionResult MenuEdit_File(MenusModels MData, HttpPostedFileBase updFiles)
        {
            ViewBag.HasChildren = false;

            var childList = MenusDAO.GetChildren(MData.ID);

            if (childList != null && childList.Count() > 0)
            {
                ViewBag.HasChildren = true;
            }

            MenusDAO.Save_Single(MData);
            //單檔
            if (updFiles != null)
            {
                if (updFiles.ContentLength > 0)
                {
                    string uPath    = UpdFileInfo.GetUPathBySiteID(MData.SiteID, "Menus");
                    string fileName = UpdFileInfo.SaveFiles(updFiles, uPath);

                    ResourceFilesModels newFile = new ResourceFilesModels();

                    newFile.Id           = 1;
                    newFile.SiteID       = MData.SiteID;
                    newFile.SourceNo     = MData.ID;
                    newFile.SourceType   = (byte)SourceType.Menu;
                    newFile.Ver          = 1;
                    newFile.AreaID       = 1;
                    newFile.FileInfo     = fileName;
                    newFile.FileType     = ResourceFileType.inFile;
                    newFile.ClickType    = (byte)ClickType.OpenNewWin;
                    newFile.FileSize     = newFile.GetSize(uPath);
                    newFile.FileMimeType = newFile.GetMimeType();
                    ResourceFilesDAO.Save_Menu(newFile);
                }
                else
                {
                    ResourceFilesDAO.DelAll(MData.SiteID, MData.ID, (byte)SourceType.Menu, 1, 1);
                }
            }



            //多檔
            //List<ResourceFilesModels> newFileList = new List<ResourceFilesModels>();
            //int Count = 0;
            //foreach (var ff in updFiles)
            //{
            //    if (ff != null)
            //    {
            //        if (ff.ContentLength > 0)
            //        {
            //            Count += 1;
            //            var fileName = Path.GetFileName(ff.FileName);
            //            var path = Path.Combine(GetItem.UpdPath(GetItem.SiteID() + "\\Menus"), fileName);
            //            ff.SaveAs(path);

            //        }
            //    }
            //}

            SysLog.SaveLog(SysActions.Edit, SysMgrNo.Menu, MData.Title, MData.SiteID, MData.ID);
            TempData["refreshData"] = SysActions.Edit;
            Response.Redirect(Request.RawUrl);

            return(View());
        }