예제 #1
0
        public ImageInfoModel getFullImageDetails(int folderId, string linkId)
        {
            var timer = new System.Diagnostics.Stopwatch();

            timer.Start();
            var imageInfo = new ImageInfoModel();

            try
            {
                using (var db = new OggleBoobleMySqlContext())
                {
                    //CategoryImageLink dbCategoryImageLink= db.CategoryImageLinks.Where(l=>l.ImageLinkId)

                    CategoryFolder dbPageFolder = db.CategoryFolders.Where(f => f.Id == folderId).FirstOrDefault();
                    imageInfo.RootFolder = dbPageFolder.RootFolder;
                    imageInfo.FolderPath = dbPageFolder.FolderPath;

                    ImageFile dbImageFile = db.ImageFiles.Where(i => i.Id == linkId).FirstOrDefault();
                    if (dbImageFile == null)
                    {
                        imageInfo.Success = "no image link found"; return(imageInfo);
                    }

                    if (dbImageFile.FolderId != folderId)
                    {
                        var dbModelFolder = db.CategoryFolders.Where(f => f.Id == dbImageFile.FolderId).FirstOrDefault();
                        if (dbModelFolder == null)
                        {
                            imageInfo.Success = "no image link folderId file found"; return(imageInfo);
                        }
                        imageInfo.ModelFolderId   = dbModelFolder.Id;
                        imageInfo.ModelFolderName = dbModelFolder.FolderName;
                    }

                    imageInfo.FolderName    = dbPageFolder.FolderName;
                    imageInfo.Height        = dbImageFile.Height;
                    imageInfo.FileName      = dbImageFile.FileName;
                    imageInfo.Link          = dbImageFile.Id;
                    imageInfo.Width         = dbImageFile.Width;
                    imageInfo.Size          = dbImageFile.Size;
                    imageInfo.LastModified  = dbImageFile.Acquired.ToShortDateString();
                    imageInfo.ExternalLink  = dbImageFile.ExternalLink;
                    imageInfo.InternalLinks = (from l in db.CategoryImageLinks
                                               join f in db.CategoryFolders on l.ImageCategoryId equals f.Id
                                               where l.ImageLinkId == linkId && l.ImageCategoryId != folderId
                                               select new { folderId = f.Id, folderName = f.FolderName })
                                              .ToDictionary(i => i.folderId, i => i.folderName);
                }
                imageInfo.Success = "ok";
            }
            catch (Exception ex) {
                imageInfo.Success = Helpers.ErrorDetails(ex);
            }
            timer.Stop();
            System.Diagnostics.Debug.WriteLine("GetImageLinks took: " + timer.Elapsed);
            return(imageInfo);
        }
        public void GetImageInfo_ByName_ReturnsInfo()
        {
            var fileName = "Image1.jpg";

            File.Copy(Path.Combine(_testData, fileName), Path.Combine(_rootPath, "Images", fileName));
            var expected = new ImageInfoModel {
                Height = 256, Width = 256
            };

            var actual = _service.GetImageInfo(fileName);

            Assert.Equal(expected.Width, actual.Width);
            Assert.Equal(expected.Height, actual.Height);
        }
예제 #3
0
        private void FileBrowseGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ImageInfoModel imageModel = FileBrowseGrid.SelectedItem as ImageInfoModel;

            if (imageModel == null)
            {
                return;
            }

            ImagePath = imageModel.ImagePath;

            m_PreviewImageModel.ImgInfoModel = imageModel;
            m_ResultViewModel.ClearResultGrid();
        }
