private static String getViewsAndReplies( PhotoPost post ) { String result = ""; if (post.Hits > 0) result += lang.get( "view" ) + ":" + post.Hits; if (post.Replies > 0) result += " " + lang.get( "re" ) + ":" + post.Replies; return result; }
public static Post Fill( PhotoPost post, MvcContext ctx, IPhotoPostService postService ) { Post p = new Post(); p.Title = post.Title; p.Description = post.Description; p.ImgUrl = post.ImgUrl; p.ImgMediumUrl = post.ImgMediumUrl; p.ImgThumbUrl = post.ImgThumbUrl; p.Creator = post.Creator.Name; p.Created = post.Created.ToShortDateString(); p.Hits = post.Hits; if (post.PhotoAlbum == null || post.PhotoAlbum.Id == 0) p.Album = alang( ctx, "defaultAlbum" ); else p.Album = post.PhotoAlbum.Name; p.AlbumLink = ctx.link.To( new PhotoController().Album, post.PhotoAlbum.Id ); String lnk = string.Format( " | <a href=\"{0}\">{1}《{2}》</a> ", p.AlbumLink, alang( ctx, "returnAlbum" ), p.Album ); p.AlbumAndLink = lnk;// strUtil.HasText( p.Album ) ? lnk : ""; p.Tags = post.Tag.List.Count > 0 ? "tag:" + post.Tag.HtmlString : ""; String prevnext = getPreNextHtml( ctx, post, postService ); String nextLink = getNextLink( ctx, post, postService ); p.PrevNext = prevnext; p.NextLink = nextLink; return p; }
private void addPhotoPosts( MvcContext ctx ) { User creator = ctx.viewer.obj as User; PhotoApp app = getPhotoAppByUser( creator ); PhotoAlbum album = createUserAlbum( creator, app ); List<PhotoSysCategory> cats = PhotoSysCategory.findAll(); for (int i = 0; i < 20; i++) { PhotoPost x = new PhotoPost(); x.AppId = app.Id; x.DataUrl = Img.CopyToUploadPath( "/__installer/pic/pic" + i + ".jpg" ); x.Title = Path.GetFileName( x.DataUrl ); if (cats.Count > 0) { int idxCat = getCatIndex( cats.Count, i ); x.SysCategoryId = cats[idxCat].Id; } x.PhotoAlbum = album; x.Creator = creator; x.CreatorUrl = creator.Url; x.OwnerId = creator.Id; x.OwnerType = creator.GetType().FullName; x.OwnerUrl = creator.Url; postService.CreatePost( x, app ); } }
public virtual Result CreatePost( Result uploadResult, String photoName, int albumId, MvcContext ctx ) { String path = uploadResult.Info.ToString(); if (strUtil.IsNullOrEmpty( photoName )) { photoName = Path.GetFileNameWithoutExtension( path ); } photoName = strUtil.CutString( photoName, 30 ); PhotoAlbum album = getAlbum( albumId, ctx.viewer.obj as User ); PhotoPost photo = new PhotoPost(); photo.AppId = album.AppId; photo.Creator = (User)ctx.viewer.obj; photo.CreatorUrl = ctx.viewer.obj.Url; photo.OwnerId = ctx.owner.Id; photo.OwnerUrl = ctx.owner.obj.Url; photo.OwnerType = ctx.owner.obj.GetType().FullName; photo.Title = photoName; photo.DataUrl = path; photo.PhotoAlbum = album; photo.Ip = ctx.Ip; Result result = db.insert( photo ); if (result.IsValid) { this.updatePostCount( ctx.app.obj as PhotoApp ); } return result; }
public static void BindPostSingle(MvcContext ctx, IBlock block, PhotoPost x, List<long> likedIds) { block.Set( "x.Link", PhotoLink.ToPost( x.Id ) ); block.Set( "x.Title", x.Title ); block.Set( "x.Description", x.Description ); block.Set( "x.Pic", x.ImgThumbUrl ); block.Set( "x.PicS", x.ImgSmallUrl ); block.Set( "x.PicM", x.ImgMediumUrl ); block.Set( "x.PicO", x.ImgUrl ); int width = x.SizeSX == null ? 170 : x.SizeSX.Width; int height = x.SizeSX == null ? 170 : x.SizeSX.Height; int cfgWidth = getCfgWidth(); if (width > cfgWidth) { height = Convert.ToInt32( (decimal)(cfgWidth * height) / (decimal)width ); width = cfgWidth; } block.Set( "x.WidthSx", width ); block.Set( "x.HeightSx", height ); block.Set( "x.Pins", x.Pins ); block.Set( "x.Likes", x.Likes ); String pinsLikes = ""; if (x.Pins > 0) pinsLikes += "收集:" + x.Pins; if (x.Likes > 0) pinsLikes += " 喜欢:" + x.Likes; if (x.Replies > 0) pinsLikes += " 评论:" + x.Replies; block.Set( "x.PinsLikes", pinsLikes ); if (x.PhotoAlbum != null) { block.Set( "x.AlbumName", x.PhotoAlbum.Name ); block.Set( "x.AlbumLink", PhotoLink.ToAlbumOne( x.PhotoAlbum.OwnerUrl, x.PhotoAlbum.Id ) ); } else { block.Set( "x.AlbumName", "" ); block.Set( "x.AlbumLink", "#" ); } block.Set( "x.CreatorName", x.Creator.Name ); block.Set( "x.CreatorPic", x.Creator.PicSmall ); block.Set( "x.CreatorLink", PhotoLink.ToUser( x.Creator ) ); block.Set( "x.Created", cvt.ToTimeString( x.Created ) ); block.Set( "x.RepinLink", ctx.link.To( new HomeController().Repin, x.Id ) ); block.Set( "x.LikeLink", ctx.link.To( new HomeController().Like, x.Id ) ); block.Set( "x.UnLikeLink", ctx.link.To( new HomeController().UnLike, x.Id ) ); if (likedIds.Contains( x.Id )) { block.Set( "x.LikedCss", "wfpost-liked disabled" ); block.Set( "x.LikeName", "已喜欢" ); } else { block.Set( "x.LikedCss", "wfpost-like" ); block.Set( "x.LikeName", "<i class=\"icon-heart icon-white\"></i> 喜欢" ); } }
private void bindComment( PhotoPost post ) { String commentUrl = t2( new wojilu.Web.Controller.Open.CommentController().List ) + "?url=" + PhotoLink.ToPost( post.Id ) + "&dataType=" + typeof( PhotoPost ).FullName + "&dataTitle=" + post.Title + "&dataUserId=" + post.Creator.Id + "&dataId=" + post.Id + "&appId=" + post.AppId; set( "commentUrl", commentUrl ); }
public void UnLike( User user, PhotoPost post ) { PhotoLike p = this.GetOne( user.Id, post.Id ); p.delete(); post.Likes = PhotoLike.count( "PostId=" + post.Id ); post.update(); user.Likes = PhotoLike.count( "UserId=" + user.Id ); user.update( "Likes" ); }
public virtual Result CreatePost( PhotoPost post, PhotoApp app ) { if (strUtil.IsNullOrEmpty( post.Title )) { post.Title = Path.GetFileNameWithoutExtension( post.DataUrl ); } post.Title = strUtil.CutString( post.Title, 30 ); Result result = db.insert( post ); if (result.IsValid) { this.updatePostCount( app ); } return result; }
public void Like( User user, PhotoPost post ) { PhotoLike x = new PhotoLike(); x.Post = post; x.User = user; x.insert(); post.Likes = PhotoLike.count( "PostId=" + post.Id ); post.update(); user.Likes = PhotoLike.count( "UserId=" + user.Id ); user.update( "Likes" ); }
public Boolean CanDeleteImg( PhotoPost post ) { // 原始图片 if (post.RootId == 0) { return noRepins( post ); // 是否有其他人收集 } // 只是转发: 原始图片存在 else if (isRootExits( post.RootId )) { return false; } // 只是转发 else { return isLastRepin( post ); //看是否是最后一个转发 } }
public Boolean CanDeleteImg( PhotoPost post ) { // ԭʼͼƬ if (post.RootId == 0) { return noRepins( post ); // �Ƿ����������ռ� } // ֻ��ת��: ԭʼͼƬ���� else if (isRootExits( post.RootId )) { return false; } // ֻ��ת�� else { return isLastRepin( post ); //���Ƿ������һ��ת�� } }
private void pickOnePost( PhotoPost post ) { PhotoPostPicked pickedPost = GetByPost( post ); if (pickedPost == null) { pickedPost = new PhotoPostPicked(); pickedPost.Post = post; pickedPost.Status = SystemPickStatus.Picked; db.insert( pickedPost ); } else { pickedPost.Status = SystemPickStatus.Picked; db.update( pickedPost ); } }
private static String getPreNextHtml( MvcContext ctx, PhotoPost post, IPhotoPostService postService ) { PhotoPost prev = postService.GetPre( post ); PhotoPost next = postService.GetNext( post ); String prenext; if (prev == null && next == null) prenext = ""; else if (prev == null) prenext = "<a href=\"" + alink.ToAppData( next ) + "\">" + alang( ctx, "nextPhoto" ) + "</a> "; else if (next == null) prenext = "<a href=\"" + alink.ToAppData( prev ) + "\">" + alang( ctx, "prevPhoto" ) + "</a> "; else prenext = "<a href=\"" + alink.ToAppData( prev ) + "\">" + alang( ctx, "prevPhoto" ) + "</a> | <a href=\"" + alink.ToAppData( next ) + "\">" + alang( ctx, "nextPhoto" ) + "</a>"; return prenext; }
public object Deserialize(JsonValue json, JsonMapper mapper) { PhotoPost post = null; if ( json != null && !json.IsNull ) { post = new PhotoPost(); post.ID = json.ContainsName("id" ) ? json.GetValue<string>("id" ) : String.Empty; post.PhotoId = json.ContainsName("object_id" ) ? json.GetValue<string>("object_id") : String.Empty; post.CreatedTime = json.ContainsName("created_time") ? JsonUtils.ToDateTime(json.GetValue<string>("created_time"), "yyyy-MM-ddTHH:mm:ss") : DateTime.MinValue; post.UpdatedTime = json.ContainsName("updated_time") ? JsonUtils.ToDateTime(json.GetValue<string>("updated_time"), "yyyy-MM-ddTHH:mm:ss") : DateTime.MinValue; post.From = mapper.Deserialize<Reference>(json.GetValue("from")); post.Tags = mapper.Deserialize<List<Tag>>(json.GetValue("tags")); } return post; }
public static void BindPostSingle( MvcContext ctx, IBlock block, PhotoPost x, List<int> likedIds ) { block.Set( "x.Link", PhotoLink.ToPost( x.Id ) ); block.Set( "x.Title", x.Title ); block.Set( "x.Description", x.Description ); block.Set( "x.Pic", x.ImgThumbUrl ); block.Set( "x.PicM", x.ImgMediumUrl ); block.Set( "x.PicO", x.ImgUrl ); block.Set( "x.Pins", x.Pins ); block.Set( "x.Likes", x.Likes ); String pinsLikes = ""; if (x.Pins > 0) pinsLikes += "收集:" + x.Pins; if (x.Likes > 0) pinsLikes += " 喜欢:" + x.Likes; if (x.Replies > 0) pinsLikes += " 评论:" + x.Replies; block.Set( "x.PinsLikes", pinsLikes ); if (x.PhotoAlbum != null) { block.Set( "x.AlbumName", x.PhotoAlbum.Name ); block.Set( "x.AlbumLink", PhotoLink.ToAlbumOne( x.PhotoAlbum.OwnerUrl, x.PhotoAlbum.Id ) ); } else { block.Set( "x.AlbumName", "" ); block.Set( "x.AlbumLink", "#" ); } block.Set( "x.CreatorName", x.Creator.Name ); block.Set( "x.CreatorPic", x.Creator.PicSmall ); block.Set( "x.CreatorLink", PhotoLink.ToUser( x.Creator ) ); block.Set( "x.Created", cvt.ToTimeString( x.Created ) ); block.Set( "x.RepinLink", ctx.link.To( new HomeController().Repin, x.Id ) ); block.Set( "x.LikeLink", ctx.link.To( new HomeController().Like, x.Id ) ); block.Set( "x.UnLikeLink", ctx.link.To( new HomeController().UnLike, x.Id ) ); if (likedIds.Contains( x.Id )) { block.Set( "x.LikedCss", "wfpost-liked disabled" ); block.Set( "x.LikeName", "已喜欢" ); } else { block.Set( "x.LikedCss", "wfpost-like" ); block.Set( "x.LikeName", "<i class=\"icon-heart icon-white\"></i> 喜欢" ); } }
private void addPhotoPosts( MvcContext ctx ) { User creator = ctx.viewer.obj as User; for (int i = 0; i < 20; i++) { PhotoPost x = new PhotoPost(); x.DataUrl = Img.CopyToUploadPath( "/__installer/pic/pic" + i + ".jpg" ); x.Creator = creator; x.CreatorUrl = creator.Url; x.OwnerId = creator.Id; x.OwnerType = creator.GetType().FullName; x.OwnerUrl = creator.Url; x.Title = Path.GetFileName( x.DataUrl ); x.insert(); } }
private bool noRepins( PhotoPost post ) { return PhotoPost.find( "RootId=" + post.Id ).first() == null; }
public virtual void SystemUnDelete( PhotoPost post ) { if (post == null) return; post.SaveStatus = (int)SaveStatus.Normal; db.update( post, "SaveStatus" ); }
private void log( String msg, PhotoPost post ) { String dataInfo = "{Id:" + post.Id + ", Title:'" + post.Title + "'}"; logService.Add( (User)ctx.viewer.obj, msg, dataInfo, typeof( PhotoPost ).FullName, ctx.Ip ); }
private String getStatus( PhotoPost post ) { if (pickedService.IsPicked( post )) return "picked"; return ""; }
private PhotoPost savePicPrivate( HttpFile postedFile, Result result ) { PhotoPost post = new PhotoPost(); post.OwnerId = ctx.owner.Id; post.OwnerType = ctx.owner.obj.GetType().FullName; post.OwnerUrl = ctx.owner.obj.Url; post.Creator = (User)ctx.viewer.obj; post.CreatorUrl = ctx.viewer.obj.Url; post.DataUrl = result.Info.ToString(); post.Title = strUtil.CutString( Path.GetFileNameWithoutExtension( postedFile.FileName ), 20 ); post.Ip = ctx.Ip; post.PhotoAlbum = new PhotoAlbum(); postService.CreatePostTemp( post ); return post; }
public virtual Boolean IsPicked( PhotoPost post ) { PhotoPostPicked pickedPost = GetByPost( post ); return (pickedPost != null); }
private bool noRepins(PhotoPost post) { return(PhotoPost.find("RootId=" + post.Id).first() == null); }
private void unPickOnePost( PhotoPost post ) { PhotoPostPicked pickedPost = GetByPost( post ); if (pickedPost != null) { db.delete( pickedPost ); } }
public static void BindPostSingleFull(MvcContext ctx, IBlock block, PhotoPost x, List<long> likedIds) { BindPostSingle( ctx, block, x, likedIds ); block.Set( "x.SrcInfo", getSrcInfo( x ) ); }
private static String getSrcInfo( PhotoPost x ) { if (x.RootId == 0 || x.RootId == x.Id) return "用户上传"; PhotoPost root = PhotoPost.findById( x.RootId ); User creator = root.Creator; if (strUtil.IsNullOrEmpty( x.SrcTool )) return string.Format( "<a href=\"{0}\">原图</a> 由用户 <a href=\"{1}\">{2}</a> 上传", PhotoLink.ToPost( x.RootId ), PhotoLink.ToUser( creator ), creator.Name ); return string.Format( "<a href=\"{0}\">{1}</a> 通过 {2} 从 <a href=\"{3}\">{4}</a> 收集", PhotoLink.ToUser( creator ), creator.Name, root.SrcTool, root.SrcName, root.SrcUrl ); }
private PhotoPost getFormPosted() { PhotoPost photo = new PhotoPost(); PhotoAlbum album = categoryService.GetById( ctx.PostInt( "categoryId" ) ); photo.PhotoAlbum = album; photo.Description = ctx.Post( "description" ); photo.AppId = album.AppId; User user = ctx.viewer.obj as User; photo.Creator = user; photo.CreatorUrl = user.Url; photo.OwnerId = user.Id; photo.OwnerUrl = user.Url; photo.OwnerType = user.GetType().FullName; photo.Ip = ctx.Ip; return photo; }
private void bindAlbumPosts( PhotoPost post ) { IBlock block = getBlock( "cposts" ); if (post.PhotoAlbum == null) return; List<PhotoPost> list = postService.GetByAlbum( post.PhotoAlbum.Id, 9 ); foreach (PhotoPost x in list) { PhotoBinder.BindPostSingle( ctx, block, x, new List<int>() ); block.Next(); } }
public PhotoPostFeed( PhotoPost apost ) { post = apost; }
public virtual void SavePic() { HttpFile postedFile = ctx.GetFileSingle(); Result result = Uploader.SaveImg( postedFile ); if (result.HasErrors) { ctx.errors.Join( result ); run( UploadForm ); return; } PhotoPost post = new PhotoPost(); post.OwnerId = ctx.owner.Id; post.OwnerType = ctx.owner.obj.GetType().FullName; post.OwnerUrl = ctx.owner.obj.Url; post.Creator = (User)ctx.viewer.obj; post.CreatorUrl = ctx.viewer.obj.Url; post.DataUrl = result.Info.ToString(); post.Title = strUtil.CutString( Path.GetFileNameWithoutExtension( postedFile.FileName ), 20 ); post.Ip = ctx.Ip; post.PhotoAlbum = new PhotoAlbum(); postService.CreatePostTemp( post ); set( "picThumbUrl", post.ImgThumbUrl ); set( "picUrl", post.ImgUrl ); }
public virtual PhotoPostPicked GetByPost( PhotoPost post ) { return db.find<PhotoPostPicked>( "Post.Id=" + post.Id ).first(); }