public ActionResult Detail(string id) { try { using (var db = new KbVaultContext()) { Article article = db.PublishedArticles().FirstOrDefault(a => a.SefName == id); if (article != null) { article.Views++; db.SaveChanges(); ViewBag.SimilarArticles = ArticleRepository.GetVisibleSimilarArticles((int)article.Id, DateTime.Today.Date); return(View(article)); } else { return(View("ArticleNotFound")); } } } catch (Exception ex) { Log.Error(ex); return(RedirectToAction("PublicError", "Error")); } }
public JsonResult Remove(int id = -1) { var result = new JsonOperationResponse { Successful = false }; try { using (var db = new KbVaultContext()) { db.KbUsers.Remove(db.KbUsers.First(u => u.Id == id)); db.SaveChanges(); result.Successful = true; } return(Json(result)); } catch (Exception ex) { Log.Error(ex); result.ErrorMessage = ex.Message; return(Json(result)); } }
public IList <TopTagItem> GetTopTags() { using (var db = new KbVaultContext()) { return(db.Database.SqlQuery <TopTagItem>("exec GetTopTags").ToList()); } }
public JsonResult Edit(string pk, string value) { var result = new JsonOperationResponse(); try { using (var db = new KbVaultContext()) { var tagId = Convert.ToInt64(pk); var tag = db.Tags.First(t => t.Id == tagId); if (tag != null) { tag.Author = KBVaultHelperFunctions.UserAsKbUser(User).Id; tag.Name = value; db.SaveChanges(); result.Successful = true; return(Json(result)); } } return(null); } catch (Exception ex) { Log.Error(ex); result.Successful = false; result.ErrorMessage = ex.Message; return(Json(result)); } }
public int GetTotalArticleCount() { using (var db = new KbVaultContext()) { return(db.Articles.Count()); } }
public ActionResult Create([Bind(Exclude = "Id")] KbUserViewModel model) { try { if (ModelState.IsValid) { using (var db = new KbVaultContext()) { KbUser usr = KbVaultAuthHelper.CreateUser(model.UserName, model.OldPassword, model.Email, model.Role, KBVaultHelperFunctions.UserAsKbUser(User).Id); usr = db.KbUsers.FirstOrDefault(u => u.Id == usr.Id); if (usr != null) { usr.LastName = model.LastName; usr.Name = model.Name; db.SaveChanges(); } return(RedirectToAction("Users")); } } return(View(model)); } catch (Exception ex) { Log.Error(ex); AddGlobalException(ex); return(RedirectToAction("Index", "Error")); } }
public JsonResult Get(ActivityDataTablesPostModel model) { try { int length = model.length; int page = model.start / length; JsonOperationResponse result = new JsonOperationResponse(); int recordCount = 0; using (var db = new KbVaultContext()) { recordCount = db.Activities.Count(); db.Configuration.LazyLoadingEnabled = false; var activities = db.Activities.Include("KbUser") .OrderByDescending(a => a.ActivityDate) .Skip((page) * length) .Take(length).AsEnumerable() .Select(a => new ActivityViewModel { ActivityDate = a.ActivityDate.ToString("dd/MM/yyyy H:mm"), Operation = a.Operation, Text = a.Information, User = a.KbUser.Name + " " + a.KbUser.LastName }).ToList(); result.Successful = true; result.Data = activities; return(Json(new { recordsFiltered = recordCount, recordsTotal = recordCount, Successfull = result.Successful, ErrorMessage = result.ErrorMessage, data = ((List <ActivityViewModel>)result.Data).Select(aw => new[] { aw.ActivityDate, aw.Operation, aw.Text, aw.User }) }, JsonRequestBehavior.DenyGet)); } } catch (Exception ex) { Log.Error(ex); throw; } }
public JsonResult Like(int articleId) { var result = new JsonOperationResponse(); if (Request.IsAjaxRequest()) { using (var db = new KbVaultContext()) { var article = db.Articles.FirstOrDefault(a => a.Id == articleId); if (article == null) { result.ErrorMessage = ErrorMessages.ArticleNotFound; } else { article.Likes++; db.SaveChanges(); result.Successful = true; result.ErrorMessage = UIResources.ArticleLikeSuccess; } } } return(Json(result)); }
public ActionResult Detail(long id) { try { using (var db = new KbVaultContext()) { var article = db.PublishedArticles().FirstOrDefault(a => a.Id == id); var author = article.KbUser; var lastAuthorEdited = db.KbUsers.FirstOrDefault(a => a.Id == article.LastAuthorEdited); if (article != null) { article.Views++; db.SaveChanges(); ViewBag.SimilarArticles = ArticleRepository.GetVisibleSimilarArticles((int)article.Id, DateTime.Today.Date); ViewBag.Author = author.Name + " " + author.LastName; ViewBag.LastAuthorEdited = lastAuthorEdited.Name + " " + lastAuthorEdited.LastName; return(View(article)); } return(View("ArticleNotFound")); } } catch (Exception ex) { Log.Error(ex); return(RedirectToAction("Index", "Error")); } }
public int GetTotalPublishedArticleCount() { using (var db = new KbVaultContext()) { return(db.PublishedArticles().Count()); } }
public Settings Get() { using (var db = new KbVaultContext()) { return(db.Settings.FirstOrDefault()); } }
public static KbUser GetKbUser(string userName) { using (var db = new KbVaultContext()) { return(db.KbUsers.FirstOrDefault <KbUser>(ku => ku.UserName == userName)); } }
public Entities.KbUser Get(long id) { using (var db = new KbVaultContext()) { return(db.KbUsers.First(u => u.Id == id)); } }
public IList <Category> GetAllCategories() { using (var db = new KbVaultContext()) { return(db.Categories.OrderBy(c => c.Name).ToList()); } }
private static List <CategoryViewModel> GetCategories(long parentCategoryId = -1, int depth = 0, bool createSingleListForDropdown = true) { try { var categoryList = new List <CategoryViewModel>(); using (var db = new KbVaultContext()) { var categories = db.Categories.Where(c => c.Parent == parentCategoryId || (parentCategoryId == -1 && c.Parent == null)).ToList(); foreach (var cat in categories) { var categoryItem = new CategoryViewModel { Id = cat.Id, Name = cat.Name, SefName = cat.SefName, Icon = string.IsNullOrEmpty(cat.Icon) ? "angle-double-right" : cat.Icon, NameForDroplist = cat.Name.PadLeft(cat.Name.Length + depth, '-'), Children = GetCategories(cat.Id, depth + 2) }; categoryList.Add(categoryItem); if (createSingleListForDropdown) { categoryList.AddRange(categoryItem.Children); } } } return(categoryList); } catch (Exception ex) { Log.Error(ex); throw; } }
public IList <Article> GetArticles(int categoryId) { using (var db = new KbVaultContext()) { return(db.Articles.Include(a => a.KbUser).Include(a => a.Attachments).Where(a => a.CategoryId == categoryId).OrderBy(c => c.Title).ToList()); } }
public IList <Category> GetHotCategories() { using (var db = new KbVaultContext()) { return(db.Categories.Include("Articles").Where(c => c.IsHot).ToList()); } }
public Category GetFirstCategory() { using (var db = new KbVaultContext()) { return(db.Categories.FirstOrDefault()); } }
public static void RemoveAttachment(string hash, long currentUserId) { try { using (var db = new KbVaultContext()) { var attachment = db.Attachments.First(a => a.Hash == hash); if (attachment == null) { throw new ArgumentNullException(ErrorMessages.AttachmentNotFound); } var localPath = Path.Combine(HttpContext.Current.Server.MapPath(attachment.Path), attachment.FileName); attachment.Author = currentUserId; db.Attachments.Remove(attachment); db.SaveChanges(); File.Delete(localPath); } } catch (Exception ex) { Log.Error(ex); throw; } }
public static void ChangePassword(string username, string oldPassword, string newPassword) { try { if (ValidateUser(username, oldPassword)) { using (var db = new KbVaultContext()) { KbUser usr = db.KbUsers.FirstOrDefault(ku => ku.UserName == username); if (usr != null) { usr.Password = HashPassword(newPassword, Guid.NewGuid().ToString().Replace("-", string.Empty)); db.SaveChanges(); } else { throw new UserNotFoundException(); } } } else { throw new InvalidPasswordException(); } } catch (Exception ex) { Log.Error(ex); throw; } }
public JsonResult Remove(int id = -1) { var result = new JsonOperationResponse { Successful = false }; try { using (var db = new KbVaultContext()) { // Update all articles owned by deleted user var admin = db.KbUsers.First(a => a.Role == "Admin").Id; KBVaultHelperFunctions.UpdateArticlesOwner(id, admin); //KBVaultHelperFunctions.UpdateActivitiesOwner(id); // Delete user after updating articles db.KbUsers.Remove(db.KbUsers.First(u => u.Id == id)); db.SaveChanges(); result.Successful = true; } return(Json(result)); } catch (Exception ex) { Log.Error(ex); result.ErrorMessage = ex.Message; return(Json(result)); } }
public Article GetMostViewedArticle() { using (var db = new KbVaultContext()) { return(db.Articles.OrderByDescending(a => a.Views).FirstOrDefault()); } }
public JsonResult Remove(int id = -1) { JsonOperationResponse result = new JsonOperationResponse(); result.Successful = false; try { using (var db = new KbVaultContext()) { Tag tag = db.Tags.First(t => t.Id == id); if (tag != null) { tag.Author = KBVaultHelperFunctions.UserAsKbUser(User).Id; db.Tags.Remove(tag); TagRepository.RemoveTagFromArticles(id); db.SaveChanges(); result.Successful = true; result.ErrorMessage = UIResources.TagListRemoveSuccessful; } else { result.ErrorMessage = ErrorMessages.TagNotFound; } } return(Json(result)); } catch (Exception ex) { Log.Error(ex); result.ErrorMessage = ex.Message; return(Json(result)); } }
public bool HasArticleInCategory(int categoryId) { using (var db = new KbVaultContext()) { return(db.Articles.Any(a => a.CategoryId == categoryId)); } }
public IList <Category> GetFirstLevelCategories() { using (var db = new KbVaultContext()) { return(db.Categories.Include("Articles").Where(c => c.Parent == null).OrderBy(c => c.Name).ToList()); } }
public void RemoveTagFromArticles(int tagId) { using (var db = new KbVaultContext()) { var tagIdParam = new SqlParameter("TagId", tagId); db.Database.ExecuteSqlCommand("exec RemoveTagFromArticles @TagId", tagIdParam); } }
public IList <SimilarArticle> GetVisibleSimilarArticles(int articleId, DateTime date) { using (var db = new KbVaultContext()) { var articleIdParam = new SqlParameter("ArticleId", articleId); return(db.Database.SqlQuery <SimilarArticle>("exec GetSimilarArticles @ArticleId", articleIdParam).Where(a => a.PublishStartDate <= date && a.PublishEndDate >= date && a.IsDraft == 0).ToList()); } }
public void AssignTagsToArticle(long articleId, string tags) { using (var db = new KbVaultContext()) { var articleIdParameter = new SqlParameter("ArticleId", articleId); var tagsParameter = new SqlParameter("Tags", tags); db.Database.ExecuteSqlCommand("exec AssignTagsToArticle @ArticleId, @Tags", articleIdParameter, tagsParameter); } }
public JsonResult Remove(int id) { var result = new JsonOperationResponse(); try { using (var db = new KbVaultContext()) { var currentUserId = KBVaultHelperFunctions.UserAsKbUser(User).Id; var queryParams = new SqlParameter[] { new SqlParameter("ArticleId", id) }; db.Database.ExecuteSqlCommand("Delete from ArticleTag Where ArticleId = @ArticleId", queryParams); var article = db.Articles.Single(a => a.Id == id); if (article == null) { throw new Exception(ErrorMessages.ArticleNotFound); } while (article.Attachments.Count > 0) { var a = article.Attachments.First(); KbVaultAttachmentHelper.RemoveLocalAttachmentFile(a); KbVaultLuceneHelper.RemoveAttachmentFromIndex(a); article.Attachments.Remove(a); /* * Also remove the attachment from db.attachments collection * * http://stackoverflow.com/questions/17723626/entity-framework-remove-vs-deleteobject * * If the relationship is required (the FK doesn't allow NULL values) and the relationship is not * identifying (which means that the foreign key is not part of the child's (composite) primary key) * you have to either add the child to another parent or you have to explicitly delete the child * (with DeleteObject then). If you don't do any of these a referential constraint is * violated and EF will throw an exception when you call SaveChanges - * the infamous "The relationship could not be changed because one or more of the foreign-key properties * is non-nullable" exception or similar. */ db.Attachments.Remove(a); } article.Author = currentUserId; KbVaultLuceneHelper.RemoveArticleFromIndex(article); db.Articles.Remove(article); db.SaveChanges(); result.Data = id; result.Successful = true; return(Json(result)); } } catch (Exception ex) { Log.Error(ex); result.Successful = false; result.ErrorMessage = ex.Message; return(Json(result)); } }
public int Add(Category category) { using (var db = new KbVaultContext()) { db.Categories.Add(category); db.SaveChanges(); return(category.Id); } }