public static TModel FromVideoArticle <TModel>(VideoArticle videoArticle) where TModel : VideoArticleApiModel, new() { var model = new TModel(); model.Id = videoArticle.Id; return(model); }
public static JObject parseVideoArticle2Json(VideoArticle videoArticle) { JObject result = new JObject(); result["type"] = videoArticle.Type; result["title"] = videoArticle.Title; result["description"] = videoArticle.Description; result["video_id"] = videoArticle.Video_id; result["avatar"] = videoArticle.Avatar; result["comment"] = videoArticle.Comment.getValue(); return(result); }
public async Task <AddOrUpdateVideoArticleResponse> Handle(AddOrUpdateVideoArticleRequest request) { var entity = await _dataContext.VideoArticles .SingleOrDefaultAsync(x => x.Id == request.VideoArticle.Id && x.IsDeleted == false); if (entity == null) { _dataContext.VideoArticles.Add(entity = new VideoArticle()); } entity.Name = request.VideoArticle.Name; await _dataContext.SaveChangesAsync(); return(new AddOrUpdateVideoArticleResponse() { }); }
/// <summary> /// ��ȡ��Ƶ���ż��ϡ� /// </summary> /// <param name="dataReader"></param> /// <returns></returns> public static List<VideoArticle> GetVideoArticles(DbDataReader dataReader) { // ������ List<VideoArticle> videoArticles = new List<VideoArticle>(); while (dataReader.Read()) { VideoArticle videoArticle = new VideoArticle(); videoArticle.Article.ArticleId = (int)dataReader[ViewVideoArticleField.ArticleId]; videoArticle.Article.ArticleGuid = (Guid)dataReader[ViewVideoArticleField.ArticleGuid]; // ��ȡ Category ���� videoArticle.Article.Category.CategoryId = Convert.ToInt32(dataReader[ViewVideoArticleField.CategoryId]); videoArticle.Article.Category.CategoryGuid = (Guid)dataReader[ViewVideoArticleField.CategoryGuid]; videoArticle.Article.Category.CategoryName = Convert.ToString(dataReader[ViewVideoArticleField.CategoryName]); videoArticle.Article.Category.ParentGuid = (Guid)dataReader[ViewVideoArticleField.ParentGuid]; videoArticle.Article.Category.Rank = Convert.ToInt32(dataReader[ViewVideoArticleField.CategoryRank]); videoArticle.Article.Category.RecordCount = (int)dataReader[ViewVideoArticleField.RecordCount]; if (dataReader[ViewVideoArticleField.MetaKeywords] != DBNull.Value) videoArticle.Article.MetaKeywords = Convert.ToString(dataReader[ViewVideoArticleField.MetaKeywords]); if (dataReader[ViewVideoArticleField.MetaDesc] != DBNull.Value) videoArticle.Article.MetaDesc = Convert.ToString(dataReader[ViewVideoArticleField.MetaDesc]); videoArticle.Article.Title = Convert.ToString(dataReader[ViewVideoArticleField.Title]); if (dataReader[ViewVideoArticleField.TitleColor] != DBNull.Value) videoArticle.Article.TitleColor = Convert.ToString(dataReader[ViewVideoArticleField.TitleColor]); if (dataReader[ViewVideoArticleField.SubTitle] != DBNull.Value) videoArticle.Article.SubTitle = Convert.ToString(dataReader[ViewVideoArticleField.SubTitle]); if (dataReader[ViewVideoArticleField.Summary] != DBNull.Value) videoArticle.Article.Summary = Convert.ToString(dataReader[ViewVideoArticleField.Summary]); if (dataReader[ViewVideoArticleField.ContentHtml] != DBNull.Value) videoArticle.Article.ContentHtml = Convert.ToString(dataReader[ViewVideoArticleField.ContentHtml]); if (dataReader[ViewVideoArticleField.Editor] != DBNull.Value) videoArticle.Article.Editor = (Guid)dataReader[ViewVideoArticleField.Editor]; if (dataReader[ViewVideoArticleField.Author] != DBNull.Value) videoArticle.Article.Author = Convert.ToString(dataReader[ViewVideoArticleField.Author]); if (dataReader[ViewVideoArticleField.Original] != DBNull.Value) videoArticle.Article.Original = Convert.ToString(dataReader[ViewVideoArticleField.Original]); videoArticle.Article.Rank = Convert.ToInt32(dataReader[ViewVideoArticleField.ArticleRank]); videoArticle.Article.Hits = Convert.ToInt32(dataReader[ViewVideoArticleField.Hits]); videoArticle.Article.Comments = Convert.ToInt32(dataReader[ViewVideoArticleField.Comments]); videoArticle.Article.Votes = Convert.ToInt32(dataReader[ViewVideoArticleField.Votes]); videoArticle.Article.DateCreated = Convert.ToDateTime(dataReader[ViewVideoArticleField.DateCreated]); // ��Ƶ��Ϣ videoArticle.VideoArticleId = Convert.ToInt32(dataReader[ViewVideoArticleField.VideoArticleId]); videoArticle.VideoArticleGuid = (Guid)dataReader[ViewVideoArticleField.VideoArticleGuid]; //videoArticle.ArticleGuid = (Guid)dataReader[ViewVideoArticleField.ArticleGuid]; videoArticle.VideoPath = Convert.ToString(dataReader[ViewVideoArticleField.VideoPath]); videoArticle.FlvVideoPath = (string)dataReader[ViewVideoArticleField.FlvVideoPath]; videoArticle.PreviewFramePath = Convert.ToString(dataReader[ViewVideoArticleField.PreviewFramePath]); if (dataReader[ViewVideoArticleField.Star] != DBNull.Value) videoArticle.Star = (byte)dataReader[ViewVideoArticleField.Star]; videoArticles.Add(videoArticle); } dataReader.Close(); return videoArticles; }
public int Update(VideoArticle videoArticle) { DbCommand command = DbProviderHelper.CreateCommand("UPDATEVideoArticle", CommandType.StoredProcedure); command.Parameters.Add(DbProviderHelper.CreateParameter("@VideoArticleId", DbType.Int32, videoArticle.VideoArticleId)); command.Parameters.Add(DbProviderHelper.CreateParameter("@VideoArticleGuid", DbType.Guid, videoArticle.VideoArticleGuid)); command.Parameters.Add(DbProviderHelper.CreateParameter("@ArticleGuid", DbType.Guid, videoArticle.Article.ArticleGuid)); command.Parameters.Add(DbProviderHelper.CreateParameter("@VideoPath", DbType.String, videoArticle.VideoPath)); command.Parameters.Add(DbProviderHelper.CreateParameter("@FlvVideoPath", DbType.String, videoArticle.FlvVideoPath)); command.Parameters.Add(DbProviderHelper.CreateParameter("@PreviewFramePath", DbType.String, videoArticle.PreviewFramePath)); if (videoArticle.Star.HasValue) command.Parameters.Add(DbProviderHelper.CreateParameter("@Star", DbType.Byte, videoArticle.Star)); else command.Parameters.Add(DbProviderHelper.CreateParameter("@Star", DbType.Byte, DBNull.Value)); return DbProviderHelper.ExecuteNonQuery(command); }
public VideoArticle GetVideoArticle(Guid articleGuid) { VideoArticle videoArticle = new VideoArticle(); videoArticle.Article.ArticleGuid = articleGuid; DbCommand command = DbProviderHelper.CreateCommand("SelectVideoArticle", CommandType.StoredProcedure); command.Parameters.Add(DbProviderHelper.CreateParameter("@ArticleGuid", DbType.Guid, articleGuid)); DbDataReader dataReader = DbProviderHelper.ExecuteReader(command); while (dataReader.Read()) { videoArticle.Article.ArticleId = (int)dataReader[ViewVideoArticleField.ArticleId]; //videoArticle.Article.ArticleGuid = (Guid)dataReader[ViewVideoArticleField.ArticleGuid]; // ��ȡ Category ���� videoArticle.Article.Category.CategoryId = Convert.ToInt32(dataReader[ViewVideoArticleField.CategoryId]); videoArticle.Article.Category.CategoryGuid = (Guid)dataReader[ViewVideoArticleField.CategoryGuid]; videoArticle.Article.Category.CategoryName = Convert.ToString(dataReader[ViewVideoArticleField.CategoryName]); videoArticle.Article.Category.ParentGuid = (Guid)dataReader[ViewVideoArticleField.ParentGuid]; videoArticle.Article.Category.Rank = Convert.ToInt32(dataReader[ViewVideoArticleField.CategoryRank]); videoArticle.Article.Category.RecordCount = (int)dataReader[ViewVideoArticleField.RecordCount]; if (dataReader[ViewVideoArticleField.MetaKeywords] != DBNull.Value) videoArticle.Article.MetaKeywords = Convert.ToString(dataReader[ViewVideoArticleField.MetaKeywords]); if (dataReader[ViewVideoArticleField.MetaDesc] != DBNull.Value) videoArticle.Article.MetaDesc = Convert.ToString(dataReader[ViewVideoArticleField.MetaDesc]); videoArticle.Article.Title = Convert.ToString(dataReader[ViewVideoArticleField.Title]); if (dataReader[ViewVideoArticleField.TitleColor] != DBNull.Value) videoArticle.Article.TitleColor = Convert.ToString(dataReader[ViewVideoArticleField.TitleColor]); if (dataReader[ViewVideoArticleField.SubTitle] != DBNull.Value) videoArticle.Article.SubTitle = Convert.ToString(dataReader[ViewVideoArticleField.SubTitle]); if (dataReader[ViewVideoArticleField.Summary] != DBNull.Value) videoArticle.Article.Summary = Convert.ToString(dataReader[ViewVideoArticleField.Summary]); if (dataReader[ViewVideoArticleField.ContentHtml] != DBNull.Value) videoArticle.Article.ContentHtml = Convert.ToString(dataReader[ViewVideoArticleField.ContentHtml]); if (dataReader[ViewVideoArticleField.Editor] != DBNull.Value) videoArticle.Article.Editor = (Guid)dataReader[ViewVideoArticleField.Editor]; if (dataReader[ViewVideoArticleField.Author] != DBNull.Value) videoArticle.Article.Author = Convert.ToString(dataReader[ViewVideoArticleField.Author]); if (dataReader[ViewVideoArticleField.Original] != DBNull.Value) videoArticle.Article.Original = Convert.ToString(dataReader[ViewVideoArticleField.Original]); videoArticle.Article.Rank = Convert.ToInt32(dataReader[ViewVideoArticleField.ArticleRank]); videoArticle.Article.Hits = Convert.ToInt32(dataReader[ViewVideoArticleField.Hits]); videoArticle.Article.Comments = Convert.ToInt32(dataReader[ViewVideoArticleField.Comments]); videoArticle.Article.Votes = Convert.ToInt32(dataReader[ViewVideoArticleField.Votes]); videoArticle.Article.DateCreated = Convert.ToDateTime(dataReader[ViewVideoArticleField.DateCreated]); // ��Ƶ��Ϣ videoArticle.VideoArticleId = Convert.ToInt32(dataReader[ViewVideoArticleField.VideoArticleId]); videoArticle.VideoArticleGuid = (Guid)dataReader[ViewVideoArticleField.VideoArticleGuid]; //videoArticle.ArticleGuid = (Guid)dataReader[ViewVideoArticleField.ArticleGuid"]; videoArticle.VideoPath = Convert.ToString(dataReader[ViewVideoArticleField.VideoPath]); videoArticle.FlvVideoPath = Convert.ToString(dataReader[ViewVideoArticleField.FlvVideoPath]); videoArticle.PreviewFramePath = Convert.ToString(dataReader[ViewVideoArticleField.PreviewFramePath]); if (dataReader[ViewVideoArticleField.Star] != DBNull.Value) videoArticle.Star = (byte)(dataReader[ViewVideoArticleField.Star]); } dataReader.Close(); return videoArticle; }
public int AddNew(VideoArticle videoArticle) { DbCommand command = DbProviderHelper.CreateCommand("INSERTVideoArticle", CommandType.StoredProcedure); command.Parameters.Add(DbProviderHelper.CreateParameter("@VideoArticleGuid", DbType.Guid, videoArticle.VideoArticleGuid)); command.Parameters.Add(DbProviderHelper.CreateParameter("@ArticleGuid", DbType.Guid, videoArticle.Article.ArticleGuid)); command.Parameters.Add(DbProviderHelper.CreateParameter("@VideoPath", DbType.String, videoArticle.VideoPath)); command.Parameters.Add(DbProviderHelper.CreateParameter("@FlvVideoPath", DbType.String, videoArticle.FlvVideoPath)); command.Parameters.Add(DbProviderHelper.CreateParameter("@PreviewFramePath", DbType.String, videoArticle.PreviewFramePath)); if (videoArticle.Star.HasValue) command.Parameters.Add(DbProviderHelper.CreateParameter("@Star", DbType.Byte, videoArticle.Star)); else command.Parameters.Add(DbProviderHelper.CreateParameter("@Star", DbType.Byte, DBNull.Value)); return Convert.ToInt32(DbProviderHelper.ExecuteScalar(command)); }
public static VideoArticleApiModel FromVideoArticle(VideoArticle videoArticle) => FromVideoArticle <VideoArticleApiModel>(videoArticle);
/// <summary> /// 发布视频文章内容页。 /// </summary> /// <param name="videoArticle">视频文章</param> /// <param name="videoArticleRelease">视频文章发布对象</param> public void ReleasingVideoArticleItem(VideoArticle videoArticle, Release videoArticleRelease) { // 详细页:{ReleaseDirectory}/{CategoryId}/{Year}-{Month}-{Day}/{ArticleId}.htm if (videoArticleRelease.Template.TemplateType != TemplateType.VideoArticleItem) return; // 装载模版 videoArticleRelease.Template.TemplatePath = Regex.Replace(videoArticleRelease.Template.TemplatePath, @"\{TemplateDirectory\}", this.TemplateDirectory, RegexOptions.IgnoreCase); string templatePath = System.Web.HttpContext.Current.Server.MapPath(videoArticleRelease.Template.TemplatePath); Wis.Toolkit.Templates.TemplateManager templateManager = Wis.Toolkit.Templates.TemplateManager.LoadFile(templatePath, Encoding.UTF8); templateManager.SetVariable("ApplicationPath", this.ApplicationPath); templateManager.SetVariable("TemplateDirectory", this.TemplateDirectory); templateManager.SetVariable("ReleaseDirectory", this.ReleaseDirectory); // 处理 Release videoArticleRelease.ReleasePath = Regex.Replace(videoArticleRelease.ReleasePath, @"\{ReleaseDirectory\}", this.ReleaseDirectory, RegexOptions.IgnoreCase); videoArticleRelease.ReleasePath = Regex.Replace(videoArticleRelease.ReleasePath, @"\{CategoryId\}", videoArticle.Article.Category.CategoryId.ToString(), RegexOptions.IgnoreCase); videoArticleRelease.ReleasePath = Regex.Replace(videoArticleRelease.ReleasePath, @"\{Year\}", videoArticle.Article.DateCreated.Year.ToString(), RegexOptions.IgnoreCase); videoArticleRelease.ReleasePath = Regex.Replace(videoArticleRelease.ReleasePath, @"\{Month\}", videoArticle.Article.DateCreated.Month.ToString(), RegexOptions.IgnoreCase); videoArticleRelease.ReleasePath = Regex.Replace(videoArticleRelease.ReleasePath, @"\{Day\}", videoArticle.Article.DateCreated.Day.ToString(), RegexOptions.IgnoreCase); // 生成静态页 #warning 按照 ContentHtml 长度,生成多页,需要测试 string pagerSeparator = "<!--Article.ContentHtml.Pager-->"; if (videoArticle.Article.ContentHtml.IndexOf(pagerSeparator) > -1) // 含有分页 { string[] contentHtmls = videoArticle.Article.ContentHtml.Split(pagerSeparator.ToCharArray()); for (int index = 0; index < contentHtmls.Length; index++) { videoArticle.Article.ContentHtml = contentHtmls[index] + ReleaseTinyPager((index + 1), contentHtmls.Length); templateManager.SetVariable("VideoArticle", videoArticle); // 最近更新的文章 string replacedArticleId = string.Format("{0}/{1}", videoArticle.Article.ArticleId, (index + 1)); //videoArticleRelease.ReleasePath = Regex.Replace(videoArticleRelease.ReleasePath, @"\{ArticleId\}", replacedArticleId, RegexOptions.IgnoreCase); string rawReleasePath = videoArticleRelease.ReleasePath; // 记录{ArticleId} videoArticleRelease.ReleasePath = Regex.Replace(rawReleasePath, @"\{ArticleId\}", replacedArticleId, RegexOptions.IgnoreCase); ReleasingStaticPage(videoArticleRelease, templateManager); videoArticleRelease.ReleasePath = rawReleasePath; ReleasingStaticPage(videoArticleRelease, templateManager); } } else { templateManager.SetVariable("VideoArticle", videoArticle); // 最近更新的文章 videoArticleRelease.ReleasePath = Regex.Replace(videoArticleRelease.ReleasePath, @"\{ArticleId\}", videoArticle.Article.ArticleId.ToString(), RegexOptions.IgnoreCase); ReleasingStaticPage(videoArticleRelease, templateManager); } }
/// <summary> /// 发布视频文章内容页。 /// </summary> /// <param name="videoArticle">视频文章</param> public void ReleasingVideoArticleItem(VideoArticle videoArticle) { List<Release> releases = GetReleasesByCategoryGuid(videoArticle.Article.Category.CategoryGuid, TemplateType.VideoArticleItem); foreach (Release release in releases) { ReleasingVideoArticleItem(videoArticle, release); } }
public void ReleasingRemovedVideoArticle(VideoArticle videoArticle) { // 1 发布 VideoArticle 页面,根据分类编号找 Item 的模版 // 2 发布 Category 页面,根据分类编号找List或Index的模版 List<Release> releases = GetReleasesByCategoryGuid(videoArticle.Article.Category.CategoryGuid); foreach (Release release in releases) { switch (release.Template.TemplateType) { case TemplateType.VideoArticleIndex: // 视频文章索引页 ReleasingVideoArticleIndex(videoArticle.Article.Category, release); break; case TemplateType.VideoArticleList: // 视频文章列表页,带分页 ReleasingVideoArticleList(videoArticle.Article.Category, release); break; case TemplateType.VideoArticleItem:// 移除文章详细页 // 处理 Release release.ReleasePath = Regex.Replace(release.ReleasePath, @"\{ReleaseDirectory\}", this.ReleaseDirectory, RegexOptions.IgnoreCase); release.ReleasePath = Regex.Replace(release.ReleasePath, @"\{CategoryId\}", videoArticle.Article.Category.CategoryId.ToString(), RegexOptions.IgnoreCase); release.ReleasePath = Regex.Replace(release.ReleasePath, @"\{Year\}", videoArticle.Article.DateCreated.Year.ToString(), RegexOptions.IgnoreCase); release.ReleasePath = Regex.Replace(release.ReleasePath, @"\{Month\}", videoArticle.Article.DateCreated.Month.ToString(), RegexOptions.IgnoreCase); release.ReleasePath = Regex.Replace(release.ReleasePath, @"\{Day\}", videoArticle.Article.DateCreated.Day.ToString(), RegexOptions.IgnoreCase); // 生成静态页 #warning 按照 ContentHtml 长度,删除多页,需要测试 string pagerSeparator = "<!--Article.ContentHtml.Pager-->"; if (videoArticle.Article.ContentHtml.IndexOf(pagerSeparator) > -1) // 含有分页 { string[] contentHtmls = videoArticle.Article.ContentHtml.Split(pagerSeparator.ToCharArray()); for (int index = 0; index < contentHtmls.Length; index++) { string replacedArticleId = string.Format("{0}/{1}", videoArticle.Article.ArticleId, (index + 1)); release.ReleasePath = Regex.Replace(release.ReleasePath, @"\{ArticleId\}", replacedArticleId, RegexOptions.IgnoreCase); // 删除文章静态页 release.ReleasePath = System.Web.HttpContext.Current.Server.MapPath(release.ReleasePath); if (System.IO.File.Exists(release.ReleasePath)) System.IO.File.Delete(release.ReleasePath); } } else { release.ReleasePath = Regex.Replace(release.ReleasePath, @"\{ArticleId\}", videoArticle.Article.ArticleId.ToString(), RegexOptions.IgnoreCase); // 删除文章静态页 release.ReleasePath = System.Web.HttpContext.Current.Server.MapPath(release.ReleasePath); if (System.IO.File.Exists(release.ReleasePath)) System.IO.File.Delete(release.ReleasePath); } break; default: throw new System.ArgumentException("TemplateType"); } } // 3 发布被引用的页面 ReleasingRelatedReleases(videoArticle.Article.Category.CategoryGuid); }
/// <summary> /// 发布视频文章静态页和关联的静态页。 /// </summary> /// <param name="videoArticle"></param> public void ReleasingVideoArticle(VideoArticle videoArticle) { // 1 发布 VideoArticle 页面,根据分类编号找Item的模版 // 2 发布 Category 页面,根据分类编号找List或Index的模版 List<Release> releases = GetReleasesByCategoryGuid(videoArticle.Article.Category.CategoryGuid); foreach (Release release in releases) { switch (release.Template.TemplateType) { case TemplateType.VideoArticleIndex: // 视频文章索引页 ReleasingVideoArticleIndex(videoArticle.Article.Category, release); break; case TemplateType.VideoArticleList: // 视频文章列表页,带分页 ReleasingVideoArticleList(videoArticle.Article.Category, release); break; case TemplateType.VideoArticleItem:// 视频文章详细页 ReleasingVideoArticleItem(videoArticle, release); break; default: throw new System.ArgumentException("TemplateType"); } } // 3 发布被引用的页面 ReleasingRelatedReleases(videoArticle.Article.Category.CategoryGuid); }