Пример #1
0
        private void RecommendHandler2(long id, ArticleSettingModels setting, string uploadUrl, IEnumerable <ArticleTypesModels> types)
        {
            if (setting.ExtendReadOpen2)
            {
                IEnumerable <ArticleModels> recommends         = ArticleDAO.GetRecommendItems2(setting, id, types.Select(t => t.ID));
                Dictionary <long, SitePage> recommendSitePages = CardsDAO.GetPages(recommends.Select(r => r.CardNo));

                Dictionary <long, dynamic> imgPathInfo = new Dictionary <long, dynamic>();
                imgPathInfo.Add(setting.MenuID, new { Setting = setting, UploadUrl = uploadUrl });

                foreach (ArticleModels item in recommends)
                {
                    SitePage page = recommendSitePages[item.CardNo];

                    dynamic pathInfo;
                    if (!imgPathInfo.TryGetValue(page.MenuID, out pathInfo))
                    {
                        ArticleSettingModels newSetting = ArticleSettingDAO.GetItem(page.MenuID);
                        string newUploadUrl             = UpdFileInfo.GetVPathByMenuID(page.SiteID, page.MenuID).TrimEnd('/') + "/";
                        pathInfo = new { Setting = newSetting, UploadUrl = newUploadUrl };
                        imgPathInfo.Add(page.MenuID, pathInfo);
                    }

                    string img = item.GetFirstImg(pathInfo.Setting);
                    item.Icon = string.IsNullOrWhiteSpace(img) ? string.Empty : pathInfo.UploadUrl + img;
                }

                ViewBag.Recommends2         = recommends;
                ViewBag.RecommendSitePages2 = recommendSitePages;
            }
        }
Пример #2
0
        public ActionResult Edit(CardsModels model)
        {
            if (!ModelState.IsValid)
            {
                ViewBag.IsValid = false;
                return(View(model));
            }

            var strDescriptions = model.Descriptions.ReplaceEnterToBr().TrimTags();

            if (strDescriptions == "請填入內文")
            {
                model.Descriptions = "";
            }

            DateTime now = DateTime.Now;

            model.Modifier   = MemberDAO.SysCurrent.Id;
            model.ModifyTime = now;

            int result = CardsDAO.UpdateTitleAndDescriptions(model.No, model.Title, model.Descriptions);

            if (result == 0)
            {
                ViewBag.EditResult = "儲存發生錯誤";
            }
            else
            {
                ViewBag.EditResult = "儲存成功";
            }

            return(View(model));
        }
Пример #3
0
        public ActionResult Render(long SiteID, long ZoneNo)
        {
            List <ImageTextModel> imageTextList = new List <ImageTextModel>();
            var Zone  = CardsDAO.GetZoneInfo(ZoneNo);
            var Cards = CardsDAO.GetZoneData(SiteID, ZoneNo);

            string RenderViewFileName = "~/Views/Article/ImageTextListStyleDefault.cshtml";

            if (Cards != null && Cards.Count > 0)
            {
                foreach (CardsModels Card in Cards)
                {
                    if (Card.CardsType == "Article")
                    {
                        WorkV3.Common.SitePage curPage = WorkV3.Models.DataAccess.CardsDAO.GetPage(Card.No);
                        ViewBag.UploadVPath = UpdFileInfo.GetVPathByMenuID(curPage.SiteID, curPage.MenuID);
                        var article = ArticleDAO.GetItemByCard(Card.No);
                        if (article != null)
                        {
                            imageTextList = ImageTextDAO.Get(article.ID, true, null);
                            string ViewFileName = string.Format("~/Views/Article/ImageTextListStyle{0}.cshtml", Card.StylesID.ToString());
                            if (System.IO.File.Exists(Server.MapPath(ViewFileName)))
                            {
                                RenderViewFileName = ViewFileName;
                            }
                        }
                    }
                }
            }
            return(View(RenderViewFileName, imageTextList));
        }
Пример #4
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);
            }
        }