예제 #4
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public ImageInfoModel GetModel(string ImgId, string ImgType)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select ImgId, ImgType, ImgUrl, IsBind, CreateTime, CreateUser  ");
            strSql.Append("  from CORE.dbo.ImageInfo ");
            strSql.Append(" where ImgId=@ImgId and ImgType=@ImgType ");
            SqlParameter[] parameters =
            {
                new SqlParameter("@ImgId",   SqlDbType.VarChar, 50),
                new SqlParameter("@ImgType", SqlDbType.VarChar, 10)
            };
            parameters[0].Value = ImgId;
            parameters[1].Value = ImgType;


            ImageInfoModel model = new ImageInfoModel();
            DataSet        ds    = helper.ExecSqlReDs(strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                model.ImgId   = ds.Tables[0].Rows[0]["ImgId"].ToString();
                model.ImgType = ds.Tables[0].Rows[0]["ImgType"].ToString();
                model.ImgUrl  = ds.Tables[0].Rows[0]["ImgUrl"].ToString();
                if (ds.Tables[0].Rows[0]["IsBind"].ToString() != "")
                {
                    if ((ds.Tables[0].Rows[0]["IsBind"].ToString() == "1") || (ds.Tables[0].Rows[0]["IsBind"].ToString().ToLower() == "true"))
                    {
                        model.IsBind = true;
                    }
                    else
                    {
                        model.IsBind = false;
                    }
                }
                if (ds.Tables[0].Rows[0]["CreateTime"].ToString() != "")
                {
                    model.CreateTime = DateTime.Parse(ds.Tables[0].Rows[0]["CreateTime"].ToString());
                }
                model.CreateUser = ds.Tables[0].Rows[0]["CreateUser"].ToString();

                return(model);
            }
            else
            {
                return(model);
            }
        }
        /// <summary>
        /// Gets the image info from website.
        /// </summary>
        /// <returns>The image info of website.</returns>
        /// <param name="document">Document is content of website</param>
        private ImageInfoModel GetImageInfoFrom(HtmlDocument document)
        {
            ImageInfoModel imageInfo = null;
            var            metaTags  = document.DocumentNode.SelectNodes("//meta");

            var mImage = metaTags.FirstOrDefault((tag) =>
            {
                return(tag?.Attributes["itemprop"]?.Value == "image");
            });

            if (mImage == null)
            {
                mImage = metaTags.FirstOrDefault((tag) =>
                {
                    return(tag?.Attributes["proprty"]?.Value == "twitter:image" ||
                           tag?.Attributes["proprty"]?.Value == "og:image");
                });
            }

            if (mImage != null && !string.IsNullOrEmpty(mImage.Attributes["content"].Value))
            {
                imageInfo = new ImageInfoModel(mImage.Attributes["content"].Value);
            }

            // If there isn't any meta tag for image, try to get fav icon of website page.
            var otherTags = document.DocumentNode.SelectNodes("//link");

            if (otherTags != null)
            {
                var favIcon = otherTags.FirstOrDefault((tag) => tag?.Attributes["rel"]?.Value?.ToLower() == "icon");

                if (favIcon != null)
                {
                    var tagProperty = favIcon?.Attributes["href"];

                    if (imageInfo == null)
                    {
                        imageInfo = new Models.ImageInfoModel(tagProperty?.Value);
                    }
                    else
                    {
                        imageInfo.ImgUrl = tagProperty.Value;
                    }
                }
            }

            return(imageInfo);
        }
