Example #1
0
        /// <summary>
        /// 导入收藏夹
        /// </summary>
        /// <param name="files"></param>
        /// <returns></returns>
        public ContentResult ImportBookmarks(string files)
        {
            IList <UploadedItem> uploads = UploadedManager.Parse(files);

            return(TryAction(r =>
            {
                int count = 0;
                int successCount = 0;
                int errorCount = 0;
                foreach (UploadedItem item in uploads)
                {
                    string path = Server.MapPath(UrlIconPath);
                    var fullFile = Server.MapPath(item.FilePath);
                    string fileContent = FileHelper.GetFileContent(fullFile, Encoding.GetEncoding("utf-8"));
                    List <string> listItems = DataMiningHelper.GetItemsByTab(fileContent, "<A", "</A>");
                    count += listItems.Count;
                    foreach (string listItem in listItems)
                    {
                        try
                        {
                            IDictionary <string, string> attrs = TagHelper.ParseAttributes(listItem);
                            string url = attrs["HREF"];
                            if (urlsRepository.FindAll().Where(o => o.Url == url).Count() <= 0)
                            {
                                //不存在则新增
                                string encoding = "utf-8";
                                // string html = DataMining.GetHtmlAutoEncode(url, out encoding);
                                Uri uri = new Uri(url);
                                if (attrs.ContainsKey("ICON") && !string.IsNullOrEmpty(attrs["ICON"]))
                                {
                                    string base64 = attrs["ICON"].Replace("data:image/png;base64,", "");
                                    ImgHelper.SaveBase64(base64, Path.Combine(path, uri.Host + ".png"));
                                }
                                else if (attrs.ContainsKey("ICON_URI") && !string.IsNullOrEmpty(attrs["ICON_URI"]))
                                {
                                    DownloadUrlIcon(attrs["ICON_URI"], uri.Host);
                                }
                                UrlsEntity entity = new UrlsEntity()
                                {
                                    Url = url,
                                    CreateTime = DateTime.Now,
                                    Encoding = encoding,
                                    IconName = uri.Host,
                                    IconUrl = string.Format("http://{0}/favicon.ico", uri.Host),
                                    Title = attrs["InnerText"],
                                    Remark = attrs["ADD_DATE"]
                                };
                                urlsRepository.Add(entity);
                            }
                            successCount++;
                        }
                        catch (Exception ex)
                        {
                            errorCount++;
                        }
                    }
                }
                r.Msg = string.Format("导出完毕,总共【{0}】项,成功【{1}】,失败【{2}】", count, successCount, errorCount);
            }));
        }
Example #2
0
 /// <summary>
 /// 更新点击量
 /// </summary>
 /// <param name="id"></param>
 /// <returns></returns>
 public ContentResult UpdateHits(string id)
 {
     return(TryAction(r =>
     {
         UrlsEntity entity = urlsRepository.Get(id);
         entity.Hits += 1;
         urlsRepository.Update(entity);
         r.Msg = string.Empty;
     }));
 }
Example #3
0
 /// <summary>
 /// 保存数据
 /// </summary>
 /// <param name="urls">保存数据的实体</param>
 public ContentResult SaveUrls(UrlsEntity entity)
 {
     return(TrySaveAction(r =>
     {
         if (urlsRepository.FindAll().Where(o => o.Title == entity.Title && entity.Id != o.Id).Count() > 0)
         {
             r.IsSuccess = false;
             r.Msg = "该地址已经存在";
         }
         else
         {
             entity.CreateTime = DateTime.Now;
             entity.IconName = DownloadUrlIcon(entity.IconUrl, entity.IconName);
             entity = urlsRepository.SaveOrUpdate(entity);
         }
         return entity.Id;
     }));
 }
Example #4
0
        /// <summary>
        /// 获取列表数据
        /// </summary>
        /// <param name="urls">查询条件的实体</param>
        /// <param name="sort">排序列</param>
        /// <param name="order">排序方向</param>
        /// <param name="page">页码</param>
        /// <param name="rows">页大小</param>
        public ContentResult GetUrlsList(UrlsEntity entity, string sort, string order, int page = 1, int rows = 20)
        {
            var query = urlsRepository.FindAll();

            //查询条件设置
            if (!string.IsNullOrEmpty(entity.Title))
            {
                query = query.Where(o => o.Title.Contains(entity.Title));
            }
            if (!string.IsNullOrEmpty(entity.Remark))
            {
                query = query.Where(o => o.Remark.Contains(entity.Remark));
            }
            var list = query.OrderByDescending(o => o.Hits).ToPagingList <UrlsEntity>(page, rows);

            foreach (var item in list)
            {
                item.IconUrl = GetIconUrl(item.IconName);
            }
            return(GridResult <UrlsEntity>(list));
        }