Пример #5
0
        public ActionResult Edit(long siteId, CardsModels model, Captcha captcha)
        {
            SitePage  curPage = CardsDAO.GetPage(model.No);
            FormModel item    = FormDAO.GetItemFromSourceID(curPage.MenuID);

            if (item.HasCaptcha)
            {
                if (captcha == null || !captcha.Validate())
                {
                    return(new HttpStatusCodeResult(System.Net.HttpStatusCode.NonAuthoritativeInformation, "驗證碼錯誤"));
                }
            }

            FormItem formItem = FormItemSave(item);

            SendEmail(curPage.SiteID, item, formItem);

            ViewBag.CurPage         = curPage;
            ViewBag.FormItem        = formItem;
            ViewBag.UploadDesignUrl = Golbal.UpdFileInfo.GetVPathBySiteID(curPage.SiteID, formDesignFileDir).TrimEnd('/') + "/";
            ViewBag.UploadUrl       = Golbal.UpdFileInfo.GetVPathByMenuID(curPage.SiteID, curPage.MenuID);
            ViewBag.Int64Convert    = new Golbal.Int64Converter();

            ViewBag.Exit = true;

            return(View(item));
        }
Пример #6
0
        public ActionResult Next(long siteId, long menuId, int style, int pageIndex)
        {
            int totalRecord;
            IEnumerable <ArticleModels> items = CustomArticleDAO.GetItems(menuId, 20, pageIndex, out totalRecord);

            ViewBag.ItemPages = CardsDAO.GetPages(items.Select(item => item.CardNo));
            ViewBag.ItemTypes = ArticleDAO.GetItemTypes(items.Select(item => item.ID));
            return(View("NextStyle" + style, items));
        }
Пример #7
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);
        }
Пример #8
0
        public ActionResult Edit(CardsModels model)
        {
            SitePage curPage = CardsDAO.GetPage(model.No);

            ViewBag.CurPage = curPage;

            FormModel item = FormDAO.GetItemFromSourceID(curPage.MenuID);

            ViewBag.UploadDesignUrl = Golbal.UpdFileInfo.GetVPathBySiteID(curPage.SiteID, formDesignFileDir).TrimEnd('/') + "/";
            ViewBag.UploadUrl       = Golbal.UpdFileInfo.GetVPathByMenuID(curPage.SiteID, curPage.MenuID);
            ViewBag.Int64Convert    = new Golbal.Int64Converter();
            return(View(item));
        }
Пример #9
0
        public ActionResult Index(CardsModels model)
        {
            // 注意:CardsModels 中的 MenuID 是無效的
            long menuId = CardsDAO.GetMenuID(model.No);

            ArticleIntroModels intro = ArticleIntroDAO.GetItem(model.No);

            ViewBag.SiteID = model.SiteID;
            ViewBag.MenuID = menuId;
            ViewBag.Style  = model.StylesID == 0 ? 1 : model.StylesID;

            return(View(intro));
        }
Пример #10
0
        public ActionResult Next(long siteId, long cardNo, int style, int pageIndex)
        {
            ArticleSetModels setting = ArticleSetDAO.GetItem(cardNo);

            ViewBag.Setting = setting;

            IEnumerable <ArticleModels> items = ArticleDAO.GetItems(setting, pageIndex);

            ViewBag.ItemPages = CardsDAO.GetPages(items.Select(item => item.CardNo));
            ViewBag.ItemTypes = ArticleDAO.GetItemTypes(items.Select(item => item.ID));

            // style = 2;
            return(View("NextStyle" + style, items));
        }
