示例#1
0
        public void Copy(long siteId, long menuId, long[] ArticleIds, long TargetMenuID)
        {
            ViewBag.SiteID     = siteId;
            ViewBag.MenuID     = menuId;
            ViewBag.ActionType = "copy";
            if (ArticleIds.Length == 0)
            {
                return;
            }

            var targetMenu = MenusDAO.GetInfo(TargetMenuID);

            foreach (long ArticleId in ArticleIds)
            {
                ArticleModels articleItem = ArticleDAO.GetItem(ArticleId);
                CardsModels   cardItem    = CardsDAO.GetByNo(articleItem.CardNo);
                ZonesModels   zoneItem    = ZonesDAO.GetByNo(cardItem.ZoneNo.Value);
                PagesModels   pageItem    = PagesDAO.GetPageInfo(zoneItem.PageNo);

                long newCardNo       = WorkV3.Golbal.PubFunc.CopyPage(pageItem, targetMenu.SiteID, targetMenu.ID);
                long newArticleId    = WorkLib.GetItem.NewSN();
                bool IsForceRelative = false;
                if (pageItem.SiteID == targetMenu.SiteID && pageItem.MenuID == targetMenu.ID)
                {
                    IsForceRelative = true;
                }
                ArticleDAO.CopyArticle(ArticleId, newArticleId, newCardNo, targetMenu.ID, targetMenu.SiteID, IsForceRelative);
                WorkV3.Golbal.PubFunc.CopyIcon(articleItem.Icon, siteId, menuId, targetMenu.SiteID, targetMenu.ID);
                WorkV3.Golbal.PubFunc.CopyParagraphPhotos(articleItem.ID, siteId, menuId, targetMenu.SiteID, targetMenu.ID);
            }
        }
示例#2
0
        /// <summary>
        /// 為一個主頁面增加相關的 Page、Zone、Card 信息
        /// </summary>
        /// <param name="sourcePage">原始頁面</param>
        /// <param name="targetSiteId">站點 ID</param>
        /// <param name="targetMenuId">選單 ID</param>
        /// <returns>返回 CardID</returns>
        public static long CopyPage(PagesModels sourcePage, long targetSiteId, long targetMenuId)
        {
            long CardNO = 0;

            long        PageNo    = WorkLib.GetItem.NewSN();
            var         sourceMnu = WorkV3.Models.DataAccess.MenusDAO.GetInfo(sourcePage.SiteID, sourcePage.MenuID);
            var         targetMnu = WorkV3.Models.DataAccess.MenusDAO.GetInfo(targetSiteId, targetMenuId);
            PagesModels newPage   = new PagesModels
            {
                No     = PageNo,
                SiteID = targetSiteId,
                MenuID = targetMenuId,
                SN     = targetMnu.SN,
                Title  = sourcePage.Title + "- (複製)"
            };

            newPage.SN += "_" + newPage.No;
            //WorkLib.WriteLog.Write(true, "newPage.No:" + newPage.No.ToString()+"/"+ newPage.Title);
            SysLog.SaveLog(SysActions.Add, SysMgrNo.Page, newPage.Title, targetSiteId, targetMenuId, PageNo);
            PagesDAO.SetPageInfo(newPage);

            var sourceZones = WorkV3.Models.DataAccess.ZonesDAO.GetPageData(sourcePage.SiteID, sourcePage.No);

            foreach (WorkV3.Models.ZonesModels sourceZone in sourceZones)
            {
                ZonesModels newZone = new ZonesModels
                {
                    No         = WorkLib.GetItem.NewSN(),
                    SiteID     = targetSiteId,
                    PageNo     = newPage.No,
                    StyleID    = sourceZone.StyleID,
                    Sort       = sourceZone.Sort,
                    ShowStatus = sourceZone.ShowStatus
                };
                ZonesDAO.SetZoneInfo(newZone);

                var sourceCards = WorkV3.Models.DataAccess.CardsDAO.GetZoneData(sourceZone.SiteID, sourceZone.No);
                foreach (WorkV3.Models.CardsModels sourceCard in sourceCards)
                {
                    CardsModels newCard = new CardsModels
                    {
                        No         = WorkLib.GetItem.NewSN(),
                        ZoneNo     = newZone.No,
                        CardsType  = sourceCard.CardsType,
                        ViewAction = sourceCard.ViewAction,
                        Status     = sourceCard.Status,
                        StylesID   = sourceCard.StylesID
                    };
                    CardsDAO.SetCardInfo(newCard);
                    if (newCard.CardsType == "Article" || newCard.CardsType == "Event")
                    {
                        CardNO = newCard.No;
                    }
                }
            }
            return(CardNO);
        }