예제 #6
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(ImageInfoModel model)
        {
            bool          reValue = true;
            int           reCount = 0;
            StringBuilder strSql  = new StringBuilder();

            strSql.Append("update CORE.dbo.ImageInfo set ");

            strSql.Append(" ImgId = @ImgId , ");
            strSql.Append(" ImgType = @ImgType , ");
            strSql.Append(" ImgUrl = @ImgUrl , ");
            strSql.Append(" IsBind = @IsBind , ");
            strSql.Append(" CreateTime = @CreateTime , ");
            strSql.Append(" CreateUser = @CreateUser  ");
            strSql.Append(" where ImgId=@ImgId and ImgType=@ImgType  ");

            SqlParameter[] parameters =
            {
                new SqlParameter("@ImgId",      SqlDbType.VarChar,    50),
                new SqlParameter("@ImgType",    SqlDbType.VarChar,    10),
                new SqlParameter("@ImgUrl",     SqlDbType.VarChar,   200),
                new SqlParameter("@IsBind",     SqlDbType.Bit,         1),
                new SqlParameter("@CreateTime", SqlDbType.DateTime),
                new SqlParameter("@CreateUser", SqlDbType.VarChar, 50)
            };

            parameters[0].Value = model.ImgId;
            parameters[1].Value = model.ImgType;
            parameters[2].Value = model.ImgUrl;
            parameters[3].Value = model.IsBind;
            parameters[4].Value = model.CreateTime;
            parameters[5].Value = model.CreateUser; try
            {//异常处理
                reCount = this.helper.ExecSqlReInt(strSql.ToString(), parameters);
            }
            catch (Exception ex)
            {
                this.helper.Close();
                throw ex;
            }
            if (reCount <= 0)
            {
                reValue = false;
            }
            return(reValue);
        }
