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); } }
/// <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); }
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); }
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)); }
/// <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); }
/// <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; } } }
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); } }
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); } }
/// <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); }