示例#3
0
        public ActionResult AddMode(long SiteID, long MenuID, long PageNo, string DataType, string ZoneSN)
        {
            List <CardsTypeModels> CList = CardsTypeDAO.GetData();

            ViewBag.CardsTypeList = CList.Where(dr => dr.isIndexCards).ToList();
            if (string.IsNullOrEmpty(DataType))
            {
                return(new HttpNotFoundResult());
            }
            var selectCardsType = CList.Where(dr => dr.isIndexCards && dr.Code == DataType);

            if (selectCardsType == null || selectCardsType.Count() <= 0)
            {
                return(new HttpNotFoundResult());
            }
            var zoneModels = WorkV3.Models.DataAccess.ZonesDAO.GetPageData(SiteID, PageNo);

            WorkV3.Areas.Backend.Models.ZonesModels zModel = new ZonesModels();
            zModel.No         = WorkLib.GetItem.NewSN();
            zModel.Ver        = 1;
            zModel.SiteID     = SiteID;
            zModel.PageNo     = PageNo;
            zModel.SN         = ZoneSN;
            zModel.Sort       = Convert.ToByte(zoneModels.Count - 1 < 0 ? 1 : zoneModels.Count);
            zModel.StyleID    = 1;
            zModel.Creator    = MemberDAO.SysCurrent.Id;
            zModel.CreateTime = DateTime.Now;
            WorkV3.Areas.Backend.Models.CardsModels cModel = new CardsModels();
            cModel.No     = WorkLib.GetItem.NewSN();
            cModel.Lang   = "zh-Hant";
            cModel.Ver    = 1;
            cModel.ZoneNo = zModel.No;
            cModel.SN     = selectCardsType.First().Code;
            //cModel.Title = ZoneSN;
            cModel.Title      = selectCardsType.First().Title;
            cModel.CardsType  = selectCardsType.First().Code;
            cModel.StylesID   = 1;
            cModel.Status     = 1;
            cModel.Creator    = MemberDAO.SysCurrent.Id;
            cModel.CreateTime = DateTime.Now;
            WorkV3.Areas.Backend.Models.DataAccess.ZonesDAO.SetZoneInfo(zModel);
            WorkV3.Areas.Backend.Models.DataAccess.CardsDAO.SetCardInfo(cModel);


            TempData["refreshData"] = 1;

            ViewBag.SiteID          = SiteID;
            ViewBag.MenuID          = MenuID;
            ViewBag.PageID          = PageNo;
            ViewBag.DefaultZoneName = GetDefaultSN(SiteID, PageNo);
            return(View());
            //Response.Redirect(Request.RawUrl);
        }
示例#4
0
        public ActionResult Zone(ZonesModels Zone)
        {
            List <CardsModels> Cards;

            ViewBag.ZoneNo = Zone.No;

            //取得該Zone底下的Card集合
            if (Zone.AreaSetID == null)
            {
                Cards = CardsDAO.GetZoneData(Zone.SiteID, Zone.No);
                if (Cards != null && Zone.CardsModels != null)
                {
                    //Zone.CardsModels 有資料時代表有右側廣告
                    List <CardsModels> RightSideAd = Zone.CardsModels.OrderBy(m => m.TempSort).ToList();
                    foreach (CardsModels card in Cards)
                    {
                        RightSideAd.Insert(0, card);
                    }
                    Cards = RightSideAd;
                }
            }
            else
            {
                Cards = AdvertisementRenderTools.GenCard(Zone); //AreaSetID不為Null代表為廣告
            }
            var articleCars = Cards.Where(card => card.CardsType == "Article");

            if (articleCars != null && articleCars.Count() > 0)
            {
                WorkV3.Common.SitePage curPage = WorkV3.Models.DataAccess.CardsDAO.GetPage(articleCars.First().No);
                var article = ArticleDAO.GetItemByCard(articleCars.First().No);
                if (article != null)
                {
                    var imageTextList = ImageTextDAO.Get(article.ID, true, null);
                    if (imageTextList != null && imageTextList.Count() > 0)
                    {
                        Zone.StyleID = 9;
                    }
                }
            }
            return(PartialView("Zones/_Style" + Zone.StyleID, Cards));
        }