Пример #11
0
        public ActionResult Next(long siteId, long menuId, int style, int pageIndex, string key, string type, long?typeId)
        {
            ArticleSettingModels setting = ArticleSettingDAO.GetItem(menuId);

            int totalRecord;
            IEnumerable <ArticleModels> items = ArticleDAO.GetItems(setting, key, type, typeId, pageIndex, out totalRecord);

            ViewBag.ItemPages = CardsDAO.GetPages(items.Select(item => item.CardNo));
            ViewBag.ItemTypes = ArticleDAO.GetItemTypes(items.Select(item => item.ID));

            ViewBag.UploadUrl = WorkV3.Golbal.UpdFileInfo.GetVPathByMenuID(siteId, menuId).TrimEnd('/') + "/";
            ViewBag.Setting   = setting;
            return(View("NextStyle" + style, items));
        }
Пример #12
0
        public ActionResult Edit(long No)
        {
            var model = CardsDAO.GetByNo(No);

            if (model == null)
            {
                return(RedirectToAction("List"));
            }

            if (string.IsNullOrWhiteSpace(model.Descriptions))
            {
                model.Descriptions = "請填入內文";
            }
            return(View(model));
        }
Пример #13
0
        public static void SaveArticleDelLog(long ArticleID)
        {
            var articleInfo = ArticleDAO.GetItem(ArticleID);

            if (articleInfo != null)
            {
                var cardInfo = CardsDAO.GetByNo(articleInfo.CardNo);
                if (cardInfo != null && cardInfo.ZoneNo.HasValue)
                {
                    var zoneInfo = ZonesDAO.GetByNo(cardInfo.ZoneNo.Value);
                    if (zoneInfo != null)
                    {
                        SysLog.SaveLog(SysActions.Del, SysMgrNo.Page, articleInfo.Title, articleInfo.SiteID, articleInfo.MenuID, zoneInfo.PageNo);
                    }
                }
            }
        }
Пример #14
0
        public ActionResult Index(CardsModels model)
        {
            ArticleSetModels setting = ArticleSetDAO.GetItem(model.No);

            ViewBag.Setting = setting;

            IEnumerable <ArticleModels> items = ArticleDAO.GetItems(setting);

            ViewBag.ItemPages = CardsDAO.GetPages(items.Select(item => item.CardNo));
            ViewBag.ItemTypes = ArticleDAO.GetItemTypes(items.Select(item => item.ID));

            ViewBag.SiteID = model.SiteID;
            int style = model.StylesID == 0 ? 1 : model.StylesID;

            // style = 3;
            return(View("Style" + style, items));
        }
Пример #15
0
    /// <summary>
    /// Cast a WonderDAO steps array into the Wonder applicable steps array.
    /// </summary>
    /// <param name="wonderDAO">The object containing the steps information.</param>
    /// <returns>The list of wonder steps.</returns>
    private static List <Step> GetSteps(WonderDAO wonderDAO)
    {
        List <Step> steps = new List <Step>();

        foreach (WonderDAO.StepDAO stepDAO in wonderDAO.Steps)
        {
            steps.Add(new Step(
                          CardsDAO.GetResources(stepDAO.StepBuildCondition.ToList()),
                          stepDAO.StepTypes.Cast <StepType>().ToArray(),
                          stepDAO.Reward != null ? CardsDAO.GetReward(stepDAO.Reward.ToList()): new BonusCard.RewardQuantity[0],
                          stepDAO.WarPoints,
                          (AcquisitionType)stepDAO.TradeType,
                          (BonusCard.ResourceMetaType)stepDAO.Resources,
                          (BuilderType)stepDAO.BuildType
                          ));
        }

        return(steps);
    }
Пример #16
0
        public ActionResult Setting(long cardNo)
        {
            SitePage page = CardsDAO.GetPage(cardNo);

            SettingInit(cardNo, page);

            ArticleSetModels item = ArticleSetDAO.GetItem(cardNo);

            if (item == null)
            {
                item = new ArticleSetModels {
                    PagingMode   = "點擊看更多",
                    PageSize     = 10,
                    IssueSetting = "0", // 刊登期間內的當期資料
                    SortMode     = "時間排序"
                };
            }
            return(View(item));
        }
