public Datatable AJAX_GetTable(int iDisplayLength, int iDisplayStart, int sEcho, int iSortingCols, int iSortCol, string sSortDir, string search) { try { DataClassesDataContext db = new DataClassesDataContext(); Class_Page_Category _pageCategory = new Class_Page_Category(); IEnumerable <dynamic> data = Dynamic_GetAll(db); int count = data.Count(); if (!string.IsNullOrEmpty(search)) { data = data.Where(x => x.Post_Title.ToLower().Contains(search.ToLower())).ToArray(); } List <Dictionary <string, dynamic> > resultList = new List <Dictionary <string, dynamic> >(); foreach (dynamic currData in data) { Dictionary <string, dynamic> newData = new Dictionary <string, dynamic>(); newData.Add("IDPost", currData.IDPost); newData.Add("Post_Title", currData.Post_Title); newData.Add("Page_Title", currData.Page_Title); newData.Add("Post_ShortContent", currData.Post_ShortContent); newData.Add("Post_Content", currData.Post_Content); newData.Add("DateInsert", currData.DateInsert.ToString("dd-MM-yyyy") + " " + currData.DateInsert.ToLongTimeString()); newData.Add("DateLastUpdate", currData.DateLastUpdate.ToString("dd-MM-yyyy") + " " + currData.DateLastUpdate.ToLongTimeString()); newData.Add("Active", currData.Active); newData.Add("Categories", Dynamic_GetData_PageCategories_ByIDPost(db, currData.IDPost)); resultList.Add(newData); } return(OurClass.ParseTable(resultList, count, iDisplayLength, iDisplayStart, sEcho, iSortingCols, iSortCol, sSortDir)); } catch (Exception ex) { Class_Log_Error log = new Class_Log_Error(); log.Insert(ex.Message, ex.StackTrace); return(new WITLibrary.Datatable { sEcho = 0, iTotalRecords = 0, iTotalDisplayRecords = 0, aaData = new List <Dictionary <string, dynamic> >() }); } }
public ReturnData AJAX_Update_Categories(int idPost, int idPage, int[] categories) { try { DataClassesDataContext db = new DataClassesDataContext(); if (categories.Count() == 0) { return(ReturnData.MessageFailed("No selected category to insert.", null)); } dynamic _post = Dynamic_GetDetail_Information(db, idPost); if (_post == null) { return(ReturnData.MessageFailed("The requested resource does not exist.", null)); } TBPageCategory_Post[] _oldCategories = GetData_PageCategory_ByIDPost(db, _post.IDPost); List <TBPageCategory> _pageCategories = new List <TBPageCategory>(); Class_Page_Category _pageCategory = new Class_Page_Category(); foreach (int item in categories) { if (_oldCategories.AsEnumerable().Where(x => x.IDPageCategory == item).FirstOrDefault() == null) { TBPageCategory _newData = _pageCategory.GetDetail(db, item); if (_pageCategories == null) { return(ReturnData.MessageFailed("Some category does not exists.", null)); } _pageCategories.Add(_newData); } } foreach (TBPageCategory_Post item in _oldCategories) { dynamic _item = categories.Where(x => x == item.IDPageCategory).FirstOrDefault(); if (_item == 0) { db.TBPageCategory_Posts.DeleteOnSubmit(item); } } db.SubmitChanges(); foreach (dynamic item in _pageCategories) { TBPageCategory_Post _newData = GetData_PageCategory_ByIDPost(db, idPost).Where(x => x.IDPageCategory == item.IDPageCategory).FirstOrDefault(); if (_newData == null) { _newData = new TBPageCategory_Post { IDPost = idPost, IDPageCategory = item.IDPageCategory, }; db.TBPageCategory_Posts.InsertOnSubmit(_newData); } } db.SubmitChanges(); Dictionary <string, dynamic> _result = new Dictionary <string, dynamic>(); _result.Add("SelectedCategories", Dynamic_GetData_PageCategories_ByIDPost(db, idPost)); _result.Add("TreeCategories", GetTree_PageCategory(db, idPage, idPost)); return(ReturnData.MessageSuccess(categories.Count() + " categories has been successfully updated.", _result)); } catch (Exception ex) { Class_Log_Error log = new Class_Log_Error(); log.Insert(ex.Message, ex.StackTrace); return(ReturnData.MessageFailed(ex.Message, null)); } }
private IEnumerable <WITLibrary.JsTreeModel> GenerateUL(DataClassesDataContext db, Class_Page_Category _pageCategory, IEnumerable <TBPageCategory> menus, int idPost) { List <WITLibrary.JsTreeModel> _newCategory = new List <WITLibrary.JsTreeModel>(); foreach (var menu in menus) { if (menu.TBPageCategory_Posts.AsEnumerable().Any()) { _newCategory.Add(new WITLibrary.JsTreeModel { text = menu.Name, icon = menu.Deflag ? "fa fa-tags icon-state-danger" : "fa fa-tags icon-state-success", state = new WITLibrary.JsTreeState { selected = menu.TBPageCategory_Posts.AsEnumerable().FirstOrDefault(x => x.IDPost == idPost) != null }, li_attr = new WITLibrary.JsTreeAttr { id = menu.IDPageCategory.ToString() } }); } else { _newCategory.Add(new WITLibrary.JsTreeModel { text = menu.Name, icon = menu.Deflag ? "fa fa-tags icon-state-danger" : "fa fa-tags icon-state-success", li_attr = new WITLibrary.JsTreeAttr { id = menu.IDPageCategory.ToString() }, state = new WITLibrary.JsTreeState { selected = menu.TBPageCategory_Posts.AsEnumerable().FirstOrDefault(x => x.IDPost == idPost) != null } }); } } return(_newCategory.ToArray()); }
public IEnumerable <dynamic> GetTree_PageCategory(DataClassesDataContext db, int idPage, int idPost) { Class_Page_Category _pageCategory = new Class_Page_Category(); return(GenerateUL(db, _pageCategory, GetDataBy_IDPage(db, idPage), idPost)); }