示例#5
0
        /// <summary>
        /// 產生Card Model
        /// </summary>
        /// <param name="Zone"></param>
        /// <returns></returns>
        public static List <CardsModels> GenCard(ZonesModels Zone)
        {
            List <CardsModels> Cards = new List <CardsModels>();

            Cards.Add(new CardsModels()
            {
                No                  = WorkLib.GetItem.NewSN(),
                ZoneNo              = Zone.No,
                CardsType           = "AdvertisementRender",
                Status              = 1,
                SiteID              = Zone.SiteID,
                PageNo              = Zone.PageNo,
                AreaSetID           = (long)Zone.AreaSetID,
                StylesID            = Zone.ToCardStyleID,
                AdvertisementMenuID = GetAdvertisementMenuID(Zone.SiteID),
                GroupPosition       = Zone.GroupPosition,
                MenuID              = Zone.MenuID,
                TempSort            = Zone.TempSort
            });
            return(Cards);
        }
示例#6
0
        /// <summary>
        /// 設定右側廣告Card
        /// </summary>
        /// <param name="datas"></param>
        /// <param name="item"></param>
        /// <param name="Position"></param>
        private void SetRightSideAdCard(List <ZonesModels> datas, AdvertisementRenderIndex item, int Position, string TargetDataType)
        {
            foreach (var zone in datas)
            {
                long cardNo = AdvertisementRenderTools.QueryCardNoByZoneNoAndTypeStr(zone.No, TargetDataType);
                if (cardNo != 0)
                {
                    ZonesModels zonemodel = GenZoneModel(item, Position);
                    CardsModels cardmodel = AdvertisementRenderTools.GenCard(zonemodel).FirstOrDefault();

                    if (zone.CardsModels == null)
                    {
                        zone.CardsModels = new List <CardsModels>();
                    }

                    zone.CardsModels.Add(cardmodel);
                    zone.StyleID = 9;
                    break;
                }
            }
        }
示例#7
0
        public void Move(long siteId, long menuId, long[] ArticleIds, long TargetMenuID)
        {
            ViewBag.SiteID     = siteId;
            ViewBag.MenuID     = menuId;
            ViewBag.ActionType = "move";
            if (ArticleIds.Length == 0)
            {
                return;
            }
            foreach (long ArticleId in ArticleIds)
            {
                ArticleModels articleItem = ArticleDAO.GetItem(ArticleId);
                CardsModels   cardItem    = CardsDAO.GetByNo(articleItem.CardNo);
                ZonesModels   zoneItem    = ZonesDAO.GetByNo(cardItem.ZoneNo.Value);
                PagesModels   pageItem    = PagesDAO.GetPageInfo(zoneItem.PageNo);

                var targetMenu = MenusDAO.GetInfo(TargetMenuID);
                WorkV3.Golbal.PubFunc.MovePage(pageItem, targetMenu.SiteID, targetMenu.ID);
                ArticleDAO.Move(ArticleId, targetMenu.ID, targetMenu.SiteID);
                WorkV3.Golbal.PubFunc.CopyIcon(articleItem.Icon, siteId, menuId, targetMenu.SiteID, targetMenu.ID);
                WorkV3.Golbal.PubFunc.CopyParagraphPhotos(articleItem.ID, siteId, menuId, targetMenu.SiteID, targetMenu.ID);
            }
        }
示例#8
0
        public static void SetZoneInfo(ZonesModels zone)
        {
            SQLData.Database    db       = new SQLData.Database(WebInfo.Conn);
            SQLData.TableObject tableObj = db.GetTableObject("Zones");
            tableObj.GetDataFromObject(zone);

            string sql   = $"Select 1 From Zones Where No = { zone.No } AND Ver = { zone.Ver } AND SiteID = { zone.SiteID } AND PageNo = { zone.PageNo }";
            bool   isNew = db.GetFirstValue(sql) == null;

            if (isNew)
            {
                tableObj["Creator"]    = WorkV3.Areas.Backend.Models.DataAccess.MemberDAO.SysCurrent.Id;
                tableObj["CreateTime"] = DateTime.Now;

                tableObj.Insert();
            }
            else
            {
                string[] removeFields = { "No", "Ver", "SiteID", "PageNo", "Creator", "CreateTime" };
                foreach (string field in removeFields)
                {
                    tableObj.Remove(field);
                }

                tableObj["Modifier"]   = WorkV3.Areas.Backend.Models.DataAccess.MemberDAO.SysCurrent.Id;
                tableObj["ModifyTime"] = DateTime.Now;

                SQLData.ParameterCollection keys = new SQLData.ParameterCollection();
                keys.Add("@No", zone.No);
                keys.Add("@Ver", zone.Ver);
                keys.Add("@SiteID", zone.SiteID);
                keys.Add("@PageNo", zone.PageNo);

                tableObj.Update(keys);
            }
        }
