public static NewsItemTagModel ToModel(this NewsItemTag a) { return(new NewsItemTagModel() { Id = a.Id, NewsItemId = a.NewsItemId, TagId = a.TagId, DisplayOrder = a.DisplayOrder, Tag = a.Tag.ToModel() }); }
public IActionResult Put(NewsItemModel entityModel) { #region validate //if (!ModelState.IsValid) // return BadRequest(); if (entityModel == null) { VerboseReporter.ReportError("Dữ liệu không hợp lệ."); return(RespondFailure()); } DateTime publishDt = entityModel.StartDateStr.ToDateTime(); //get var article = _newsItemService.Get(entityModel.Id, x => x.NewsItemCategories, x => x.NewsItemTags); if (article == null) { VerboseReporter.ReportError("Không tìm thấy tin này", "post"); return(RespondFailure()); } #endregion #region NewsItem article.Name = entityModel.Name; article.Short = entityModel.Short.GetSubString(ConstantKey.SummaryMaxLength); article.Full = HttpUtility.HtmlDecode(entityModel.Full); article.StartDateUtc = publishDt; article.EndDateUtc = entityModel.EndDateUtc ?? publishDt.AddDays(7); article.DisplayOrder = entityModel.DisplayOrder; article.Published = entityModel.Published; article.UpdatedOnUtc = DateTime.Now; article.Version = article.Version + 1; article.MetaTitle = entityModel.MetaTitle ?? article.Name; article.MetaDescription = entityModel.MetaDescription ?? article.Short; article.MetaKeywords = entityModel.MetaKeywords ?? article.Name; //save it _newsItemService.Update(article); VerboseReporter.ReportSuccess("Sửa tin tức thành công", "put"); #endregion #region newsCategory if (entityModel.newsCategoryIds != null && entityModel.newsCategoryIds.Length > 0) { foreach (int newsCategoryId in entityModel.newsCategoryIds) { // tim chuyen muc var foundNewsCategory = article.NewsItemCategories.FirstOrDefault(x => x.NewsCategoryId == newsCategoryId); // neu khong tim thay chuyen muc trong bang quan he thi them moi if (foundNewsCategory == null) { NewsItemCategory newsItemCategory = new NewsItemCategory() { NewsItemId = article.Id, NewsCategoryId = newsCategoryId, }; _newsPubsService.Insert(newsItemCategory); } // foreach (var newsPub in article.NewsPubs) // { // if (Array.IndexOf(entityModel.newsCategoryIds, newsPub.cat_id) == -1) // { // NewsPubs newsPubs = new NewsPubs() // { // article_id = article.id, // cat_id = newsCategoryId, // }; // if (article.news_status != (int) NewsItemStatus.Unpublish) // { // newsPubs.approve_date = DateTime.Now; // newsPubs.approver = CurrentUser.full_name; // } // article.NewsPubs.Add(newsPubs); // } // } } //_NewsItemService.Update(article); // find list newsPubs by article_id var newsItemCategories = _newsPubsService.Get(x => x.NewsCategoryId == entityModel.Id).ToList(); foreach (var newsItemCategory in newsItemCategories) { // tim chuyen muc var foundNewsCategory = entityModel.newsCategoryIds.FirstOrDefault(x => x == newsItemCategory.NewsCategoryId); // neu khong tim thay chuyen muc trong mang danh muc gui len thi xoa di if (foundNewsCategory == 0) { _newsPubsService.Delete(newsItemCategory); } } } #endregion #region TagIds if (entityModel.TagIds != null && entityModel.TagIds.Length > 0) { foreach (var entityModelTagId in entityModel.TagIds) { var foundNewsItemTag = article.NewsItemTags.FirstOrDefault(x => x.TagId == entityModelTagId); if (foundNewsItemTag == null) { NewsItemTag tag = new NewsItemTag() { TagId = entityModelTagId, NewsItemId = article.Id }; _newsItemTagService.Insert(tag); } } var newsItemTags = _newsItemTagService.Get(x => x.NewsItemId == entityModel.Id).ToList(); foreach (var newsItemTag in newsItemTags) { var foundNewsItemTag = entityModel.TagIds.FirstOrDefault(x => x == newsItemTag.TagId); if (foundNewsItemTag == 0) { _newsItemTagService.Delete(newsItemTag); } } } else { var newsItemTags = _newsItemTagService.Get(x => x.NewsItemId == entityModel.Id).ToList(); foreach (var newsItemTag in newsItemTags) { _newsItemTagService.Delete(newsItemTag); } } #endregion #region SaveLocalizedValue UpdateLocales(article, entityModel); #endregion return(RespondSuccess(article)); }
public IActionResult Post(NewsItemModel entityModel) { //if (!ModelState.IsValid) // return BadRequest(); if (entityModel == null) { VerboseReporter.ReportError("Dữ liệu không hợp lệ."); return(RespondFailure()); } DateTime publishDt = entityModel.StartDateStr.ToDateTime(); #region save NewsItem var article = new NewsItem { Name = entityModel.Name, Short = entityModel.Short.GetSubString(ConstantKey.SummaryMaxLength), Full = HttpUtility.HtmlDecode(entityModel.Full), Published = entityModel.Published, CreatedOnUtc = publishDt, // DateTime.Now, StartDateUtc = publishDt, EndDateUtc = entityModel.EndDateUtc, MetaTitle = entityModel.MetaTitle ?? entityModel.Name, MetaKeywords = entityModel.MetaKeywords ?? entityModel.Name, }; article.MetaDescription = entityModel.MetaDescription ?? article.Short; //save it _newsItemService.Insert(article); VerboseReporter.ReportSuccess("Tạo tin tức thành công", "post"); #endregion #region newsCategoryIds if (entityModel.newsCategoryIds != null && entityModel.newsCategoryIds.Length > 0) { article.NewsItemCategories = new List <NewsItemCategory>(); foreach (int newsCategoryId in entityModel.newsCategoryIds) { NewsItemCategory newsPubs = new NewsItemCategory() { NewsItemId = article.Id, NewsCategoryId = newsCategoryId, }; article.NewsItemCategories.Add(newsPubs); } _newsItemService.Update(article); } #endregion #region TagIds if (entityModel.TagIds != null && entityModel.TagIds.Length > 0) { article.NewsItemTags = new List <NewsItemTag>(); foreach (var entityModelTagId in entityModel.TagIds) { NewsItemTag newsItemTag = new NewsItemTag() { NewsItemId = article.Id, TagId = entityModelTagId }; article.NewsItemTags.Add(newsItemTag); } _newsItemService.Update(article); } #endregion InsertLocales(article, entityModel); return(RespondSuccess(article)); }