Beispiel #1
0
 public async void GetForumPosts(ForumThreadEntity forumThreadEntity)
 {
     IsLoading = true;
     ThreadTitle = forumThreadEntity.Name;
     PostManager postManager = new PostManager();
     await postManager.GetThreadPosts(forumThreadEntity);
     Html = await HtmlFormater.FormatThreadHtml(forumThreadEntity);
     ForumThreadEntity = forumThreadEntity;
     PageNumbers = Enumerable.Range(1, forumThreadEntity.TotalPages).ToArray();
     IsLoading = false;
 }
 public async override void Execute(object parameter)
 {
     try
     {
         var collection = (WebViewCollection)parameter;
         var postId = ParsePostId(collection.PostId);
         var postManager = new PostManager();
         var post = await postManager.GetPost(postId);
         collection.WebView.InvokeScriptAsync("AddPostToThread", new[] { postId.ToString(), post.PostHtml });
     }
     catch (Exception ex)
     {
         throw new Exception("Failed to get post", ex);
     }
 }
Beispiel #3
0
 public void SetUp()
 {
     sut = new PostManager();
 }
Beispiel #4
0
        public ActionResult ManageCurrentPosts()
        {
            var model = new PostManager().GetAllPosts();

            return(View(model));
        }
        public async Task <IHttpActionResult> GetReceipt(int postId, int state, string key, int pageSize, int page, string order, bool isAsc)
        {
            PostUser postUser = await db.PostUsers.FindAsync(postId);

            if (postUser == null)
            {
                return(NotFound());
            }
            PostManager            pm      = new PostManager();
            var                    postids = pm.GetPostUserIdsByPostCampus(postUser.PostId).Select(p => p.Id);
            PageResult <ReceiptVM> result  = new PageResult <ReceiptVM>();
            List <ReceiptVM>       data    = new List <ReceiptVM>();
            var                    receipt = db.Receipts.Include(o => o.Compensations).Include(o => o.Orders).Where(o => postids.Contains(o.PostUser.PostId))
                                             .Where(o => state < 0 ? true : (int)o.State == state)
                                             .Where(o => o.Compensations.Where(or => or.State == true).Count() > 0 || o.Orders.Where(or => or.State != OrderState.已删除).Count() > 0)
                                             .Where(o => (key == "" || key == null) ? true : o.PostUser.User.Name.IndexOf(key) > -1
                                                    );
            var rec   = isAsc ? LinqOrder.DataSort(receipt, order, "asc") : LinqOrder.DataSort(receipt, order, "desc");
            var count = rec.Select(o => o.Id).Count();

            if (count == 0)
            {
                result.Count       = 0;
                result.Data        = null;
                result.CurrentPage = 1;
                result.Order       = order;
                result.IsAsc       = isAsc;
                result.PageSize    = pageSize;
                return(Ok(result));
            }
            result.Count = count;
            var list = await rec.Skip((page - 1) *pageSize).Take(pageSize).Select(o => new ReceiptVM()
            {
                Id          = o.Id,
                PostUserId  = o.PostUserId,
                ConfirmerID = o.ConfirmerID,
                CreateTime  = o.CreateTime,
                ConfirmTime = o.ConfirmTime,
                State       = o.State,
                Value       = 0,
                PosterName  = o.PostUser.User.Name,
                CheckUserId = postId
            }).ToListAsync();

            foreach (var r in list)
            {
                var ords = db.Orders.Where(o => o.ReceiptID == r.Id).Where(o => o.State != OrderState.已删除);
                //if (ords == null)//如果订单为空  说明是空单据  删除
                //{
                //    list.Remove(r);
                //    continue;
                //}
                if (ords.Count() > 0)
                {
                    r.Value = r.Value + ords.Sum(o => o.OrderDetails.Sum(d => d.ActualPay));
                }
                var coms = db.Compensations.Where(o => o.ReceiptID == r.Id);
                if (coms.Count() > 0)
                {
                    r.Value = r.Value + coms.Sum(o => o.Value);
                }
            }
            result.Data        = list;
            result.CurrentPage = page;
            result.Order       = order;
            result.IsAsc       = isAsc;
            result.PageSize    = pageSize;
            return(Ok(result));
        }
Beispiel #6
0
        public int FindUserVoteForPost(int postID, string userName)
        {
            PostManager Manager = new PostManager();

            return(Manager.GetUserVoteForPost(postID, userName));
        }
Beispiel #7
0
        public int GetThreadCount(int mainPostReferenceID)
        {
            PostManager Manager = new PostManager();

            return(Manager.GetThreadCount(mainPostReferenceID));
        }