Пример #17
0
        // GET: BackEnd
        public ActionResult Index(string SiteSN)
        {
            ViewBag.Member    = Session[WebInfo.SysMemSkey] == null ?null:(Request.Cookies["sessionId"] != null? MemberDAO.Current(Request.Cookies["sessionId"].Value): null);
            ViewBag.UploadUrl = uploadUrl;
            if (ViewBag.Member != null)
            {
                WorkV3.Models.SitesModels SiteItem = WorkV3.Models.DataAccess.SitesDAO.GetSiteInfo(SiteSN);
                if (SiteItem != null)
                {
                    MemberModels mem = MemberDAO.SysCurrent;

                    PageCache.SiteID   = SiteItem.Id;
                    PageCache.SiteName = SiteItem.Title;
                    ViewBag.SiteSN     = SiteSN;
                    ViewBag.SiteID     = PageCache.SiteID;
                    ViewBag.SiteName   = PageCache.SiteName;
                    List <MenusModels> mm = MenusDAO.GetData(PageCache.SiteID);

                    long                  siteId      = PageCache.SiteID;
                    List <Menu>           backendMenu = BackendMenuDAO.GetRoots(siteId).ToList();
                    List <CardsViewModel> cards       = CardsDAO.GetBySiteID(PageCache.SiteID);
                    MemberModels          curUser     = ViewBag.Member;
                    GroupModels           group       = ViewBag.Member == null ? new GroupModels() : GroupDAO.GetItem(curUser.GroupId, siteId);

                    ViewBag.MenuList    = mm;
                    ViewBag.Cards       = cards;
                    ViewBag.CardTypes   = CardsTypeDAO.GetData();
                    ViewBag.BackendMenu = backendMenu;
                    ViewBag.Permissions = group.GetPermissions(siteId);
                }
                else
                {
                    Response.Redirect(Url.Action("Sites"));
                }
                return(View());
            }
            else
            {
                Response.Redirect(Url.Action("Login"));
                return(View());
            }
        }
Пример #18
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));
        }
Пример #19
0
    /// <summary>
    /// Distribute appropriate cards to all players.
    /// </summary>
    public void DistributeCards()
    {
        List <Card> availableCards = CardsDAO.GetCards(NbPlayers, Age);

        if (Age == 3)
        {
            availableCards = this.RemoveExtraGuildCards(availableCards);
        }

        Random rand = new Random();

        foreach (Player player in this.Players)
        {
            for (int i = 0; i < GameConsts.STARTING_CARDS_NUMBER; i++)
            {
                Card nextCard = availableCards.ElementAt(rand.Next(availableCards.Count));
                player.Hand.Add(nextCard);
                availableCards.Remove(nextCard);
            }
        }
    }
Пример #20
0
        public ActionResult Index(string SiteSN, string PageSN, string type)
        {
            var mSites = SitesDAO.GetSiteInfo(SiteSN);

            if (mSites != null)
            {
                var mPages = PagesDAO.GetPageInfo(mSites.Id, PageSN);

                if (mPages != null)
                {
                    //取得該Page底下的Zone集合
                    var zones = ZonesDAO.GetPageData(mPages.SiteID, mPages.No);

                    foreach (var zone in zones)
                    {
                        var cards = CardsDAO.GetZoneData(zone.SiteID, zone.No);

                        var card = cards.Where(x => x.CardsType != "Header" && x.CardsType != "BreadCrumbs" && x.CardsType != "Footer").FirstOrDefault();

                        if (card != null)
                        {
                            ViewBag.Type     = type;
                            ViewBag.Title    = mPages.Title;
                            ViewBag.SiteName = mSites.Title;
                            return(View(card));
                        }
                    }
                }
            }

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

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

            return(RedirectToAction("EmptyPage", "Home"));
        }
Пример #21
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);
            }
        }
