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 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 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 JsonResult Like(int articleId) { //bool isAjaxCall = _actionContextAccessor.ActionContext.HttpContext.Request.Headers["x-requested-with"] == "XMLHttpRequest"; //bool isAjaxCall = _httpContextAccessor.HttpContext.Request.Headers["x-requested-with"] == "XMLHttpRequest"; var result = new JsonOperationResponse(); //if (isAjaxCall == true) //{ //using (var db = new KbVaultContext(_config)) //{ var article = _context.Articles.FirstOrDefault(a => a.Id == articleId); if (article == null) { //result.ErrorMessage = Resources.ErrorMessages.ArticleNotFound; result.ErrorMessage = "ArticleNotFound"; } else { article.Likes++; _context.SaveChanges(); result.Successful = true; result.ErrorMessage = "ArticleLikeSuccess"; //Resources.UIResources.ArticleLikeSuccess; } //} //} return(Json(result)); }
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 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 JsonResult Remove(string id) { JsonOperationResponse result = new JsonOperationResponse(); result.Successful = false; try { var parts = id.Split(new[] { "|" }, StringSplitOptions.RemoveEmptyEntries); if (parts.Length == 2) { var attachmentHash = parts[0]; var attachmentId = parts[1]; Attachment at = new Attachment() { Id = Convert.ToInt64(attachmentId) }; at.Author = KBVaultHelperFunctions.UserAsKbUser(User).Id; KbVaultAttachmentHelper.RemoveAttachment(attachmentHash, KBVaultHelperFunctions.UserAsKbUser(User).Id); KbVaultLuceneHelper.RemoveAttachmentFromIndex(at); result.Successful = true; return(Json(result)); } throw new ArgumentOutOfRangeException("Invalid file hash"); } catch (Exception ex) { Log.Error(ex); result.ErrorMessage = ex.Message; return(Json(result)); } }
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 JsonResult Upload() { var result = new JsonOperationResponse { Successful = false }; try { if (Request.Query["ArticleId"] == "") { //result.ErrorMessage = Resources.ErrorMessages.FileUploadArticleNotFound; result.ErrorMessage = "FileUploadArticleNotFound"; } else if (Request.Form.Files.Count == 1) { var articleId = Convert.ToInt64(HttpContext.Request.Query["ArticleId"]); var attachedFile = Request.Form.Files[0]; //var attachment = KbVaultAttachmentHelper.SaveAttachment(articleId, attachedFile, KBVaultHelperFunctions.UserAsKbUser(User).Id, _env); //attachment.Author = KBVaultHelperFunctions.UserAsKbUser(User).Id; var attachment = SaveAttachment(articleId, attachedFile, _httpContextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier), _env); attachment.AuthorId = _httpContextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier); result.Successful = true; //result.Data = new AttachmentViewModel(attachment, _actionContextAccessor); result.Data = new AttachmentViewModel(attachment, _httpContextAccessor); //using (var db = new KbVaultContext(_config)) //{ var sets = _context.Settings.FirstOrDefault(); if (sets != null) { var extensions = sets.IndexFileExtensions.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); if (extensions.FirstOrDefault(a => a.ToLowerInvariant() == attachment.Extension.ToLowerInvariant()) != null) { //todo VRATI SE _lucene.AddAttachmentToIndex(attachment); } } //} } else { //result.ErrorMessage = Resources.ErrorMessages.FileUploadTooManyFiles; result.ErrorMessage = "FileUploadTooManyFiles"; } return(Json(result)); } catch (Exception ex) { log.Error(ex); result.ErrorMessage = ex.Message; return(Json(result)); } }
// [Authorize(Roles = "Admin,Manager")] public JsonResult Remove(int id) { var result = new JsonOperationResponse(); try { if (_categoryRepository.Get(id) != null) { if (!_categoryRepository.HasArticleInCategory(id)) { var cat = new Category { AuthorId = _httpContextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier), Id = id }; if (_categoryRepository.Remove(cat)) { result.Successful = true; result.ErrorMessage = string.Format(ErrorMessages.CategoryRemovedSuccessfully, cat.Name); cat = _categoryRepository.GetFirstCategory(); //var url = new UrlHelper(Request.RequestContext); //result.Data = cat == null // ? url.Action("Index", "Dashboard") // : url.Action("List", "Category", new { id = cat.Id, page = 1 }); //testirati result.Data = cat == null ? RedirectToAction("Index", "Dashboard") : RedirectToAction("List", "Category", new { id = cat.Id, page = 1 }); } } else { result.Successful = false; result.ErrorMessage = ErrorMessages.CategoryIsNotEmpty; } } else { result.Successful = false; result.ErrorMessage = ErrorMessages.CategoryNotFound; } return(Json(result)); } catch (Exception ex) { log.Error(ex); result.Successful = false; result.ErrorMessage = ex.Message; return(Json(result)); } }
public JsonResult BackupNow() { try { var foundSettings = _context.Settings.FirstOrDefault(s => true); var result = new JsonOperationResponse(); if (string.IsNullOrEmpty(foundSettings.BackupPath)) { result.Successful = false; //result.ErrorMessage = Resources.ErrorMessages.BackupPathIsNotSet; result.ErrorMessage = "BackupPathIsNotSet"; } else { //var connectionString = ConfigurationManager.ConnectionStrings["KbVaultContext"].ConnectionString; var connectionString = ConfigurationManager.ConnectionStrings["KnowledgeBaseContextBackup"].ConnectionString; var builder = new System.Data.SqlClient.SqlConnectionStringBuilder(connectionString); IVaultBackup backup = new VaultMsSqlBackup(); backup.Connect(connectionString); var backupFile = string.Format("{0:yyyyMddhhmm}.bak", DateTime.Now); if (!string.IsNullOrEmpty(foundSettings.BackupPath) && foundSettings.BackupPath.StartsWith("~")) { //backupFile = Server.MapPath(Settings.BackupPath + backupFile); var contentroot = _env.ContentRootPath; backupFile = System.IO.Path.Combine(contentroot, foundSettings.BackupPath + backupFile); } else { backupFile = foundSettings.BackupPath + backupFile; } var backupSuccessful = backup.Backup(builder.InitialCatalog, backupFile); if (backupSuccessful) { if (!string.IsNullOrEmpty(backupFile)) { result.Data = backupFile; result.Successful = true; } } } return(Json(result)); } catch (Exception ex) { Log.Error(ex); throw; } }
public JsonResult Remove(int id) { JsonOperationResponse result = new JsonOperationResponse(); try { if (CategoryRepository.Get(id) != null) { if (!CategoryRepository.HasArticleInCategory(id)) { var cat = new Category() { Author = KBVaultHelperFunctions.UserAsKbUser(User).Id, Id = id }; if (CategoryRepository.Remove(cat)) { result.Successful = true; result.ErrorMessage = String.Format(ErrorMessages.CategoryRemovedSuccessfully, cat.Name); UrlHelper url = new UrlHelper(Request.RequestContext); cat = CategoryRepository.GetFirstCategory(); result.Data = cat == null ? url.Action("Index", "Dashboard") : url.Action("List", "Category", new { id = cat.Id, page = 1 }); } } else { result.Successful = false; result.ErrorMessage = ErrorMessages.CategoryIsNotEmpty; } } else { result.Successful = false; result.ErrorMessage = ErrorMessages.CategoryNotFound; } return(Json(result)); } catch (Exception ex) { Log.Error(ex); result.Successful = false; result.ErrorMessage = ex.Message; return(Json(result)); } }
public JsonResult Restore(string file) { try { var result = new JsonOperationResponse(); try { var backupFile = string.Empty; if (Settings.BackupPath.StartsWith("~")) { backupFile = Server.MapPath(Settings.BackupPath + file); } else { backupFile = Settings.BackupPath + file; } if (System.IO.File.Exists(backupFile)) { var connectionString = ConfigurationManager.ConnectionStrings["KbVaultEntities"].ConnectionString; var entityConnectionString = new EntityConnectionStringBuilder(connectionString); var builder = new System.Data.SqlClient.SqlConnectionStringBuilder(entityConnectionString.ProviderConnectionString); IVaultBackup backup = new VaultMsSqlBackup(); backup.Connect(entityConnectionString.ProviderConnectionString); result.Successful = backup.Restore(builder.InitialCatalog, backupFile); if (result.Successful) { result.ErrorMessage = UIResources.BackupRestoreSuccessfull; } } else { throw new FileNotFoundException(file); } } catch (Exception ex) { Log.Error(ex); result.ErrorMessage = ex.Message; } return(Json(result, JsonRequestBehavior.DenyGet)); } catch (Exception ex) { Log.Error(ex); throw; } }
public JsonResult Upload() { var result = new JsonOperationResponse { Successful = false }; try { if (Request.Params["ArticleId"] == null) { result.ErrorMessage = ErrorMessages.FileUploadArticleNotFound; } else if (Request.Files.Count == 1) { var articleId = Convert.ToInt64(Request.Params["ArticleId"]); var attachedFile = Request.Files[0]; var attachment = KbVaultAttachmentHelper.SaveAttachment(articleId, attachedFile, KBVaultHelperFunctions.UserAsKbUser(User).Id); attachment.Author = KBVaultHelperFunctions.UserAsKbUser(User).Id; result.Successful = true; result.Data = new AttachmentViewModel(attachment); using (var db = new KbVaultContext()) { var sets = db.Settings.FirstOrDefault(); if (sets != null) { var extensions = sets.IndexFileExtensions.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); if (extensions.FirstOrDefault(a => a.ToLowerInvariant() == attachment.Extension.ToLowerInvariant()) != null) { KbVaultLuceneHelper.AddAttachmentToIndex(attachment); } } } } else { result.ErrorMessage = ErrorMessages.FileUploadTooManyFiles; } return(Json(result)); } catch (Exception ex) { log.Error(ex); result.ErrorMessage = ex.Message; return(Json(result)); } }
public JsonResult BackupNow() { try { var result = new JsonOperationResponse(); if (string.IsNullOrEmpty(Settings.BackupPath)) { result.Successful = false; result.ErrorMessage = ErrorMessages.BackupPathIsNotSet; } else { var connectionString = ConfigurationManager.ConnectionStrings["KbVaultContext"].ConnectionString; var builder = new System.Data.SqlClient.SqlConnectionStringBuilder(connectionString); IVaultBackup backup = new VaultMsSqlBackup(); backup.Connect(connectionString); var backupFile = string.Format("{0:yyyyMddhhmm}.bak", DateTime.Now); if (!string.IsNullOrEmpty(Settings.BackupPath) && Settings.BackupPath.StartsWith("~")) { backupFile = Server.MapPath(Settings.BackupPath + backupFile); } else { backupFile = Settings.BackupPath + backupFile; } var backupSuccessful = backup.Backup(builder.InitialCatalog, backupFile); if (backupSuccessful) { if (!string.IsNullOrEmpty(backupFile)) { result.Data = backupFile; result.Successful = true; } } } return(Json(result, JsonRequestBehavior.DenyGet)); } catch (Exception ex) { Log.Error(ex); throw; } }
public JsonResult More(SearchFormViewModel model) { JsonOperationResponse result = new JsonOperationResponse(); try { model.CurrentPage++; model.Results = KbVaultLuceneHelper.DoSearch(model.SearchKeyword, model.CurrentPage, 1); result.Successful = true; result.Data = model; } catch (Exception ex) { Log.Error(ex); result.ErrorMessage = ex.Message; } return(Json(result)); }
public JsonResult Suggest(string term) { var result = new JsonOperationResponse(); try { var suggestions = _context.Tags.Where(t => t.Name.Contains(term)).Select(t => t.Name).Take(20).ToList <string>(); result.Successful = true; result.Data = suggestions.ToArray(); return(Json(result)); } catch (Exception ex) { log.Error(ex); result.Successful = false; result.ErrorMessage = ex.Message; return(Json(result)); } }
public JsonResult Ajax(string id) { JsonOperationResponse result = new JsonOperationResponse(); try { if (Request.IsAjaxRequest()) { List <KbSearchResultItemViewModel> items = KbVaultLuceneHelper.DoSearch(id, 1, 10); //Request.Form["txtSearch"]); result.Data = items; result.Successful = true; } } catch (Exception ex) { Log.Error(ex); result.ErrorMessage = ex.Message; } return(Json(result)); }
public JsonResult Ajax(string id) { var result = new JsonOperationResponse(); try { if (Request.IsAjaxRequest()) { var items = KbVaultLuceneHelper.DoSearch(id, 1, 10); result.Data = items; result.Successful = true; } } catch (Exception ex) { Log.Error(ex); result.ErrorMessage = ex.Message; } return(Json(result)); }
public JsonResult Remove(string id) { var result = new JsonOperationResponse { Successful = false }; try { var parts = id.Split(new[] { "|" }, StringSplitOptions.RemoveEmptyEntries); if (parts.Length == 2) { var attachmentHash = parts[0]; var attachmentId = parts[1]; var at = new Attachment { Id = Convert.ToInt64(attachmentId), //AuthorId = KBVaultHelperFunctions.UserAsKbUser(User).Id AuthorId = _httpContextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier) }; RemoveAttachment(attachmentHash, _httpContextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier), _env); _lucene.RemoveAttachmentFromIndex(at); result.Successful = true; return(Json(result)); } throw new ArgumentOutOfRangeException("Invalid file hash"); } catch (Exception ex) { log.Error(ex); result.ErrorMessage = ex.Message; return(Json(result)); } }
[AjaxOnly] //vrati se public JsonResult Ajax(string id) { var result = new JsonOperationResponse(); try { //bool IsAjax = _actionContextAccessor.ActionContext.HttpContext.Request.Headers["x-requested-with"] == "XMLHttpRequest"; //bool IsAjax = _httpContextAccessor.HttpContext.Request.Headers["x-requested-with"] == "XMLHttpRequest"; //if (IsAjax == true) //{ var items = _lucene.DoSearch(id, 1, 10); result.Data = items; result.Successful = true; //} } catch (Exception ex) { Log.Error(ex); result.ErrorMessage = ex.Message; } return(Json(result)); }
public JsonResult Restore(string file) { try { var foundSettings = _context.Settings.FirstOrDefault(s => true); var result = new JsonOperationResponse(); try { var backupFile = string.Empty; if (foundSettings.BackupPath.StartsWith("~")) { var webroot = _env.WebRootPath; backupFile = System.IO.Path.Combine(webroot, foundSettings.BackupPath + file); //backupFile = Server.MapPath(Settings.BackupPath + file); } else { backupFile = foundSettings.BackupPath + file; } if (System.IO.File.Exists(backupFile)) { var connectionString = ConfigurationManager.ConnectionStrings["KnowledgeBaseContextBackup"].ConnectionString; //https://docs.microsoft.com/en-us/dotnet/api/system.data.entity.core.entityclient?view=entity-framework-6.2.0 var entityConnectionString = ConfigurationManager.ConnectionStrings["KnowledgeBaseContextBackup"].ConnectionString; var builder = new System.Data.SqlClient.SqlConnectionStringBuilder(entityConnectionString); //var entityConnectionString = new EntityConnectionStringBuilder(connectionString); //var entityConnectionString = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(connectionString); //var builder = new System.Data.SqlClient.SqlConnectionStringBuilder(entityConnectionString.ProviderConnectionString); //var builder = new System.Data.Common.DbConnectionStringBuilder.SqlConnectionStringBuilder(entityConnectionString.ProviderConnectionString); //System.Data.Entity.Core.EntityClient. //System.Data.Common.DbConnectionStringBuilder. IVaultBackup backup = new VaultMsSqlBackup(); //backup.Connect(entityConnectionString.ProviderConnectionString); backup.Connect(entityConnectionString); result.Successful = backup.Restore(builder.InitialCatalog, backupFile); if (result.Successful) { result.ErrorMessage = "BackupRestoreSuccessfull"; // Resources.UIResources.BackupRestoreSuccessfull; } } else { throw new FileNotFoundException(file); } } catch (Exception ex) { Log.Error(ex); result.ErrorMessage = ex.Message; } return(Json(result)); } catch (Exception ex) { Log.Error(ex); throw; } }