Beispiel #8
0
        // Gets all the images associated with one post from the database
        public List <ImagePic> FindImagesByPostID(int postID)
        {
            PostManager Manager = new PostManager();

            return(Manager.GetImagesByPostID(postID));
        }
 /// <summary>
 /// 调用文章列表
 /// </summary>
 /// <remarks>
 /// 参数说明:
 /// categoryid=7&userid=2&pagesize=10&page=2
 /// categoryid=8&userid=2&count=10&order=desc&keyword=
 /// </remarks>
 /// <param name="condition"></param>
 /// <returns></returns>
 public List <PostInfo> GetPosts(string condition)
 {
     return(PostManager.GetPostList());
 }
        public void DoWork()
        {
            //取期号
            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0));
            long            tt        = (DateTime.Now.Ticks - startTime.Ticks) / 10000;
            //var url = string.Format("http://i.sporttery.cn/rank_calculator/get_list?tid[]=52562&&pcode[]=chp&pcode[]=fnl&i_callback=getDataCallBack&_={0}", tt);
            var url = string.Format("http://i.sporttery.cn/rank_calculator/get_list?tid[]=104895&pcode[]=chp&i_callback=cphData&_={0}", tt);

            var encoding    = Encoding.GetEncoding("gb2312");
            var content     = PostManager.Get(url, encoding, 0);
            var content_gyj = PostManager.Get(string.Format("http://i.sporttery.cn/rank_calculator/get_list?tid[]=104895&&pcode[]=fnl&i_callback=getList&_={0}", tt), encoding);

            content     = content.Replace("cphData({\"data\":", "").Replace(");", "").Replace("}]}", "}]").Trim();
            content_gyj = content_gyj.Replace("getList({\"data\":", "").Replace(");", "").Replace("}]}", "}]").Trim();
            var Sjb_GJList       = KaSon.FrameWork.Common.JSON.JsonHelper.Deserialize <List <CupInfo> >(content);
            var Sjb_GYJList      = KaSon.FrameWork.Common.JSON.JsonHelper.Deserialize <List <CupInfo> >(content_gyj);
            var sjb_GJMatchList  = new List <CupGJMatchInfo>();
            var sjb_GYJMatchList = new List <CupGYJMatchInfo>();

            if (Sjb_GJList.Count <= 0)
            {
                return;
            }
            sjb_GJMatchList  = Get_SJB_GJMatchList(Sjb_GJList[0]);
            sjb_GYJMatchList = Get_SJB_GYJMatchList(Sjb_GYJList[0]);

            var newSjb_GJ_List  = GetNewSJBList <CupGJMatchInfo>(sjb_GJMatchList, "SJB_GJ.json");
            var newSjb_GYJ_List = GetNewSJBList <CupGYJMatchInfo>(sjb_GYJMatchList, "SJB_GYJ.json");

            #region 发送 世界杯冠军数据通知

            this.WriteLog("1、开始=>发送世界杯冠军数据通知");
            var addWorldCupGJMatchList    = new List <CupGJMatchInfo>();
            var updateWorldCupGJMatchList = new List <CupGJMatchInfo>();
            foreach (var r in newSjb_GJ_List)
            {
                try
                {
                    if (r.Key == DBChangeState.Add)
                    {
                        addWorldCupGJMatchList.Add(r.Value);
                    }
                    else
                    {
                        updateWorldCupGJMatchList.Add(r.Value);
                    }
                }
                catch (Exception ex)
                {
                    this.WriteLog(string.Format("向数据库写入 竞彩世界杯冠军 数据异常 编号:{0},异常:{1}", r.Value.MatchId, ex.ToString()));
                }
            }
            if (addWorldCupGJMatchList.Count > 0)
            {
                var category       = (int)NoticeCategory.JCSJB_GJ;
                var state          = (int)DBChangeState.Add;
                var param          = string.Join("_", (from l in addWorldCupGJMatchList select l.MatchId).ToArray());
                var sign           = Encipherment.MD5(string.Format("IIIOO{0}{1}{2}", category, state, param));
                var issuse_Request = string.Format("NoticeCategory={0}&ChangeState={1}&Param={2}&Sign={3}", category, state, param, sign);

                //发送 竞彩足球队伍 添加 通知
                var innerKey = string.Format("{0}_{1}", "JCSJB_GJ", "Add");
                ServiceHelper.AddAndSendNotification(param, "", innerKey, NoticeType.JCSJB_GJ);

                //ServiceHelper.SendNotice(issuse_Request, (log) =>
                //{
                //    this.WriteLog(log);
                //});
            }
            if (updateWorldCupGJMatchList.Count > 0)
            {
                var category       = (int)NoticeCategory.JCSJB_GJ;
                var state          = (int)DBChangeState.Update;
                var param          = string.Join("_", (from l in updateWorldCupGJMatchList select l.MatchId).ToArray());
                var sign           = Encipherment.MD5(string.Format("IIIOO{0}{1}{2}", category, state, param));
                var issuse_Request = string.Format("NoticeCategory={0}&ChangeState={1}&Param={2}&Sign={3}", category, state, param, sign);

                //发送 竞彩足球队伍 修改 通知
                var innerKey = string.Format("{0}_{1}", "JCSJB_GJ", "Update");
                ServiceHelper.AddAndSendNotification(param, "", innerKey, NoticeType.JCSJB_GJ);

                //ServiceHelper.SendNotice(issuse_Request, (log) =>
                //{
                //    this.WriteLog(log);
                //});
            }

            this.WriteLog("1、发送世界杯冠军数据通知 完成");

            #endregion

            #region 发送 世界杯冠军数据通知

            this.WriteLog("1、开始=>发送世界杯冠军数据通知");
            var addWorldCupGYJMatchList    = new List <CupGYJMatchInfo>();
            var updateWorldCupGYJMatchList = new List <CupGYJMatchInfo>();
            foreach (var r in newSjb_GYJ_List)
            {
                try
                {
                    if (r.Key == DBChangeState.Add)
                    {
                        addWorldCupGYJMatchList.Add(r.Value);
                    }
                    else
                    {
                        updateWorldCupGYJMatchList.Add(r.Value);
                    }
                }
                catch (Exception ex)
                {
                    this.WriteLog(string.Format("向数据库写入 竞彩世界杯冠军 数据异常 编号:{0},异常:{1}", r.Value.MatchId, ex.ToString()));
                }
            }
            if (addWorldCupGYJMatchList.Count > 0)
            {
                var category       = (int)NoticeCategory.JCSJB_GYJ;
                var state          = (int)DBChangeState.Add;
                var param          = string.Join("_", (from l in addWorldCupGYJMatchList select l.MatchId).ToArray());
                var sign           = Encipherment.MD5(string.Format("IIIOO{0}{1}{2}", category, state, param));
                var issuse_Request = string.Format("NoticeCategory={0}&ChangeState={1}&Param={2}&Sign={3}", category, state, param, sign);

                //发送 竞彩足球队伍 添加 通知
                var innerKey = string.Format("{0}_{1}", "JCSJB_GYJ", "Add");
                ServiceHelper.AddAndSendNotification(param, "", innerKey, NoticeType.JCSJB_GYJ);

                //ServiceHelper.SendNotice(issuse_Request, (log) =>
                //{
                //    this.WriteLog(log);
                //});
            }
            if (updateWorldCupGYJMatchList.Count > 0)
            {
                var category       = (int)NoticeCategory.JCSJB_GYJ;
                var state          = (int)DBChangeState.Update;
                var param          = string.Join("_", (from l in updateWorldCupGYJMatchList select l.MatchId).ToArray());
                var sign           = Encipherment.MD5(string.Format("IIIOO{0}{1}{2}", category, state, param));
                var issuse_Request = string.Format("NoticeCategory={0}&ChangeState={1}&Param={2}&Sign={3}", category, state, param, sign);

                //发送 竞彩足球队伍 修改 通知
                var innerKey = string.Format("{0}_{1}", "JCSJB_GYJ", "Update");
                ServiceHelper.AddAndSendNotification(param, "", innerKey, NoticeType.JCSJB_GYJ);

                //ServiceHelper.SendNotice(issuse_Request, (log) =>
                //{
                //    this.WriteLog(log);
                //});
            }

            this.WriteLog("1、发送世界杯冠军数据通知 完成");

            #endregion
        }
Beispiel #11
0
 public BlogController(PostManager postManager)
 {
     this.postManager = postManager;
 }