Пример #22
0
        public ActionResult Index(CardsModels model, int?index)
        {
            ViewBag.SiteID = model.SiteID;
            SitePage page = CardsDAO.GetPage(model.No);

            ViewBag.SitePage = page;
            ViewBag.CardNo   = model.No;

            int        pageIndex  = index ?? 1;
            Pagination pagination = new Pagination {
                PageSize = 20, PageIndex = index ?? 1
            };

            int totalRecord;
            IEnumerable <ArticleModels> items = CustomArticleDAO.GetItems(page.MenuID, pagination.PageSize, pagination.PageIndex, out totalRecord);

            ViewBag.ItemTypes = ArticleDAO.GetItemTypes(items.Select(item => item.ID));
            ViewBag.ItemPages = CardsDAO.GetPages(items.Select(item => item.CardNo));

            int style = model.StylesID == 0 ? 1 : model.StylesID;

            return(View("ListStyle" + style, items));
        }
Пример #23
0
        public ActionResult Setting(long cardNo, ArticleSetModels item)
        {
            SitePage page = CardsDAO.GetPage(cardNo);

            SettingInit(cardNo, page);

            if (item.SortMode == "隨機排序")
            {
                item.SortField = "NewID()";
            }

            if (!string.IsNullOrWhiteSpace(item.DefaultImg))
            {
                ResourceImagesModels imgModel = Newtonsoft.Json.JsonConvert.DeserializeObject <ResourceImagesModels>(item.DefaultImg);
                if (imgModel.ID == 0)   // 新上傳的圖片
                {
                    HttpPostedFileBase postedFile = Request.Files["fDefaultImg"];
                    if (postedFile == null || postedFile.ContentLength == 0)
                    {
                        item.DefaultImg = string.Empty;
                    }
                    else
                    {
                        string saveName = WorkV3.Golbal.UpdFileInfo.SaveFilesByMenuID(postedFile, page.SiteID, page.MenuID);
                        imgModel.ID  = 1;
                        imgModel.Img = saveName;

                        item.DefaultImg = Newtonsoft.Json.JsonConvert.SerializeObject(imgModel);
                    }
                }
            }

            ArticleSetDAO.SetItem(item);

            ViewBag.Success = true;
            return(View(item));
        }
Пример #24
0
        public ActionResult List(long siteId, long menuId)
        {
            WorkV3.Models.PagesModels pageModel;
            try
            {
                pageModel = pageRepository.GetItem(menuId, "MenuID");
            }
            catch (Exception)
            {
                pageModel = pageRepository.GetItem(new Dictionary <string, object> {
                    { "SiteID", siteId },
                    { "SN", homePageSN }
                });
            }
            ViewBag.SiteID = siteId;
            ViewBag.MenuID = menuId;
            ViewBag.PageNo = pageModel.No;

            var query = new Query();

            query.Where.Add(new QWhere("SiteID", COperator.Equal, siteId));
            query.Where.Add(new QWhere("Title", COperator.NoEqual, " "));
            var forms = WorkV3.Models.FormDAO.Instance.Get(query);

            ViewBag.FormItem = forms;

            var model = new IntroListVIewModel();

            model.Cards     = CardsDAO.GetZoneByPageNo(siteId, pageModel.No);
            model.SiteID    = siteId;
            model.MenuID    = menuId;
            model.PageNo    = pageModel.No;
            model.Forms     = forms;
            model.FormTitle = pageModel.Title;

            return(View(model));
        }
Пример #25
0
 public void Sort(IEnumerable <SortItem> items)
 {
     CardsDAO.Sort(items);
 }
Пример #26
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));
        }