示例#9
0
        /// <summary>
        /// 為一個主頁面增加相關的 Page、Zone、Card 信息
        /// </summary>
        /// <param name="siteId">站點 ID</param>
        /// <param name="menuId">選單 ID</param>
        /// <param name="name">頁面名稱</param>
        /// <param name="cardType">Card 类型(對應到 Controller)</param>
        /// <param name="viewAction">操作(對應到 Controller Action)</param>
        /// <param name="appendIdToName">是否將 ID 附加到頁面名稱後</param>
        /// <param name="title">頁面標題</param>
        /// <param name="styleId">指定樣式</param>
        /// <returns>返回 CardID</returns>
        public static long AddPage(long siteId, long menuId, string name, string cardType, string viewAction = null, bool appendIdToName = false, string title = null, int ZoneStyleId = 1, bool isMenuAdd = false, int CardStyleId = 1)
        {
            long CardNO = 0;

            long PageNo = WorkLib.GetItem.NewSN();

            if (isMenuAdd == true)
            {
                PageNo = menuId;
            }

            PagesModels page = new PagesModels
            {
                No     = PageNo,
                SiteID = siteId,
                MenuID = menuId,
                SN     = name,
                Title  = title
            };

            if (appendIdToName)
            {
                page.SN += "_" + page.No;
            }

            SysLog.SaveLog(SysActions.Add, SysMgrNo.Page, title, siteId, menuId, PageNo);
            PagesDAO.SetPageInfo(page);



            #region 增加動態 ZONE、CARD
            switch (cardType)
            {
            //例外的卡
            case "Intro":

                break;

            default:

                ZonesModels zone = new ZonesModels
                {
                    No         = WorkLib.GetItem.NewSN(),
                    SiteID     = siteId,
                    PageNo     = page.No,
                    StyleID    = ZoneStyleId,
                    Sort       = 10, //需排在固定項後
                    ShowStatus = 1
                };
                ZonesDAO.SetZoneInfo(zone);
                if (string.IsNullOrEmpty(viewAction) && cardType == "Form")
                {
                    viewAction = "Edit";
                }
                CardsModels card = new CardsModels
                {
                    No         = WorkLib.GetItem.NewSN(),
                    ZoneNo     = zone.No,
                    CardsType  = cardType,
                    StylesID   = CardStyleId,
                    ViewAction = viewAction,
                    Status     = 1
                };
                CardsDAO.SetCardInfo(card);
                CardNO = card.No;
                break;
            }


            #endregion

            if (cardType == "Reward")
            {
                return(CardNO);// wei 20180914 集點捨去固定ZONE內容
            }
            #region 固定ZONE
            //CardsType,Zones.Style,Zones.Sort,Cards.StyleID
            string[,] FixedItem = { { "Header", "1000", "1", WebInfo.StyleHeader }, { "BreadCrumbs", "1002", "5", "1" }, { "Footer", "1001", "20", WebInfo.StyleFooter } };

            if (FixedItem.Rank > 0)
            {
                for (int i = 0; i < FixedItem.GetLength(0); i++)
                {
                    if (page.SN.ToLower() == "index" && FixedItem[i, 0] == "BreadCrumbs")
                    {
                    }
                    else
                    {
                        ZonesModels NewZone = new ZonesModels
                        {
                            No         = WorkLib.GetItem.NewSN(),
                            SiteID     = siteId,
                            PageNo     = page.No,
                            StyleID    = int.Parse(FixedItem[i, 1]),
                            Sort       = byte.Parse(FixedItem[i, 2]),
                            ShowStatus = 1
                        };
                        ZonesDAO.SetZoneInfo(NewZone);
                        CardsModels NewCard = new CardsModels
                        {
                            No        = WorkLib.GetItem.NewSN(),
                            ZoneNo    = NewZone.No,
                            CardsType = FixedItem[i, 0],
                            Status    = 1,
                            StylesID  = int.Parse(FixedItem[i, 3])
                        };
                        CardsDAO.SetCardInfo(NewCard);
                    }
                }
            }

            #endregion

            return(CardNO);
        }