Exemple #1
0
        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;
                }
            }));
        }
Exemple #4
0
        /// <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));
        }
Exemple #5
0
        /// <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));
        }
Exemple #6
0
        // 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));
        }
Exemple #7
0
        /// <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));
        }
Exemple #8
0
 /// <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);
         }
     }
 }
Exemple #9
0
        /// <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);
            }
        }
Exemple #11
0
        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;
                }
            }
        }
Exemple #12
0
        /// <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;
            }));
        }