Пример #27
0
        public ActionResult Edit(long siteId, long menuId, ArticleModels item, long[] types, long[] series, long[] categories, long[] sites, string posters, IEnumerable <ParagraphModels> paragraphs, string deletedParagraphs, bool saveTemplate,
                                 HttpPostedFileBase fVideoImg, string fVideoImgBase64, string fVideoImgBase64_Resize, string customVideo, string LinkSites, string[] Pages, string PageDetailID, long[] readModeCategories)
        {
            if (!Utility.CheckIsLogin())
            {
                Response.Redirect(Url.Action("Login", "Home"));
            }

            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).TrimEnd('/');

            SaveIconAndArchive(siteId, menuId, item);

            item.MenuID = menuId;

            if (sites?.Length > 0)
            {
                item.IsIssue = true;
            }

            if (item.VideoType == "custom")
            {
                item.VideoID = customVideo;
            }
            #region 影片截圖

            if (!string.IsNullOrWhiteSpace(item.VideoImg) && item.VideoImgIsCustom)
            {
                if (item.VideoImg[0] == '{')
                {
                    WorkV3.Models.ImageModel imgModel = JsonConvert.DeserializeObject <WorkV3.Models.ImageModel>(item.VideoImg);
                    if (imgModel.ID == 0)
                    {
                        if (fVideoImg == null || fVideoImg.ContentLength == 0)
                        {
                            item.VideoImg = string.Empty;
                        }
                        else
                        {
                            string fileName = Golbal.UpdFileInfo.SaveFilesByMenuID(fVideoImg, siteId, menuId, fVideoImgBase64, fVideoImgBase64_Resize);
                            imgModel.ID   = 1;
                            imgModel.Img  = fileName;
                            item.VideoImg = JsonConvert.SerializeObject(imgModel);
                        }
                    }
                }
                else
                {
                    item.VideoImg = string.Empty;
                }
            }

            #endregion

            int cardStyleID             = 1;
            List <CardsModels> cardItem = CardsDAO.GetPageData(siteId, menuId);
            foreach (var cards in cardItem)
            {
                if (cards.CardsType == "Article")
                {
                    cardStyleID = cards.StylesID;
                    break;
                }
            }
            if (Request["LinkType"].Contains("true"))
            {
                item.LinkType = ResourceLinkType.inLink;
                if (!string.IsNullOrEmpty(PageDetailID))
                {
                    item.LinkDetail = PageDetailID;
                    var pageInfo = WorkV3.Areas.Backend.Models.DataAccess.PagesDAO.GetPageInfo(long.Parse(PageDetailID));
                    if (pageInfo != null)
                    {
                        var siteInfo = WorkV3.Models.DataAccess.SitesDAO.GetInfo(pageInfo.SiteID);
                        item.Link = Url.RouteUrl("FrontSitePage", new { SiteSN = siteInfo.SN, PageSN = pageInfo.SN });
                    }
                }
                else if (Pages != null)
                {
                    for (int i = 0; i < Pages.Length; i++)
                    {
                        if (!string.IsNullOrEmpty(Pages[i]))
                        {
                            item.LinkDetail = Pages[i];
                        }
                    }
                    if (!string.IsNullOrEmpty(item.LinkDetail))
                    {
                        var pageInfo = WorkV3.Areas.Backend.Models.DataAccess.PagesDAO.GetPageInfo(long.Parse(item.LinkDetail));
                        if (pageInfo != null)
                        {
                            var siteInfo = WorkV3.Models.DataAccess.SitesDAO.GetInfo(pageInfo.SiteID);
                            item.Link = Url.RouteUrl("FrontSitePage", new { SiteSN = siteInfo.SN, PageSN = pageInfo.SN });
                        }
                    }
                }
                item.Link = item.Link;
            }
            else
            {
                item.LinkType = ResourceLinkType.outLink;
            }
            ArticleDAO.SetItem(item, cardStyleID);
            SysLog.SaveArticleEditLog(item.ID);
            ArticleDAO.SetItemTypes(item.ID, types);
            ArticleDAO.SetItemSeries(item.ID, series);
            ArticleDAO.SetItemCategories(item.ID, FavorityType, categories);
            ArticleDAO.SetItemCategories(item.ID, IdentityType, readModeCategories);
            ArticleDAO.SetItemPosters(item.ID, Newtonsoft.Json.JsonConvert.DeserializeObject <long[]>(posters));
            ArticleDAO.SetItemSites(item.ID, sites);

            SaveParagraph(item, paragraphs, deletedParagraphs);

            ViewBag.ArticleTypes      = types ?? (new long[] { });
            ViewBag.ArticleSeries     = series ?? (new long[] { });
            ViewBag.ArticlePosters    = GetPoster(item, posters);
            ViewBag.ArticleCategories = categories ?? (new long[] { });
            SetLinkDetailViewBag(item.LinkDetail);

            if (saveTemplate)
            {
                long tmplId = WorkLib.GetItem.NewSN();
                ArticleDAO.Copy(item.ID, tmplId, 0, -menuId, null, true);
                ViewBag.TemplateID = tmplId;
            }
            else
            {
                ViewBag.Exit = true;
            }
            return(View(item));
        }