Beispiel #12
0
        /// <summary>
        /// 充值查询
        /// 查询某笔(单次最多20笔)充值交易的明细情况
        /// transType=110
        /// </summary>
        /// <param name="accountNo">代理商账号</param>
        /// <param name="transType">交易类型编号,如:110</param>
        /// <param name="filles">要查询的充值集合</param>
        /// <returns></returns>
        public string FillQuery(AccountNumber accountNo, TransactionType transType, List <Fill> filles)
        {
            if (transType.TypeCode.Trim() != "110")
            {
                throw new Exception("交易类型和充值查询的交易类型不匹配。");
            }

            if (filles.Count >= 1 && filles.Count <= 20)
            {
                try
                {
                    DateTime now  = DateTime.Now;
                    string   body = "<body><fillQuery>";

                    foreach (Fill fill in filles)
                    {
                        body = body + "<fill id=\"" + fill.Id + "\" />";
                    }

                    body = body + "</fillQuery></body>";
                    string messageId      = accountNo.UserName + now.ToString("yyyyMMdd") + PostManager.EightSerialNumber;
                    string timestamp      = now.ToString("yyyyMMdd") + now.ToString("HHmmss");
                    string requestMessage = "transType=" + transType.TypeCode + "&transMessage=" + (((((((("<?xml version=\"1.0\" encoding=\"GBK\"?>" + "<message version=\"1.0\" id=\"" + messageId + "\">") + "<header>") + "<messengerID>" + accountNo.UserName + "</messengerID>") + "<timestamp>" + timestamp + "</timestamp>") + "<transactionType>" + transType.TypeCode + "</transactionType>") + "<digest>" + PostManager.MD5(messageId + timestamp + accountNo.UserPassword + body, "gb2312") + "</digest>") + "</header>") + body + "</message>");
                    Console.WriteLine("充值查询传递的消息:\n" + requestMessage);

                    string responseMessage = PostManager.Post(GatewayUrl, requestMessage, 120);
                    return(responseMessage);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            else
            {
                throw new Exception("充值查询的个数超过了单次能查询的数目(必须为1~20)。");
            }
        }
Beispiel #13
0
        /// <summary>
        /// 电话投注卡充值
        /// transType="117"
        /// </summary>
        /// <param name="accountNo">代理商账号</param>
        /// <param name="transType">交易类型</param>
        /// <param name="userProfile">要充值的用户账户</param>
        /// <param name="cardFill">充值数据对象</param>
        /// <returns></returns>
        public string AnteCardFill(AccountNumber accountNo, TransactionType transType, UserProfile userProfile, Fill cardFill)
        {
            if (transType.TypeCode.Trim() != "117")
            {
                throw new Exception("交易类型和电话投注卡充值的交易类型不匹配。");
            }

            if (userProfile != null && cardFill != null && userProfile.UserName == cardFill.UserName)
            {
                try
                {
                    DateTime now  = DateTime.Now;
                    string   body = "<body><anteCardFill>";

                    body = body + "<fill agentID=\"" + accountNo.UserName + "\" ";
                    string id = accountNo.UserName + now.ToString("yyyyMMdd") + PostManager.EightSerialNumber;
                    body = "id=\"" + id + "\" ";
                    body = "userName=\"" + userProfile.UserName + "\" ";
                    body = "realName=\"" + userProfile.RealName + "\" ";
                    body = "idCard=\"" + userProfile.CardNumber + "\" ";
                    body = "cardType=\"" + (int)userProfile.CardTypeInfo + "\" ";
                    body = "money=\"" + cardFill.CardFillMoney + "\" ";
                    body = "cardNo=\"" + cardFill.CardNo + "\" ";
                    body = "password=\"" + PostManager.MD5(cardFill.Password, "gb2312") + "\" />";

                    body = body + "</anteCardFill></body>";
                    string messageId       = accountNo.UserName + now.ToString("yyyyMMdd") + PostManager.EightSerialNumber;
                    string timestamp       = now.ToString("yyyyMMdd") + now.ToString("HHmmss");
                    string requestMessage  = "transType=" + transType.TypeCode + "&transMessage=" + (((((((("<?xml version=\"1.0\" encoding=\"GBK\"?>" + "<message version=\"1.0\" id=\"" + messageId + "\">") + "<header>") + "<messengerID>" + accountNo.UserName + "</messengerID>") + "<timestamp>" + timestamp + "</timestamp>") + "<transactionType>" + transType.TypeCode + "</transactionType>") + "<digest>" + PostManager.MD5(messageId + timestamp + accountNo.UserPassword + body, "gb2312") + "</digest>") + "</header>") + body + "</message>");
                    string responseMessage = PostManager.Post(GatewayUrl, requestMessage, 120);
                    return(responseMessage);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            else
            {
                throw new Exception("电话投注卡充值对象或者用户账号信息不能为空。");
            }
        }
Beispiel #14
0
        public void addPostCheckThenDelete()
        {
            var repo    = BlogFactory.CreatBlogPostRepository();
            var manager = new PostManager();

            BlogPost testPost = new BlogPost();
            var      filename = "test.png";
            var      imgs     = new List <Img>();
            var      tags     = new List <Tag>();

            testPost.Headline       = "Testing";
            testPost.Subtitle       = "Test Sub";
            testPost.Body           = "Testing again";
            testPost.AuthorName     = "Test";
            testPost.Approved       = Approved.Yes;
            testPost.Category       = Category.Anime;
            testPost.DateCreated    = DateTime.Today;
            testPost.TagPlaceHolder = "Test1,Test2";
            var img = new Img()
            {
                Description = "Test description",
                Title       = "Test title",
                Source      = filename
            };

            imgs.Add(img);
            testPost.Imgs = imgs;

            Tag tag1 = new Tag()
            {
                Name = "Test1"
            };

            tags.Add(tag1);
            Tag tag2 = new Tag()
            {
                Name = "Test2"
            };

            tags.Add(tag2);

            testPost.Tags = tags;

            repo.AddBlogPost(testPost);
            List <BlogPost> posts = repo.GetAllPosts();

            BlogPost check = posts.Last();

            Assert.AreEqual("Test Sub", check.Subtitle);
            Assert.AreEqual("Testing", check.Headline);
            Assert.AreEqual("Testing again", check.Body);
            Assert.AreEqual("Testing", check.Headline);
            //Assert.AreEqual("Test1", check.Tags[0].Name);
            //Assert.AreEqual("Test2", check.Tags[1].Name);
            //Assert.AreEqual("Test Title", check.Imgs[0].Title);
            //Assert.AreEqual("Test description", check.Imgs[0].Description);

            repo.RemoveBlogPost(testPost);

            Assert.IsNull(repo.GetPostByID(testPost.Id));
        }
        public ActionResult Edit(Guid?ID)
        {
            isEdit = true;
            EditOutgoingLettersViewModel editOutgoingLettersViewModel = new EditOutgoingLettersViewModel();

            SendLetterManager sendLetterManager = new SendLetterManager();
            PostManager       postManager       = new PostManager();
            PersonManager     personManager     = new PersonManager();
            CaseManager       caseManager       = new CaseManager();
            EmployeeManager   employeeManager   = new EmployeeManager();

            TemplateManager templateManager = new TemplateManager();

            User currentUser = userManager.Read(new Guid(User.Identity.Name));

            cUser = currentUser;


            if (ID != null && ID != Guid.Empty)
            {
                editOutgoingLettersViewModel.sendLetter = sendLetterManager.Read((Guid)ID);

                if (editOutgoingLettersViewModel.sendLetter == null)
                {
                    return(RedirectToAction("Index"));
                }
            }
            else
            {
                return(RedirectToAction("Index"));
            }


            //Selected Person and Organization and Post Logic

            if (editOutgoingLettersViewModel.sendLetter.Recievers != null && editOutgoingLettersViewModel.sendLetter.Recievers.Count > 0 && editOutgoingLettersViewModel.sendLetter.Recievers.First() != null)
            {
                if (editOutgoingLettersViewModel.sendLetter.Recievers.First().Organization != null)
                {
                    editOutgoingLettersViewModel.People = personManager.GetOrganizationPersons(editOutgoingLettersViewModel.sendLetter.Recievers.First().Organization, editOutgoingLettersViewModel.sendLetter.Recievers.First().Post?.Id ?? new Guid());
                }
                else
                {
                    editOutgoingLettersViewModel.People = userManager.GetUserShowablePeopleList(currentUser);
                }

                //Fix problem of not showable but selected Person
                if (editOutgoingLettersViewModel.sendLetter.Recievers.First().Person != null)
                {
                    if (editOutgoingLettersViewModel.People.All(x => x.Id != editOutgoingLettersViewModel.sendLetter.Recievers.First().Person.Id))
                    {
                        editOutgoingLettersViewModel.People.Add(editOutgoingLettersViewModel.sendLetter.Recievers.First().Person);
                    }
                }
            }
            else
            {
                editOutgoingLettersViewModel.People = userManager.GetUserShowablePeopleList(currentUser);
            }


            editOutgoingLettersViewModel.OrganizationJson = getWhileLoopDataOrganization();


            //Selected Employee and Department and Post Logic

            if (editOutgoingLettersViewModel.sendLetter.SenderEmployee != null)
            {
                if (editOutgoingLettersViewModel.sendLetter.SenderEmployee.Department != null)
                {
                    editOutgoingLettersViewModel.Employees = employeeManager.GetDepartmentEmployees(editOutgoingLettersViewModel.sendLetter.SenderEmployee.Department, editOutgoingLettersViewModel.sendLetter.SenderEmployee.Post?.Id ?? new Guid());
                }
                else
                {
                    editOutgoingLettersViewModel.Employees = employeeManager.NoneDepartment();
                }
            }
            else
            {
                editOutgoingLettersViewModel.Employees = employeeManager.NoneDepartment();
            }

            editOutgoingLettersViewModel.DepartmentJson = getWhileLoopDataDepartment();



            editOutgoingLettersViewModel.Cases     = caseManager.Read(null);
            editOutgoingLettersViewModel.Posts     = postManager.Read(null);
            editOutgoingLettersViewModel.Templates = templateManager.Read(null);


            editOutgoingLettersViewModel.LetterFiles = new List <FileViewModel>();
            foreach (var itemFile in editOutgoingLettersViewModel.sendLetter.sendLetterFiles)
            {
                FileViewModel fileViewModel = new FileViewModel
                {
                    Content = itemFile.File.Content.GetContentBase64(itemFile.File.ContentType),
                    Id      = itemFile.Id
                };
                editOutgoingLettersViewModel.LetterFiles.Add(fileViewModel);
            }

            editOutgoingLettersViewModel.LetterAppendages = new List <FileViewModel>();
            foreach (var itemFile in editOutgoingLettersViewModel.sendLetter.Appendages)
            {
                FileViewModel fileViewModel = new FileViewModel
                {
                    Content = itemFile.File.Content.GetContentBase64(itemFile.File.ContentType),
                    Id      = itemFile.Id
                };
                editOutgoingLettersViewModel.LetterAppendages.Add(fileViewModel);
            }


            //Process Letter Parent
            //Set Parent Letter
            try
            {
                switch (editOutgoingLettersViewModel.sendLetter.ParentType)
                {
                case ParentType.Send:
                    var parent = sendLetterManager.GetParent(editOutgoingLettersViewModel.sendLetter.Id);
                    editOutgoingLettersViewModel.sendLetter.ParentSendLetter = parent;

                    break;

                case ParentType.Receive:
                    var parent2 = sendLetterManager.GetParentOut(editOutgoingLettersViewModel.sendLetter.Id);
                    editOutgoingLettersViewModel.sendLetter.ParentReceivedLetterOut = parent2;

                    break;

                default:
                    break;
                }
            }
            catch
            {
            }
            return(View(editOutgoingLettersViewModel));
        }
Beispiel #16
0
        public async Task GetForumPosts(ForumThreadEntity forumThreadEntity)
        {
            IsLoading = true;
            bool isSuccess;
            string errorMessage = string.Empty;
            ThreadTitle = forumThreadEntity.Name;
            PostManager postManager = new PostManager();
            try
            {
                await postManager.GetThreadPosts(forumThreadEntity);
                isSuccess = true;
            }
            catch (Exception ex)
            {
                IsLoading = false;
                isSuccess = false;
                errorMessage = ex.Message;
            }
            if (!isSuccess)
            {
                await AwfulDebugger.SendMessageDialogAsync("Failed to get thread posts.", new Exception(errorMessage));
                return;
            }
#if WINDOWS_PHONE_APP
            forumThreadEntity.PlatformIdentifier = PlatformIdentifier.WindowsPhone;
#else
            forumThreadEntity.PlatformIdentifier = PlatformIdentifier.Windows8;
#endif
            try
            {
                GetDarkModeSetting(forumThreadEntity);
                Html = await HtmlFormater.FormatThreadHtml(forumThreadEntity);
                ForumThreadEntity = forumThreadEntity;
                PageNumbers = Enumerable.Range(1, forumThreadEntity.TotalPages).ToArray();
            }
            catch (Exception ex)
            {
                AwfulDebugger.SendMessageDialogAsync("An error occured creating the thread HTML", ex);
            }
        }
 private IPostManager CreateInstance()
 {
     IPostManager target = new PostManager();
     return target;
 }
Beispiel #18
0
 public NewsController()
 {
     _postM   = new PostManager();
     _catRepo = new CategoryManager();
 }
Beispiel #19
0
        // Pulls all main forums posts for a given page number from the database
        public List <Post> FindMainForumPostByPage(int pageNumber)
        {
            PostManager Manager = new PostManager();

            return(Manager.GetMainPostByPage(pageNumber));
        }
Beispiel #20
0
 public PostsController(PostManager manager)
 {
     this._manager = manager;
 }
Beispiel #21
0
        // Gets all thread posts for one main post ID from the database
        public List <Post> FindThreadPostByMainPostReference(int mainPostReferenceID)
        {
            PostManager Manager = new PostManager();

            return(Manager.GetThreadByMainPostReference(mainPostReferenceID));
        }
        public ActionResult EmployeeEditPost(int id)
        {
            var model = new PostManager().GetPostByID(id);

            return(View(model));
        }
Beispiel #23
0
        // A user has made an initial or changed their vote for a post
        public bool ModifyVotingSystem(int postID, string userName, int countValue)
        {
            PostManager Manager = new PostManager();

            return(Manager.UpdatePostVote(postID, userName, countValue));
        }
Beispiel #24
0
    /// <summary>
    /// 加载文章列表
    /// </summary>
    protected void LoadPostList()
    {
        int    categoryId = -1;
        int    tagId      = -1;
        int    userId     = -1;
        string keyword    = string.Empty;
        string data       = string.Empty;
        string begindate  = string.Empty;
        string enddate    = string.Empty;

        int pageindex = RequestHelper.QueryInt("page", 1);

        string messageinfo = string.Empty;

        string url = MakeUrl(string.Empty, string.Empty, string.Empty);

        if (pageType == "category")
        {
            string       slug = RequestHelper.QueryString("slug");
            CategoryInfo cate = CategoryManager.GetCategory(slug);
            if (cate != null)
            {
                categoryId = cate.CategoryId;
                th.Put(TagFields.META_KEYWORDS, cate.Name);
                th.Put(TagFields.META_DESCRIPTION, cate.Description);
                th.Put(TagFields.PAGE_TITLE, cate.Name);
                messageinfo = string.Format("<h2 class=\"post-message\">分类:{0}</h2>", cate.Name);

                url = MakeUrl("category", "slug", Server.UrlEncode(slug));
            }
        }
        else if (pageType == "tag")
        {
            string  slug = RequestHelper.QueryString("slug");
            TagInfo tag  = TagManager.GetTagBySlug(slug);
            if (tag != null)
            {
                tagId = tag.TagId;
                th.Put(TagFields.META_KEYWORDS, tag.Name);
                th.Put(TagFields.META_DESCRIPTION, tag.Description);
                th.Put(TagFields.PAGE_TITLE, tag.Name);
                messageinfo = string.Format("<h2 class=\"post-message\">标签:{0}</h2>", tag.Name);

                url = MakeUrl("tag", "slug", Server.UrlEncode(slug));
            }
        }
        else if (pageType == "author")
        {
            string   userName = RequestHelper.QueryString("username");
            UserInfo user     = UserManager.GetUser(userName);
            if (user != null)
            {
                userId = user.UserId;
                th.Put(TagFields.META_KEYWORDS, user.Name);
                th.Put(TagFields.META_DESCRIPTION, user.Description);
                th.Put(TagFields.PAGE_TITLE, user.Name);
                messageinfo = string.Format("<h2 class=\"post-message\">作者:{0}</h2>", user.Name);

                url = MakeUrl("author", "username", Server.UrlEncode(userName));
            }
        }
        else if (pageType == "search")
        {
            keyword = StringHelper.CutString(StringHelper.SqlEncode(RequestHelper.QueryString("keyword")), 15);
            th.Put(TagFields.META_KEYWORDS, keyword);
            th.Put(TagFields.META_DESCRIPTION, keyword);
            th.Put(TagFields.PAGE_TITLE, keyword);
            th.Put(TagFields.SEARCH_KEYWORD, keyword);
            messageinfo = string.Format("<h2 class=\"post-message\">搜索:{0}</h2>", keyword);

            url = MakeUrl("search", "keyword", Server.UrlEncode(keyword));
        }
        else if (pageType == "archive")     //先按月归档
        {
            string datestr = RequestHelper.QueryString("date");

            string   year  = datestr.Substring(0, 4);
            string   month = datestr.Substring(4, 2);
            DateTime date  = Convert.ToDateTime(year + "-" + month);
            begindate = date.ToString();
            enddate   = date.AddMonths(1).ToString();
            th.Put(TagFields.META_KEYWORDS, "归档");
            th.Put(TagFields.META_DESCRIPTION, SettingManager.GetSetting().SiteName + date.ToString("yyyy-MM") + "的归档");
            th.Put(TagFields.PAGE_TITLE, "归档:" + date.ToString("yyyy-MM"));
            messageinfo = string.Format("<h2 class=\"post-message\">归档:{0}</h2>", date.ToString("yyyy-MM"));

            url = MakeUrl("archive", "date", datestr);
        }

        else    //首页
        {
            if (pageindex == 1)
            {
                th.Put(TagFields.IS_DEFAULT, "1");
            }
        }

        th.Put(TagFields.POST_MESSAGE, messageinfo);
        //     th.Put(TagFields.PAGER_INDEX, pageindex);

        int recordCount = 0;

        th.Put(TagFields.POSTS, PostManager.GetPostList(SettingManager.GetSetting().PageSizePostCount, pageindex, out recordCount, categoryId, tagId, userId, -1, 1, -1, 0, begindate, enddate, keyword));
        th.Put(TagFields.PAGER, Pager.CreateHtml(SettingManager.GetSetting().PageSizePostCount, recordCount, url));

        Display("default.html");
    }
Beispiel #25
0
        public override Dictionary <string, string> GetWinNumber(string gameCode, int lastIssuseCount,
                                                                 string issuseNumber)
        {
            var dic = new Dictionary <string, string>();

            #region Url

            var url = string.Empty;
            switch (gameCode)
            {
            case "JX11X5":
                url = url_jx11x5;
                break;

            case "GD11X5":
                url = url_gd11x5;
                break;

            case "SD11X5":
                url = url_sd11x5;
                break;

            case "CQSSC":
                url = url_cqssc;
                break;

            case "JXSSC":
                url = url_jxssc;
                break;

            case "SSQ":
                url = url_ssq;
                break;

            case "DLT":
                url = url_dlt;
                break;

            case "PL3":
                url = url_pl3;
                break;

            case "PL5":
                url = url_pl5;
                break;

            case "FC3D":
                url = url_fc3d;
                break;

            case "JSKS":
                url = url_jsk3;
                break;

            case "CQ11X5":
                url = url_cq11x5;
                break;

            case "DF6J1":
                url = url_df6j1;
                break;

            case "HD15X5":
                url = url_hd15x5;
                break;

            case "JLK3":
                url = url_jlk3;
                break;

            case "LN11X5":
                url = url_ln11x5;
                break;

            case "QLC":
                url = url_qlc;
                break;

            case "QXC":
                url = url_qxc;
                break;
            }

            #endregion

            if (string.IsNullOrEmpty(url))
            {
                return(dic);
            }
            var json       = PostManager.Get(url, Encoding.UTF8, 0).Trim();
            var startIndex = -1;
            var endIndex   = -1;
            switch (gameCode)
            {
            case "CQSSC":
            case "SD11X5":
            case "JSKS":
            case "LN11X5":
            case "JLK3":
            case "JX11X5":
            case "GD11X5":
            case "CQ11X5":
            case "JXSSC":
                startIndex = json.IndexOf("<tbody id=\"jq_body_kc_result\">");
                endIndex   = json.IndexOf("<div class=\"lotboxright\">");
                json       = json.Substring(startIndex, endIndex - startIndex);
                dic        = GeGPWinNumber(gameCode, json, lastIssuseCount);
                break;

            case "PL3":
            case "PL5":
            case "SSQ":
            case "DF6J1":
            case "QLC":
            case "QXC":
            case "FC3D":
            case "HD15X5":
                startIndex = json.LastIndexOf("<p class=\"lot_kjqs\">");
                endIndex   = json.IndexOf("<span class=\"lot_text alink\">");
                json       = json.Substring(startIndex, endIndex - startIndex);
                dic        = GeDPWinNumber(gameCode, json);
                break;

            case "DLT":
                startIndex = json.IndexOf("<tr onmouseout=");
                endIndex   = json.IndexOf("</tbody>");
                json       = json.Substring(startIndex, endIndex - startIndex)
                             .Replace("<tbody id=\"jq_body_kc_result\">", "").Replace("</tbody>", "").Replace("</table>", "")
                             .Replace("</div>", "");
                dic = GeGPWinNumber(gameCode, json, lastIssuseCount);
                break;

            default:
                break;
            }

            return(dic);
        }
Beispiel #26
0
    /// <summary>
    /// 添加评论
    /// </summary>
    protected void AddComment()
    {
        int contentMaxLength = 1000;    //内容最长长度

        int    postid  = RequestHelper.FormInt("postid", 0);
        string author  = StringHelper.CutString(RequestHelper.FormString("commentauthor"), 20);
        string email   = StringHelper.CutString(RequestHelper.FormString("commentemail"), 50);
        string siteurl = StringHelper.CutString(RequestHelper.FormString("commentsiteurl"), 100);

        string content     = RequestHelper.FormString("commentcontent");
        int    remeber     = RequestHelper.FormInt("commentremember", 0);
        int    emailnotify = RequestHelper.FormInt("commentemailnotify", 0);
        string verifycode  = RequestHelper.FormString("commentverifycode");

        int expires = 525600; //一年

        if (remeber == 0)
        {
            expires = -1;
        }
        if (!PageUtils.IsLogin)
        {
            PageUtils.SetCookie(TagFields.COMMENT_AUTHOR, Server.UrlEncode(author), expires);
            PageUtils.SetCookie(TagFields.COMMENT_EMAIL, Server.UrlEncode(email), expires);
            PageUtils.SetCookie(TagFields.COMMENT_SITEURL, Server.UrlEncode(siteurl), expires);
        }

        //  PageUtils.SetCookie("commentcontent", Server.UrlEncode(StringHelper.CutString(content, contentMaxLength, "...")), expires);     //保留

        //第一次发表评论,并失败时用到
        th.Put(TagFields.COMMENT_AUTHOR, author);
        th.Put(TagFields.COMMENT_EMAIL, email);
        th.Put(TagFields.COMMENT_SITEURL, siteurl);
        th.Put(TagFields.COMMENT_CONTENT, content);


        if (SettingManager.GetSetting().EnableVerifyCode == 1 && (verifycode != PageUtils.VerifyCode || string.IsNullOrEmpty(verifycode)))
        {
            th.Put(TagFields.COMMENT_MESSAGE, "<div>验证码输入错误!</div>");
            return;
        }
        if (!StringHelper.IsEmail(email))
        {
            th.Put(TagFields.COMMENT_MESSAGE, "<div>邮箱格式错误!</div>");
            return;
        }

        if (content.Length > contentMaxLength || content.Length == 0)
        {
            th.Put(TagFields.COMMENT_MESSAGE, "<div>评论不能为空且限制在" + contentMaxLength + "字以内!</div>");
            return;
        }

        //   PageUtils.SetCookie("commentcontent", string.Empty, -1);    //清空
        th.Put(TagFields.COMMENT_CONTENT, string.Empty); //清空

        PostInfo post = PostManager.GetPost(postid);

        if (post == null)
        {
            Response.Redirect(ConfigHelper.SitePath);
        }

        CommentInfo c = new CommentInfo();

        c.Content     = StringHelper.TextToHtml(StringHelper.CutString(content, contentMaxLength, "..."));
        c.CreateDate  = DateTime.Now;
        c.Email       = StringHelper.HtmlEncode(email);
        c.EmailNotify = emailnotify;
        c.IpAddress   = RequestHelper.IPAddress;
        c.ParentId    = 0;
        c.PostId      = postid;
        c.UserId      = PageUtils.CurrentUserId;
        c.Name        = author;
        if (!string.IsNullOrEmpty(siteurl) && siteurl.IndexOf("http://") == -1)
        {
            siteurl = "http://" + siteurl;
        }
        c.SiteUrl = StringHelper.HtmlEncode(siteurl);

        switch (SettingManager.GetSetting().CommentApproved)
        {
        case 1:
            c.Approved = (int)ApprovedStatus.Success;
            break;

        case 2:
            string[] blackwords   = SettingManager.GetSetting().CommentSpamwords.Split(',');
            bool     hasBlackword = false;
            foreach (string word in blackwords)
            {
                if (c.Content.IndexOf(word) != -1)
                {
                    hasBlackword = true;
                    break;
                }
            }
            c.Approved = hasBlackword ? (int)ApprovedStatus.Wait : (int)ApprovedStatus.Success;
            break;

        case 3:
        default:
            c.Approved = (int)ApprovedStatus.Wait;
            break;
        }

        int newID = CommentManager.InsertComment(c);

        #region 发邮件
        if (SettingManager.GetSetting().SendMailNotifyByComment == 1) //给订阅者发邮件
        {
            //先不考虑审核的问题
            List <CommentInfo> list = CommentManager.GetCommentList(int.MaxValue, 1, -1, postid, 0, -1, 1, string.Empty);

            List <string> emailList = new List <string>();

            foreach (CommentInfo cmt in list)
            {
                if (!StringHelper.IsEmail(cmt.Email))
                {
                    continue;
                }
                //自己不用发
                if (email == cmt.Email)
                {
                    continue;
                }
                //不重复发送
                if (emailList.Contains(cmt.Email))
                {
                    continue;
                }
                emailList.Add(cmt.Email);

                string subject = string.Empty;
                string body    = string.Empty;

                subject = string.Format("[评论订阅通知]{0}", post.Title);
                body   += string.Format("您订阅的{0}有新评论了:<br/>", post.Title);
                body   += "<hr/>";
                body   += content;
                body   += "<hr/>";
                body   += "<br />评论作者: " + author;

                if (!string.IsNullOrEmpty(siteurl))
                {
                    body += string.Format(" (<a href=\"{0}\">{0}</a>)", siteurl);
                }

                body += "<br />评论时间: " + DateTime.Now;
                body += string.Format("<br />原文连接: <a href=\"{0}\" title=\"{1}\" >{1}</a>", post.Url, post.Title);

                body += "<br />注:系统自动通知邮件,不要回复。";

                EmailHelper.SendAsync(cmt.Email, subject, body);
            }
        }

        if (SettingManager.GetSetting().SendMailAuthorByComment == 1)       //给文章作者发邮件
        {
            string subject = string.Empty;
            string body    = string.Empty;

            subject = string.Format("[新评论通知]{0}", post.Title);
            body   += string.Format("您发表的{0}有新评论了:<br/>", post.Title);
            body   += "<hr/>";
            body   += content;
            body   += "<hr/>";
            body   += "<br />评论作者: " + author;

            if (!string.IsNullOrEmpty(siteurl))
            {
                body += string.Format(" (<a href=\"{0}\">{0}</a>)", siteurl);
            }

            body += "<br />评论时间: " + DateTime.Now;
            body += string.Format("<br />原文连接: <a href=\"{0}\" title=\"{1}\" >{1}</a>", post.Url, post.Title);

            body += "<br />注:系统自动通知邮件,不要回复。";

            UserInfo user = UserManager.GetUser(post.UserId);
            if (user != null && StringHelper.IsEmail(user.Email))
            {
                EmailHelper.SendAsync(user.Email, subject, body);
            }
        }

        #endregion

        if (newID > 0)
        {
            if (post != null)
            {
                if (SettingManager.GetSetting().CommentOrder == 1)
                {
                    Response.Redirect(post.Url + "#comment-" + newID);
                }
                else
                {
                    int commentCount = CommentManager.GetCommentCount(postid, false);

                    int pageCount = commentCount / SettingManager.GetSetting().PageSizeCommentCount;


                    if (commentCount % SettingManager.GetSetting().PageSizeCommentCount > 0)
                    {
                        pageCount += 1;
                    }
                    string url = string.Format(post.PageUrl + "#comment-" + newID, pageCount);

                    Response.Redirect(url);
                }
            }
        }
    }
Beispiel #27
0
        private List <int> getSonIds(int id)
        {
            PostManager pm = new PostManager();

            return(pm.GetSons(id).Select(p => p.Id).ToList());
        }
Beispiel #28
0
    /// <summary>
    /// 加载通用标签
    /// </summary>
    protected void LoadDefault()
    {
        #region 全局

        th.Put(TagFields.SITE_NAME, SettingManager.GetSetting().SiteName);
        th.Put(TagFields.SITE_DESCRIPTION, SettingManager.GetSetting().SiteDescription);
        th.Put(TagFields.META_KEYWORDS, SettingManager.GetSetting().MetaKeywords);
        th.Put(TagFields.META_DESCRIPTION, SettingManager.GetSetting().MetaDescription);

        th.Put(TagFields.FOOTER_HTML, SettingManager.GetSetting().FooterHtml);

        th.Put(TagFields.VERSION, SettingManager.GetSetting().Version);

        th.Put(TagFields.PAGE_TITLE, "首页");

        th.Put(TagFields.SITE_PATH, ConfigHelper.SitePath);
        th.Put(TagFields.SITE_URL, ConfigHelper.SiteUrl);

        th.Put(TagFields.THEME_PATH, ConfigHelper.SitePath + "themes/" + themeName + "/");
        th.Put(TagFields.THEME_URL, ConfigHelper.SiteUrl + "themes/" + themeName + "/");

        th.Put(TagFields.IS_DEFAULT, "0");
        th.Put(TagFields.IS_POST, "0");

        //th.Put(TagFields.FEED_URL, ConfigHelper.SiteUrl + "feed/post" + SettingManager.GetSetting().RewriteExtension);
        //th.Put(TagFields.FEED_COMMENT_URL, ConfigHelper.SiteUrl + "feed/comment" + SettingManager.GetSetting().RewriteExtension);

        th.Put(TagFields.FEED_URL, ConfigHelper.SiteUrl + "feed/post.aspx");
        th.Put(TagFields.FEED_COMMENT_URL, ConfigHelper.SiteUrl + "feed/comment.aspx");

        th.Put(TagFields.PAGER, string.Empty);
        th.Put(TagFields.PAGER_INDEX, RequestHelper.QueryInt("page", 1));

        th.Put(TagFields.URL, RequestHelper.CurrentUrl);
        th.Put(TagFields.DATE, DateTime.Now);

        th.Put(TagFields.ARCHIVES, ArchiveManager.GetArchive());

        th.Put(TagFields.SEARCH_KEYWORD, string.Empty);

        th.Put(TagFields.QUERY_COUNT, 0);
        th.Put(TagFields.PROCESS_TIME, 0);

        th.Put(TagFields.ENABLE_VERIFYCODE, SettingManager.GetSetting().EnableVerifyCode);

        string headhtml = string.Empty;

        headhtml += string.Format("<meta name=\"generator\" content=\"Loachs {0}\" />\n", SettingManager.GetSetting().Version);
        headhtml += "<meta name=\"author\" content=\"Loachs Team\" />\n";
        headhtml += string.Format("<meta name=\"copyright\" content=\"2008-{0} Loachs Team.\" />\n", DateTime.Now.Year);
        headhtml += string.Format("<link rel=\"alternate\" type=\"application/rss+xml\" title=\"{0}\"  href=\"{1}\"  />\n", SettingManager.GetSetting().SiteName, ConfigHelper.SiteUrl + "feed/post" + SettingManager.GetSetting().RewriteExtension);
        headhtml += string.Format("<link rel=\"EditURI\" type=\"application/rsd+xml\" title=\"RSD\" href=\"{0}xmlrpc/rsd.aspx\" />\n", ConfigHelper.SiteUrl);
        headhtml += string.Format("<link rel=\"wlwmanifest\" type=\"application/wlwmanifest+xml\" href=\"{0}xmlrpc/wlwmanifest.aspx\" />", ConfigHelper.SiteUrl);

        th.Put(TagFields.HEAD, headhtml);

        //if (Utils.IsSupportUrlRewriter == false)
        //{
        //    th.Put(TagFields.SEARCH_URL, ConfigHelper.SiteUrl + "default.aspx?type=search&keyword=");
        //}
        //else
        //{
        //      th.Put(TagFields.SEARCH_URL, ConfigHelper.SiteUrl + "search");
        //   }

        #endregion

        #region 文章

        //th.Put(TagFields.POST, null);
        //th.Put(TagFields.POST_MESSAGE, null);
        //th.Put(TagFields.POSTS, null);

        th.Put(TagFields.RECENT_POSTS, PostManager.GetPostList(SettingManager.GetSetting().SidebarPostCount, -1, -1, -1, 1, -1, 0));
        th.Put(TagFields.RECOMMEND_POSTS, PostManager.GetPostList(SettingManager.GetSetting().SidebarPostCount, -1, -1, 1, 1, -1, 0));
        th.Put(TagFields.TOP_POSTS, PostManager.GetPostList(Int32.MaxValue, -1, -1, -1, 1, 1, 0));

        //th.Put(TagFields.FEED_POSTS, null);

        #endregion

        #region 评论

        //th.Put(TagFields.COMMENTS, null);

        th.Put(TagFields.RECENT_COMMENTS, CommentManager.GetCommentListByRecent(SettingManager.GetSetting().SidebarCommentCount));

        if (PageUtils.IsLogin)
        {
            UserInfo user = UserManager.GetUser(PageUtils.CurrentUserId);
            if (user != null)
            {
                th.Put(TagFields.COMMENT_AUTHOR, user.Name);
                th.Put(TagFields.COMMENT_EMAIL, user.Email);
                th.Put(TagFields.COMMENT_SITEURL, user.SiteUrl);
            }
        }
        else
        {
            th.Put(TagFields.COMMENT_AUTHOR, Server.UrlDecode(PageUtils.GetCookie(TagFields.COMMENT_AUTHOR)));
            th.Put(TagFields.COMMENT_EMAIL, Server.UrlDecode(PageUtils.GetCookie(TagFields.COMMENT_EMAIL)));
            th.Put(TagFields.COMMENT_SITEURL, Server.UrlDecode(PageUtils.GetCookie(TagFields.COMMENT_SITEURL)));
        }
        th.Put(TagFields.COMMENT_CONTENT, string.Empty);
        th.Put(TagFields.COMMENT_MESSAGE, string.Empty);

        #endregion

        #region 作者,分类,标签

        th.Put(TagFields.AUTHORS, UserManager.GetUserList().FindAll(delegate(UserInfo user) { return(user.Status == 1); }));
        th.Put(TagFields.CATEGORIES, CategoryManager.GetCategoryList());
        th.Put(TagFields.RECENT_TAGS, TagManager.GetTagList(SettingManager.GetSetting().SidebarTagCount));

        #endregion

        #region 连接
        List <LinkInfo> a = LinkManager.GetLinkList(-1, 1);
        th.Put(TagFields.LINKS, LinkManager.GetLinkList(-1, 1));
        th.Put(TagFields.NAV_LINKS, LinkManager.GetLinkList((int)LinkPosition.Navigation, 1));
        th.Put(TagFields.GENERAL_LINKS, LinkManager.GetLinkList((int)LinkPosition.General, 1));

        #endregion

        #region 统计

        th.Put(TagFields.POST_COUNT, StatisticsManager.GetStatistics().PostCount);
        th.Put(TagFields.COMMENT_COUNT, StatisticsManager.GetStatistics().CommentCount);
        th.Put(TagFields.VIEW_COUNT, StatisticsManager.GetStatistics().VisitCount);
        th.Put(TagFields.AUTHOR_COUNT, UserManager.GetUserList().FindAll(delegate(UserInfo user) { return(user.Status == 1); }).Count);

        #endregion
    }
Beispiel #29
0
        public ActionResult AdminDeletetPost(int id)
        {
            var model = new PostManager().GetPostByID(id);

            return(View(model));
        }
Beispiel #30
0
    /// <summary>
    /// 加载文章
    /// </summary>
    protected void LoadPost()
    {
        th.Put(TagFields.IS_POST, "1");

        if (RequestHelper.IsPost && !RequestHelper.IsCrossSitePost)
        {
            AddComment();
        }

        PostInfo post = null;

        int    postId = -1;
        string name   = RequestHelper.QueryString("name");

        if (StringHelper.IsInt(name))
        {
            post = PostManager.GetPost(StringHelper.StrToInt(name, 0));
        }
        else
        {
            post = PostManager.GetPost(StringHelper.SqlEncode(name));
        }

        if (post == null)
        {
            ResponseError("文章未找到", "囧!没有找到此文章!", 404);
        }

        if (post.Status == (int)PostStatus.Draft)
        {
            ResponseError("文章未发布", "囧!此文章未发布!");
        }

        string cookie = "isviewpost" + post.PostId;
        int    isview = StringHelper.StrToInt(PageUtils.GetCookie(cookie), 0);

        //未访问或按刷新统计
        if (isview == 0 || SettingManager.GetSetting().SiteTotalType == 1)
        {
            PostManager.UpdatePostViewCount(post.PostId, 1);
        }
        //未访问
        if (isview == 0 && SettingManager.GetSetting().SiteTotalType == 2)
        {
            PageUtils.SetCookie(cookie, "1", 1440);
        }

        th.Put(TagFields.POST, post);
        th.Put(TagFields.PAGE_TITLE, post.Title);

        string metaKeywords = string.Empty;

        foreach (TagInfo tag in post.Tags)
        {
            metaKeywords += tag.Name + ",";
        }
        if (metaKeywords.Length > 0)
        {
            metaKeywords = metaKeywords.TrimEnd(',');
        }
        th.Put(TagFields.META_KEYWORDS, metaKeywords);

        string metaDescription = post.Summary;

        if (string.IsNullOrEmpty(post.Summary))
        {
            metaDescription = post.Content;
        }
        th.Put(TagFields.META_DESCRIPTION, StringHelper.CutString(StringHelper.RemoveHtml(metaDescription), 50).Replace("\n", ""));

        int recordCount = 0;
        List <CommentInfo> commentList = CommentManager.GetCommentList(SettingManager.GetSetting().PageSizeCommentCount, Pager.PageIndex, out recordCount, SettingManager.GetSetting().CommentOrder, -1, post.PostId, 0, -1, -1, null);

        th.Put(TagFields.COMMENTS, commentList);
        th.Put(TagFields.PAGER, Pager.CreateHtml(SettingManager.GetSetting().PageSizeCommentCount, recordCount, post.PageUrl + "#comments"));

        //同时判断评论数是否一致
        if (recordCount != post.CommentCount)
        {
            post.CommentCount = recordCount;
            PostManager.UpdatePost(post);
        }

        th.Put(TagFields.LOACHS, new LoachsDataManager());

        if (System.IO.File.Exists(Server.MapPath(string.Format("{0}/themes/{1}/template/{2}", ConfigHelper.SitePath, themeName, post.Template))))
        {
            Display(post.Template);
        }
        else
        {
            Display("post.html");
        }
    }
        public async Task GetForumPostsAsync()
        {
            if (ForumThreadEntity == null)
            {
                AwfulDebugger.SendMessageDialogAsync("Something went wrong...",
                    new Exception("ForumThreadEntity is null."));
                return;
            }
            ThreadNotSelected = false;
IsLoading = true;
            bool isSuccess;
            string errorMessage = string.Empty;
            var postManager = new PostManager();
            var postList = new List<ForumPostEntity>();
            try
            {
                postList = await postManager.GetThreadPostsAsync(ForumThreadEntity);
                isSuccess = true;
            }
            catch (Exception ex)
            {
                IsLoading = false;
                isSuccess = false;
                errorMessage = ex.Message;
            }
            if (!isSuccess)
            {
                await AwfulDebugger.SendMessageDialogAsync("Failed to get thread posts.", new Exception(errorMessage));
                return;
            }

            var count = postList.Count(node => !node.HasSeen);
            if (ForumThreadEntity.RepliesSinceLastOpened > 0)
            {
                if (ForumThreadEntity.RepliesSinceLastOpened - count < 0)
                {
                    ForumThreadEntity.RepliesSinceLastOpened = 0;
                }
                else
                {
                    ForumThreadEntity.RepliesSinceLastOpened -= count;
                }
            }
#if WINDOWS_PHONE_APP
            ForumThreadEntity.PlatformIdentifier = PlatformIdentifier.WindowsPhone;
#else
            ForumThreadEntity.PlatformIdentifier = PlatformIdentifier.Windows8;
#endif
            try
            {
                GetDarkModeSetting(ForumThreadEntity);
                // Force Garbage Collection when navigating to webview. The web view has nasty memory leaks :/.
                Locator.ViewModels.MainPageVm.MainWebView.NavigateToString(string.Empty);
                GC.Collect();
                Locator.ViewModels.MainPageVm.MainWebView.NavigateToString(await HtmlFormater.FormatThreadHtml(ForumThreadEntity, postList));
                ForumThreadEntity = ForumThreadEntity;
                PageNumbers = Enumerable.Range(1, ForumThreadEntity.TotalPages).ToArray();
            }
            catch (Exception ex)
            {
                AwfulDebugger.SendMessageDialogAsync("An error occured creating the thread HTML", ex);
            }
            IsLoading = false;
        }
Beispiel #32
0
 public CommentsController(CommentManager categoryManager, UserManager userManager, PostManager postManager)
 {
     this._commentManager = categoryManager;
     this._userManager    = userManager;
     this._postManager    = postManager;
 }
Beispiel #33
0
        private async void WebView_ScriptNotify(object sender, NotifyEventArgs e)
        {
            if (_vm.ForumThreadEntity == null)
            {
                return;
            }
            if (e == null)
            {
                return;
            }
            string stringJson = e.Value;
            ThreadCommand command = null;
            try
            {
                command = JsonConvert.DeserializeObject<ThreadCommand>(stringJson);
            }
            catch (Exception ex)
            {
                AwfulDebugger.SendMessageDialogAsync("A thread javascript command failed", ex);
            }
            if (command == null)
            {
                return;
            }
            switch (command.Command)
            {
                case "quote":
                    Frame.Navigate(typeof(ReplyPage), command.Id);
                    break;
                case "edit":
                    Frame.Navigate(typeof(EditPage), command.Id);
                    break;
                case "setFont":
                    SetFontSize();
                    break;
                case "scrollToPost":
                    if (!string.IsNullOrEmpty(_vm.ForumThreadEntity.ScrollToPostString))
                        try
                        {
                            await ThreadWebView.InvokeScriptAsync("ScrollToDiv", new[] { _vm.ForumThreadEntity.ScrollToPostString });
                        }
                        catch (Exception ex)
                        {
                            AwfulDebugger.SendMessageDialogAsync("A thread javascript command failed", ex);
                        }
                    break;
                case "markAsLastRead":
                    await _threadManager.MarkPostAsLastRead(_forumThread, Convert.ToInt32(command.Id));
                    int nextPost = Convert.ToInt32(command.Id) + 1;

                    try
                    {
                        await ThreadWebView.InvokeScriptAsync("ScrollToDiv", new[] { string.Concat("#postId", nextPost.ToString()) });
                    }
                    catch (Exception ex)
                    {
                        AwfulDebugger.SendMessageDialogAsync("A thread javascript command failed", ex);
                        return;
                    }
                    var message = new MessageDialog("Post marked as last read! Now go on and live your life!")
                        {
                            DefaultCommandIndex = 1
                        };
                    await message.ShowAsync();
                    break;
                case "openThread":
                      var query = Extensions.ParseQueryString(command.Id);
                    if (query.ContainsKey("action") && query["action"].Equals("showPost"))
                    {
                        var postManager = new PostManager();
                        try
                        {
                            var html = await postManager.GetPost(Convert.ToInt32(query["postid"]));
                        }
                        catch (Exception ex)
                        {
                            AwfulDebugger.SendMessageDialogAsync("A thread javascript command failed", ex);
                            return;
                        }
                        return;
                    }
                    var threadManager = new ThreadManager();
                    var threadEntity = new ForumThreadEntity();
                    var thread = await threadManager.GetThread(threadEntity, command.Id);
                    if (thread == null)
                    {
                        var error = new MessageDialog("Specified post was not found in the live forums.")
                        {
                            DefaultCommandIndex = 1
                        };
                        await error.ShowAsync();
                        break;
                    }
                    string jsonObjectString = JsonConvert.SerializeObject(threadEntity);
                    Frame.Navigate(typeof(ThreadPage), jsonObjectString);
                    break;
                default:
                    var msgDlg = new MessageDialog("Not working yet!")
                    {
                        DefaultCommandIndex = 1
                    };
                    await msgDlg.ShowAsync();
                    break;
            }
        }
Beispiel #34
0
 public PostController()
 {
     buildingManager = new PropertyManager();
     postManager     = new PostManager();
 }
Beispiel #35
0
        // Pulls all the main forum posts from the database
        public List <Post> FindMainForumPost()
        {
            PostManager Manager = new PostManager();

            return(Manager.GetMainPost());
        }
Beispiel #36
0
 public PostController(PostManager repo)
 {
     _repo = repo;
 }