예제 #1
0
        public async Task <ActionResult> Apply(Links links)
        {
            Uri uri = new Uri(links.Url);

            using (HttpClient client = new HttpClient()
            {
                BaseAddress = uri
            })
            {
                client.DefaultRequestHeaders.UserAgent.Add(ProductInfoHeaderValue.Parse("Mozilla/5.0"));
                client.DefaultRequestHeaders.Referrer = Request.Url;
                return(await await client.GetAsync(uri.PathAndQuery).ContinueWith(async t =>
                {
                    if (t.IsFaulted || t.IsCanceled)
                    {
                        return ResultData(null, false, "添加失败!检测到您的网站疑似挂了,或者连接到你网站的时候超时,请检查下!");
                    }
                    var res = await t;
                    if (res.IsSuccessStatusCode)
                    {
                        var s = await res.Content.ReadAsStringAsync();
                        if (s.Contains(CommonHelper.GetSettings("Domain")))
                        {
                            bool b = LinksBll.AddOrUpdateSaved(l => l.Url, links) > 0;
                            return ResultData(null, b, b ? "添加成功!这可能有一定的延迟,如果没有看到您的链接,请稍等几分钟后刷新页面即可,如有疑问,请联系站长。" : "添加失败!这可能是由于网站服务器内部发生了错误,如有疑问,请联系站长。");
                        }
                        return ResultData(null, false, $"添加失败!检测到您的网站上未将本站设置成友情链接,请先将本站主域名:{CommonHelper.GetSettings("Domain")}在您的网站设置为友情链接,并且能够展示后,再次尝试添加即可!");
                    }
                    return ResultData(null, false, "添加失败!检测到您的网站疑似挂了!返回状态码为:" + res.StatusCode);
                }));
            }
        }
예제 #2
0
        public ActionResult GetPageData(int page = 1, int size = 10)
        {
            List <Links> list      = LinksBll.GetAll().OrderBy(p => p.Status).ThenByDescending(l => l.Id).Skip((page - 1) * size).Take(size).ToList();
            var          total     = LinksBll.GetAll().Count();
            var          pageCount = Math.Ceiling(total * 1.0 / size).ToInt32();

            return(PageResult(list, pageCount, total));
        }
예제 #3
0
        public ActionResult Toggle(int id, bool state)
        {
            Links link = LinksBll.GetById(id);

            link.Status = !state ? Status.Available : Status.Unavailable;
            bool b = LinksBll.UpdateEntitySaved(link);

            return(ResultData(null, b, b ? "切换成功!" : "切换失败!"));
        }
예제 #4
0
        public ActionResult ToggleWhitelist(int id, bool state)
        {
            Links link = LinksBll.GetById(id);

            link.Except = !state;
            bool b = LinksBll.UpdateEntitySaved(link);

            return(ResultData(null, b, b ? "切换成功!" : "切换失败!"));
        }
예제 #5
0
        public ActionResult Edit(Links model)
        {
            Links links = LinksBll.GetById(model.Id);

            links.Name = model.Name;
            links.Url  = model.Url;
            bool b = LinksBll.UpdateEntitySaved(links);

            return(ResultData(null, b, b ? "保存成功" : "保存失败"));
        }
예제 #6
0
        public ActionResult Index()
        {
            UserInfoOutputDto     user = Session.GetByRedis <UserInfoOutputDto>(SessionKey.UserInfo);
            List <LinksOutputDto> list = LinksBll.LoadEntitiesNoTracking <LinksOutputDto>(l => l.Status == Status.Available).ToList();

            if (user != null && user.IsAdmin)
            {
                return(View("Index_Admin", list));
            }
            return(View(list));
        }
예제 #7
0
     /// <summary>在调用操作方法后调用。</summary>
     /// <param name="filterContext">有关当前请求和操作的信息。</param>
     protected override void OnActionExecuted(ActionExecutedContext filterContext)
     {
         base.OnActionExecuted(filterContext);
         if (filterContext.HttpContext.Request.HttpMethod.Equals("POST", StringComparison.InvariantCultureIgnoreCase) && filterContext.Result is ViewResult)
         {
             filterContext.Result = ResultData(null, false, "该URL仅支持Get请求方式", false, HttpStatusCode.MethodNotAllowed);
             return;
         }
         #region 准备页面数据模型
         ViewBag.menus = MenuBll.LoadEntitiesFromL2CacheNoTracking <MenuOutputDto>(m => m.Status == Status.Available).OrderBy(m => m.Sort).ToList(); //菜单
         PageFootViewModel model = new PageFootViewModel                                                                                             //页脚
         {
             Links    = LinksBll.LoadPageEntitiesFromCacheNoTracking <int, LinksOutputDto>(1, 40, out int _, l => l.Status == Status.Available, l => l.Id, false, 1).ToList(),
             Contacts = ContactsBll.LoadEntitiesFromL2CacheNoTracking <int, ContactsOutputDto>(l => l.Status == Status.Available, l => l.Id, false).ToList()
         };
         ViewBag.Footer = model;
         #endregion
     }
 }
예제 #8
0
        public ActionResult Add(Links links)
        {
            bool b = LinksBll.AddOrUpdateSaved(l => l.Url, links) > 0;

            return(b ? ResultData(null, message: "添加成功!") : ResultData(null, false, "添加失败!"));
        }
예제 #9
0
        public ActionResult Delete(int id)
        {
            bool b = LinksBll.DeleteByIdSaved(id);

            return(ResultData(null, b, b ? "删除成功!" : "删除失败!"));
        }