Пример #28
0
        public ActionResult Index(CardsModels model, string key, string type, long?typeId, int?index)
        {
            ViewBag.SiteID = model.SiteID;

            long menuId = CardsDAO.GetMenuID(model.No);

            ViewBag.Menu = MenusDAO.GetInfo(model.SiteID, menuId);

            ViewBag.SitePage = CardsDAO.GetPage((long)MenusDAO.GetFirstCardNo(menuId, "Article"));
            SitePage page = CardsDAO.GetPage(model.No);

            ArticleSettingModels setting = ArticleSettingDAO.GetItem(menuId);

            #region 文章列表是否限制會員觀看
            if (setting.ReadMode == 1 && !string.IsNullOrWhiteSpace(setting.ReadModeSet))
            {
                Member curUser      = Member.Current;
                string IdentityName = ""; //限制身分的名稱
                IEnumerable <Areas.Backend.Models.CategoryModels> listReadModeCategorie = Areas.Backend.Models.DataAccess.CategoryDAO.GetItems(IdentityType, setting.ReadModeSet);
                foreach (var readModeList in listReadModeCategorie)
                {
                    IdentityName += readModeList.Title + "、";
                }
                IdentityName         = IdentityName.TrimEnd('、');
                ViewBag.IdentityName = IdentityName;

                if (curUser == null)
                {
                    ViewBag.CheckReadMode = false;
                    ViewBag.IsLogin       = false;
                }
                else
                {
                    bool checkReadMode = ArticleDAO.ListCheckReadMode(curUser.ID, IdentityType, listReadModeCategorie);
                    if (!checkReadMode)
                    {
                        ViewBag.CheckReadMode = false;
                    }
                }
            }
            #endregion

            if (setting.PagingMode == "不分頁")
            {
                setting.PageSize = int.MaxValue;
            }

            IEnumerable <ArticleTypesModels> types = ArticleTypesDAO.GetItems(menuId);
            if (setting.Types != "all")
            {
                IEnumerable <long> allowTypeIds = setting.GetTypes();
                types         = types.Where(t => allowTypeIds.Contains(t.ID));
                setting.Types = string.Join(",", types.Select(t => t.ID));
            }
            ViewBag.Types = types;

            int pageIndex = index ?? 1;

            int totalRecord;
            IEnumerable <ArticleModels> items = ArticleDAO.GetItems(setting, key, type, typeId, pageIndex, out totalRecord);

            ViewBag.ItemTypes = ArticleDAO.GetItemTypes(items.Select(item => item.ID));
            ViewBag.ItemPages = CardsDAO.GetPages(items.Select(item => item.CardNo));

            ViewBag.UploadUrl  = UpdFileInfo.GetVPathByMenuID(model.SiteID, menuId).TrimEnd('/') + "/";
            ViewBag.Pagination = new Pagination {
                PageSize = setting.PageSize, PageIndex = pageIndex, TotalRecord = totalRecord
            };
            ViewBag.Setting = setting;
            ViewBag.Type    = type;

            int style = model.StylesID == 0 ? 1 : model.StylesID;
            // style = 6;
            return(View("ListStyle" + style, items));
        }