예제 #7
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public bool Add(ImageInfoModel model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into CORE.dbo.ImageInfo (");
            strSql.Append("ImgId,ImgType,ImgUrl,IsBind,CreateTime,CreateUser");
            strSql.Append(") values (");
            strSql.Append("@ImgId,@ImgType,@ImgUrl,@IsBind,@CreateTime,@CreateUser");
            strSql.Append(") ");

            SqlParameter[] parameters =
            {
                new SqlParameter("@ImgId",      SqlDbType.VarChar,    50),
                new SqlParameter("@ImgType",    SqlDbType.VarChar,    10),
                new SqlParameter("@ImgUrl",     SqlDbType.VarChar,   200),
                new SqlParameter("@IsBind",     SqlDbType.Bit,         1),
                new SqlParameter("@CreateTime", SqlDbType.DateTime),
                new SqlParameter("@CreateUser", SqlDbType.VarChar, 50)
            };

            parameters[0].Value = model.ImgId;
            parameters[1].Value = model.ImgType;
            parameters[2].Value = model.ImgUrl;
            parameters[3].Value = model.IsBind;
            parameters[4].Value = model.CreateTime;
            parameters[5].Value = model.CreateUser;

            bool result = false;

            try
            {
                helper.ExecSqlReInt(strSql.ToString(), parameters);


                result = true;
            }
            catch (Exception ex)
            {
                this.helper.Close();
                throw ex;
            }
            finally
            {
            }
            return(result);
        }
예제 #8
0
        public static ImageInfoModel NewArtList(ArtInfoParams artInfoParams)
        {
            Tk_GalleryDetailBLL tk_GalleryDetailBLL = new Tk_GalleryDetailBLL();
            string json = artInfoParams.TryToJson();
            List <Tk_GalleryDetail> list = tk_GalleryDetailBLL.GetPageList(new Pagination()
            {
                page = 1, rows = 1, sidx = "PeriodsNumber", sord = "desc"
            }, json).ToList();
            ImageInfoModel rtdata = new ImageInfoModel();

            if (list.Count > 0)
            {
                rtdata = new ImageInfoModel()
                {
                    PeriodsNumber = list[0].PeriodsNumber
                };
            }
            // rtdata = rtdata.OrderBy(s => s.GalleryNumber).ToList();//升序排序
            return(rtdata);
        }
예제 #9
0
        public HttpResponseMessage QueryArtInfo(ArtInfoParams artInfoParams)
        {
            BaseJson <ImageInfoModel> resultMsg = new BaseJson <ImageInfoModel> {
                Status = (int)JsonObjectStatus.Error, Message = "服务器未知错误。", Data = null
            };

            Logger(typeof(GallerMangerApiController), artInfoParams.TryToJson(), "GallerMangerApi/QueryArtInfo链接成功", () =>
            {
                if (string.IsNullOrEmpty(artInfoParams.GalleryId) && string.IsNullOrEmpty(artInfoParams.ID) && string.IsNullOrEmpty(artInfoParams.PeriodsNumber))
                {
                    resultMsg = new BaseJson <ImageInfoModel>
                    {
                        Status  = (int)JsonObjectStatus.Fail,
                        Data    = null,
                        Message = JsonObjectStatus.Fail.GetEnumText() + "GallerMangerApi/QueryArtInfo参数错误: ",
                        BackUrl = null
                    };
                }
                ImageInfoModel data = TKApiBLL.QueryArtInfo(artInfoParams);
                resultMsg           = new BaseJson <ImageInfoModel>
                {
                    Status  = (int)JsonObjectStatus.Success,
                    Data    = data,
                    Message = JsonObjectStatus.Success.GetEnumText(),
                    BackUrl = null
                };
            }, e =>
            {
                resultMsg = new BaseJson <ImageInfoModel>
                {
                    Status  = (int)JsonObjectStatus.Exception,
                    Data    = null,
                    Message = JsonObjectStatus.Exception.GetEnumText() + ",异常信息:" + e.Message,
                    BackUrl = null
                };
            });

            return(resultMsg.TryToJson().ToHttpResponseMessage());
        }
예제 #10
0
        /// <summary>
        /// 查询图谜实体
        /// </summary>
        /// <param name="artInfoParams"></param>
        /// <returns></returns>
        public static ImageInfoModel QueryArtInfo(ArtInfoParams artInfoParams)
        {
            Tk_GalleryDetailBLL tk_GalleryDetailBLL = new Tk_GalleryDetailBLL();
            string json = artInfoParams.TryToJson();
            List <Tk_GalleryDetail> list = tk_GalleryDetailBLL.GetPageList(new Pagination()
            {
                page = 1, rows = 1, sidx = "PeriodsNumber", sord = "desc"
            }, json).ToList();
            ImageInfoModel rtdata = new ImageInfoModel();

            if (list.Count > 0)
            {
                rtdata = new ImageInfoModel()
                {
                    galleryId     = list[0].GalleryId,
                    SortCode      = list[0].SortCode.Value,
                    ID            = list[0].ID,
                    ImageUrl      = list[0].ImageUrl,
                    PeriodsNumber = list[0].PeriodsNumber
                };
            }
            return(rtdata);
        }
예제 #11
0
        public ImageInfoModel GetLimitedImageDetail(int folderId, string linkId)
        {
            //var timer = new System.Diagnostics.Stopwatch();
            //timer.Start();
            var imageInfo = new ImageInfoModel();

            try
            {
                using (var db = new OggleBoobleMySqlContext())
                {
                    var dbPageFolder = db.CategoryFolders.Where(f => f.Id == folderId).FirstOrDefault();
                    imageInfo.FolderName = dbPageFolder.FolderName;
                    imageInfo.FolderType = dbPageFolder.FolderType;

                    var dbImageFile = db.ImageFiles.Where(i => i.Id == linkId).FirstOrDefault();
                    if (dbImageFile == null)
                    {
                        imageInfo.Success = "no image link found"; return(imageInfo);
                    }
                    if (dbImageFile.FolderId != folderId)
                    {
                        var dbModelFolder = db.CategoryFolders.Where(f => f.Id == dbImageFile.FolderId).FirstOrDefault();
                        if (dbModelFolder == null)
                        {
                            imageInfo.Success = "no image link folderId file found"; return(imageInfo);
                        }
                        imageInfo.ModelFolderId   = dbModelFolder.Id;
                        imageInfo.ModelFolderName = dbModelFolder.FolderName;
                    }
                }
                imageInfo.Success = "ok";
            }
            catch (Exception ex) { imageInfo.Success = Helpers.ErrorDetails(ex); }
            //timer.Stop();
            //System.Diagnostics.Debug.WriteLine("GetImageLinks took: " + timer.Elapsed);
            return(imageInfo);
        }