public async void GetImageAsync(ImageListModel item) { try { item.ImageLoadState = EnumLoadState.Loading; if (!string.IsNullOrEmpty(item.CacheName)) { if (!await ImageCache.HasCache(item.CacheName)) { var imgStream = await Site.DownloadImage(item.ImageUrl, item.IsCance.Token); if (imgStream != null) { await ImageCache.CreateCache(item.CacheName, imgStream); } } BitmapImage img = await ImageCache.HasCache(item.CacheName) ? await ImageCache.GetImage(item.CacheName) : ImageCache.ErrorImage; if (img == null) { item.Image = ImageCache.ErrorImage; } item.Image = img; item.ImageLoadState = EnumLoadState.Loaded; item.OnLoaded(); } } catch (Exception ex) { } }
private void InitializeData() { for (int i = 1; i <= ImageCount; i++) { int id = i; var order = EnumOrder.Next; if (id < NowPageIndex) { order = EnumOrder.Prev; } else if (id == NowPageIndex) { order = EnumOrder.Center; } var model = new ImageListModel { Id = id, //Index = i.ToString(), Order = order, }; //model.Loaded += ModelLoaded; ImageList.Add(model); } }
private async Task <ObservableCollection <ImageListModel> > GetNowPageData(IHtmlDocument document) { return(await Task.Run(() => { ObservableCollection <ImageListModel> datas = new ObservableCollection <ImageListModel>(); try { var divs = document.QuerySelectorAll("#gdt .gdtl"); foreach (var element in divs) { var img = element.FirstElementChild.FirstElementChild; var model = new ImageListModel(); //model.GetImageUrl += ModelGetImageUrl; model.Index = img.Attributes["alt"].Value; model.Id = model.Index.ToInt(); model.Herf = element.FirstElementChild.Attributes["href"].Value; model.CacheName = model.Herf.GetValidFileName() + ".jpg"; model.ImageUrl = img.Attributes["src"].Value; model.Height = _imageHeight; datas.Add(model); } return datas; } catch (Exception ex) { ShowMessage(ex.Message); throw ex; } })); }
/// <summary> /// 添加 /// </summary> /// <returns></returns> public virtual ActionResult Add() { var model = new ImageListModel(); var info = Save(Server.UrlDecode(Request["Path"]), Request["FolderId"].Convert <long>()); if (info == null) { return(View("~/Views/Editor/Image/Index.cshtml", model)); } var rev = info.HandleResult == true; model.ErrorMessage = rev ? "" : info?.Errors?.FirstOrDefault()?.Message; if (rev) { return(RedirectToAction("Index", new RouteValueDictionary { { "Path", Request["Path"] } , { "FolderId", Request["FolderId"] } , { "function", Request["function"] } })); } model.Folders = GetFolders(model); model.Images = GetImages(model); return(View("~/Views/Editor/Image/Index.cshtml", model)); }
/// <summary> /// 得到图片 /// </summary> /// <param name="model"></param> /// <returns></returns> protected virtual IList <FolderEntity> GetFolders(ImageListModel model) { var query = new QueryInfo(); query.Query <FolderEntity>(). Where(it => it.Account.Id == Identity.Id && it.Type == FolderType.Image) .Select(it => new object[] { it.Id, it.Name }); return(this.GetEntities <FolderEntity>(query)); }
// GET: Image public async Task <IActionResult> Index(string sortOrder, string currentFilter, string searchString, int?page) { ViewBag.CurrentSort = sortOrder; ViewBag.IdSortParm = string.IsNullOrEmpty(sortOrder) ? "id" : ""; ViewBag.NameSortParm = string.IsNullOrEmpty(sortOrder) ? "name" : ""; ViewBag.ProductSortParm = string.IsNullOrEmpty(sortOrder) ? "product" : ""; ViewBag.IPathSortParm = string.IsNullOrEmpty(sortOrder) ? "imagepath" : ""; if (searchString != null) { page = 1; } else { searchString = currentFilter; } ViewBag.CurrentFilter = searchString; var list = await GetImageQueryable(); if (!string.IsNullOrEmpty(searchString)) { list = list.Where(s => s.Name.Contains(searchString)); } switch (sortOrder) { case "id": list = list.OrderByDescending(p => p.Id); break; case "name": list = list.OrderByDescending(p => p.Name); break; case "product": list = list.OrderByDescending(p => p.Product_id); break; case "imagepath": list = list.OrderByDescending(p => p.Imagepath); break; default: list = list.OrderBy(s => s.Id); break; } var pageNumber = page ?? 1; var imageList = new ImageListModel { Images = list.ToPagedList(pageNumber, 15) }; return(View(imageList)); }
/// <summary> /// 首页 /// </summary> /// <returns></returns> public virtual ActionResult Index(string folderId, int?page) { var model = new ImageListModel { FolderId = folderId, PageIndex = page.HasValue?page.Value:0 }; model.Folders = GetFolders(model); model.Images = GetImages(model); return(View("~/Views/Editor/Image/Index.cshtml", model)); }
/// <summary> /// 转换成对象列表 /// </summary> public static void convertImageList() { images = new List <ImageListModel>(); foreach (KeyValuePair <string, Dictionary <string, Image> > kvps in ImageUtil.images32) { foreach (KeyValuePair <string, Image> kvp in kvps.Value) { ImageListModel imageListModel = new ImageListModel() { name = kvps.Key + "|" + kvp.Key, image = kvp.Value }; images.Add(imageListModel); } } }
/// <summary> /// 得到图片 /// </summary> /// <param name="model"></param> /// <returns></returns> protected virtual IList <ImageEntity> GetImages(ImageListModel model) { var query = new QueryInfo(); query.SetPageIndex(model.PageIndex).SetPageSize(model.PageSize).Query <ImageEntity>(). Where(it => it.Account.Id == Identity.Id) .Select(it => new object[] { it.Id, it.Name, it.FileName }); if (!string.IsNullOrWhiteSpace(model.FolderId)) { query.AppendWhere("Folder.Id==@FolderId").SetParameter("FolderId", model.FolderId.Convert <long>()); } var infos = this.GetEntities <ImageEntity>(query); model.DataCount = query.DataCount; return(infos); }
private async void View_ScriptNotify(object sender, NotifyEventArgs e) { try { if (!string.IsNullOrEmpty(e.Value)) { JObject jsonBody = JObject.Parse(e.Value); string method = jsonBody["method"].ToString(); string data = jsonBody["data"].ToString(); switch (method) { case "ToListPage": ImageListModel model = data.ToEntity <ImageListModel>(); PivotView.AddSelect(model.Title, new ListPage(model.Id, NowUrl, ImageCount)); break; case "ToHomePage": PivotView.AddSelect("主页", new HomePage(data)); break; case "DownTorrent": var torrent = _torrents.First(x => x.DownUrl == data); try { var file = await Http.GetBtyeAsync(data); AppSettings.DownPath = await FileHelper.DownFile(torrent.Name + ".torrent", file, AppSettings.DownPath); ShowWebViewToast(torrent.Name + "下载成功!"); } catch (Exception ex) { ShowWebViewToast(torrent.Name + "下载失败! 错误信息:" + ex.Message); } break; } } } catch (Exception ex) { ShowMessage(ex.Message); } }
private void View_ScriptNotify(object sender, NotifyEventArgs e) { if (!string.IsNullOrEmpty(e.Value)) { JObject jsonBody = JObject.Parse(e.Value); string method = jsonBody["method"].ToString(); string data = jsonBody["data"].ToString(); switch (method) { case "ToDetailPage": ImageListModel model = data.ToEntity <ImageListModel>(); PivotView.AddSelect(model.Title, new DetailPage(model.Herf)); break; case "Search": Search(data); break; } } }
/// <summary> /// 获取当前页的数据 /// </summary> /// <returns></returns> private async Task <ObservableCollection <ImageListModel> > GetNowPageData(IHtmlDocument document) { return(await Task.Run(() => { ObservableCollection <ImageListModel> datas = new ObservableCollection <ImageListModel>(); try { if (!IsLoaded) { var divs = document.QuerySelectorAll(".id3"); if (divs != null && divs.Any()) { foreach (var div in divs) { ImageListModel model = new ImageListModel(); //model.GetImageUrl += ModelGetImageUrl; var a = div.FirstElementChild; var img = a.FirstElementChild; model.Title = div.PreviousElementSibling.FirstElementChild.TextContent; model.Herf = a.Attributes["href"].Value; model.CacheName = model.Herf.GetValidFileName() + ".jpg"; model.ImageUrl = img.Attributes["src"].Value; datas.Add(model); } } } } catch (Exception ex) { //throw ex; } return datas; })); }