Пример #29
0
        /// <summary>
        /// 最新消息內頁, 需傳入Token
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public ApiResult <ArticlesDetailResult> Post([FromBody] ArticlesDetailRequest data)
        {
            ApiResult <ArticlesDetailResult> result = new ApiResult <ArticlesDetailResult>();

            try
            {
                ArticlesDetailResultCode rcode = ArticlesDetailResultCode.Success;
                if (string.IsNullOrEmpty(data.SiteSN))
                {
                    rcode          = ArticlesDetailResultCode.SiteNull;
                    result.Success = false;
                    result.Code    = (int)rcode;
                    result.Message = rcode.GetMessage();
                    return(result);
                }

                long SiteID = GetSiteID(data.SiteSN);
                if (SiteID <= 0)
                {
                    rcode          = ArticlesDetailResultCode.SiteNull;
                    result.Success = false;
                    result.Code    = (int)rcode;
                    result.Message = rcode.GetMessage();
                    return(result);
                }

                long   menuId     = CardsDAO.GetMenuID(data.CardNo);
                string uploadUrl  = Golbal.UpdFileInfo.GetVPathByMenuID(SiteID, menuId);
                string uploadPath = Golbal.UpdFileInfo.GetUPathByMenuID(SiteID, menuId).TrimEnd('\\');

                ArticleModels item = ArticleDAO.GetItemByCard(data.CardNo);

                #region 主影片
                MainVision mainVisionsItem = null;
                if (item.isShowVideo && item.VideoID != null)
                {
                    int    width = 0, height = 0;
                    string link = item.VideoID, shotUrl = item.VideoImg;

                    if (item.VideoType == "custom")
                    {
                        link = uploadUrl + item.VideoID;
                    }

                    string imgSource = "";
                    if (item.VideoImgIsCustom)
                    {
                        ResourceImagesModels imgModel = Newtonsoft.Json.JsonConvert.DeserializeObject <ResourceImagesModels>(item.VideoImg);
                        shotUrl = uploadUrl + imgModel.Img;

                        imgSource = $"{uploadPath}\\{imgModel.Img}";
                    }
                    else
                    {
                        imgSource = item.VideoImg;
                    }

                    GetImageWidthAndHeight(imgSource, out width, out height);

                    mainVisionsItem = new MainVision()
                    {
                        Type      = item.VideoType,
                        Link      = link,
                        ImgUrl    = shotUrl,
                        ImgWidth  = width,
                        ImgHeight = height
                    };
                }
                #endregion

                #region Paragraph
                List <ParagraphItem> paragraphList = new List <ParagraphItem>();
                if (item == null)
                {
                    rcode          = ArticlesDetailResultCode.ArticlesNull;
                    result.Success = false;
                    result.Code    = (int)rcode;
                    result.Message = rcode.GetMessage();
                    return(result);
                }
                else
                {
                    paragraphList = GetParagraphItem(item.ID, uploadUrl, uploadPath);
                }
                #endregion

                #region 文章類別
                IEnumerable <ArticleTypesModels> ItemTypes = ArticleDAO.GetItemTypes(item.ID);
                List <ArticleTypes> articleTypesItem       = new List <ArticleTypes>();
                foreach (var type in ItemTypes)
                {
                    articleTypesItem.Add(new ArticleTypes()
                    {
                        Name  = type.Name,
                        Color = GetColorCode(type.Color)
                    });
                }
                #endregion

                result.Content = new ArticlesDetailResult()
                {
                    Title         = item.Title,
                    IssueDate     = item.IssueDate?.ToString("yyyy.MM.dd"),
                    ArticleTypes  = articleTypesItem,
                    MainVision    = mainVisionsItem,
                    ParagraphList = paragraphList
                };

                result.Success = true;
                result.Code    = (int)rcode;
                result.Message = rcode.GetMessage();
                return(result);
            }
            catch (Exception ex)
            {
                result.Code    = (int)ResultCode.Exception;
                result.Success = false;
                result.Message = ex.ToString();
            }

            return(result);
        }
Пример #30
0
 public int ChangeStatus(long No, int Status)
 {
     return(CardsDAO.UpdateStatus(No, Status));
 }