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