public DocumentFolderResponse Create(DocumentFolderViewModel DocumentFolder) { DocumentFolderResponse response = new DocumentFolderResponse(); using (SqliteConnection db = new SqliteConnection("Filename=SirmiumERPGFC.db")) { db.Open(); SqliteCommand insertCommand = db.CreateCommand(); insertCommand.CommandText = SqlCommandInsertPart; try { insertCommand = AddCreateParameters(insertCommand, DocumentFolder); insertCommand.ExecuteNonQuery(); } catch (SqliteException error) { MainWindow.ErrorMessage = error.Message; response.Success = false; response.Message = error.Message; return(response); } db.Close(); response.Success = true; return(response); } }
public DocumentFolderListResponse GetDocumentFolders(int companyId, DocumentFolderViewModel searchObject, bool initialDisplay = false) { DocumentFolderListResponse response = new DocumentFolderListResponse(); List <DocumentFolderViewModel> folders = new List <DocumentFolderViewModel>(); using (SqliteConnection db = new SqliteConnection("Filename=SirmiumERPGFC.db")) { db.Open(); try { SqliteCommand selectCommand; if (searchObject.Search_ShouldLoadSubDirectories) { selectCommand = new SqliteCommand( SqlCommandSelectPart + "FROM DocumentFolders " + "WHERE (@FolderName IS NULL OR @FolderName = '' OR Name LIKE @FolderName) " + "AND (@ParentFolderId IS NULL OR @ParentFolderId = '' OR ParentFolderId = @ParentFolderId) " + "AND CompanyId = @CompanyId " + "ORDER BY Name ASC ", db); selectCommand.Parameters.AddWithValue("@ParentFolderId", ((object)searchObject?.Search_ParentId ?? DBNull.Value)); } else { selectCommand = new SqliteCommand( SqlCommandSelectPart + "FROM DocumentFolders " + "WHERE (@FolderName IS NULL OR @FolderName = '' OR Name LIKE @FolderName) " + "AND CompanyId = @CompanyId " + "ORDER BY Name ASC ", db); } selectCommand.Parameters.AddWithValue("@FolderName", ((object)searchObject.Search_Name) != null ? "%" + searchObject.Search_Name + "%" : ""); selectCommand.Parameters.AddWithValue("@CompanyId", companyId); SqliteDataReader query = selectCommand.ExecuteReader(); while (query.Read()) { DocumentFolderViewModel dbEntry = Read(query); folders.Add(dbEntry); } } catch (SqliteException error) { MainWindow.ErrorMessage = error.Message; response.Success = false; response.Message = error.Message; response.DocumentFolders = new List <DocumentFolderViewModel>(); return(response); } db.Close(); } response.Success = true; response.DocumentFolders = folders; return(response); }
public async Task <IActionResult> UpdateFolder(DocumentFolderViewModel documentFolder) { var invalidChars = Path.GetInvalidFileNameChars(); string validFolderName = new string(documentFolder.FolderName .Where(x => !invalidChars.Contains(x)) .ToArray()); string oldValidFolderName = new string(documentFolder.OldFolderName .Where(x => !invalidChars.Contains(x)) .ToArray()); if (ModelState.IsValid) { try { //string root = _hostingEnv.WebRootPath + "\\UploadFiles\\"; string root = _networkDocPath; string oldPath = root + await _unitOfWork.Documents.GetCurrentPath(documentFolder.ParentFolderId) + "\\" + oldValidFolderName; string newPath = root + await _unitOfWork.Documents.GetCurrentPath(documentFolder.ParentFolderId) + "\\" + validFolderName; if (Directory.Exists(oldPath)) { Directory.Move(oldPath, newPath); //rename folder } else { Directory.CreateDirectory(newPath); } DocumentFolder updatedFolder = new DocumentFolder { Name = documentFolder.FolderName.TrimEnd(), ParentFolderId = documentFolder.ParentFolderId, CreateUserId = _userSession.Id, ModifiedDateTime = DateTime.Now, CreateDate = DateTime.Now, FolderId = Convert.ToInt32(documentFolder.FolderId), FolderStatusId = documentFolder.FolderStatusId }; _unitOfWork.Documents.UpdateFolder(updatedFolder); await _unitOfWork.CompleteAsync(); return(Redirect(Request.Headers["Referer"].ToString())); } catch (Exception ex) { throw ex; } } return(View(documentFolder)); }
private void btnRecalculateIndexes_Click(object sender, RoutedEventArgs e) { Thread td = new Thread(() => { DocumentIndexingButtonEnabled = false; try { DocumentIndexingButtonContent = " Priprema ... "; IDocumentFolderService documentFolderService = DependencyResolver.Kernel.Get <IDocumentFolderService>(); IDocumentFileService documentFileService = DependencyResolver.Kernel.Get <IDocumentFileService>(); var clearResponse = documentFolderService.Clear(MainWindow.CurrentCompanyId); if (clearResponse.Success) { var clearFileResponse = documentFileService.Clear(MainWindow.CurrentCompanyId); if (clearFileResponse.Success) { var azureClient = new AzureDataClient(); var rootFolder = new DocumentFolderViewModel() { Identifier = Guid.NewGuid(), Name = "Documents", Path = azureClient.rootDirectory.Uri.LocalPath, Company = new CompanyViewModel() { Id = MainWindow.CurrentCompanyId }, CreatedBy = new UserViewModel() { Id = MainWindow.CurrentUserId } }; azureClient.IndexingDirectoryChanged += delegate(string currentPath, int totalIndexed) { DocumentIndexingButtonContent = $" Indeksirano foldera: {totalIndexed}. Trenutni folder: {currentPath}"; }; azureClient.ResetIndexNumber(); azureClient.GetDocumentFolders(documentFolderService, documentFileService, rootFolder, true); } } DocumentIndexingButtonEnabled = true; DocumentIndexingButtonContent = " Indeksiranje dokumenata "; } catch (Exception ex) { MainWindow.ErrorMessage = ex.Message; DocumentIndexingButtonEnabled = true; } }); td.IsBackground = true; td.Start(); }
public async Task <IViewComponentResult> InvokeAsync(int folderId) { var folder = await _unitOfWork.Documents.GetFolderByIdAsync(folderId); var docFolder = new DocumentFolderViewModel(); docFolder.FolderName = folder.Name; docFolder.OldFolderName = folder.Name; docFolder.FolderId = folder.FolderId; docFolder.ParentFolderId = folder.ParentFolderId; docFolder.FolderStatusId = Convert.ToInt32(folder.FolderStatusId); return(View("EditFolder", docFolder)); }
public async Task <IActionResult> Create(DocumentFolderViewModel documentFolder) { var invalidChars = Path.GetInvalidFileNameChars(); if (ModelState.IsValid) { string validFolderName = new string(documentFolder.FolderName .Where(x => !invalidChars.Contains(x)) .ToArray()); try { string path = _networkDocPath + (await _unitOfWork.Documents.GetCurrentPath(documentFolder.ParentFolderId) + @"\" + validFolderName); //string path = _hostingEnv.WebRootPath + "\\UploadFiles\\" + // await _unitOfWork.Documents.GetCurrentPath(documentFolder.ParentFolderId) + // "\\" + validFolderName; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } DocumentFolder newFolder = new DocumentFolder(); newFolder.Name = documentFolder.FolderName.TrimEnd(); newFolder.ParentFolderId = documentFolder.ParentFolderId; newFolder.CreateUserId = _userSession.Id; newFolder.ModifiedDateTime = DateTime.Now; newFolder.CreateDate = DateTime.Now; newFolder.FolderStatusId = await _unitOfWork.Documents.GetDocumentStatusIdAsync("Active"); await _unitOfWork.Documents.CreateFolder(newFolder); await _unitOfWork.CompleteAsync(); if (newFolder.ParentFolderId != null) { return(RedirectToAction("Details", "Documents", new { id = newFolder.ParentFolderId })); } else { return(Redirect(Request.Headers["Referer"].ToString())); } } catch (Exception) { throw; } } return(View(documentFolder)); }
public DocumentFolderResponse Create(DocumentFolderViewModel viewModel) { DocumentFolderResponse response = new DocumentFolderResponse(); try { response.DocumentFolder = unitOfWork.GetDocumentFolderRepository().Create(viewModel.ConvertToDocumentFolder()) ?.ConvertToDocumentFolderViewModel(); response.Success = true; } catch (Exception ex) { response.Success = false; response.Message = ex.Message; } return(response); }
void GetDirectoryTree(DocumentFolderViewModel parent) { List <DocumentFolderViewModel> directories; try { var response = new DocumentFolderSQLiteRepository().GetDocumentFolders(MainWindow.CurrentCompanyId, FolderFilterObject, false); directories = response?.DocumentFolders ?? new List <DocumentFolderViewModel>(); } catch (Exception ex) { directories = new List <DocumentFolderViewModel>(); } parent.SubDirectories = new ObservableCollection <DocumentFolderViewModel>(directories); }
public DocumentFolderResponse Delete(DocumentFolderViewModel toDelete) { DocumentFolderResponse response = new DocumentFolderResponse(); try { response = WpfApiHandler.SendToApi <DocumentFolderViewModel, DocumentFolderResponse>(toDelete, "Delete"); } catch (Exception ex) { response.DocumentFolder = new DocumentFolderViewModel(); response.Success = false; response.Message = ex.Message; } return(response); }
public IViewComponentResult Invoke() { var folder = new DocumentFolderViewModel(); var qsFolderId = HttpContext.Request.Query["id"].ToString(); int folderId = 0; var folderIdString = qsFolderId != "" ? qsFolderId : HttpContext.Request.Path.ToString().Split('/').Last(); Int32.TryParse(folderIdString, out folderId); //getID here in case searched by id if (folderId > 0) { folder.ParentFolderId = Convert.ToInt32(folderId); } return(View("CreateFolder", folder)); }
private static DocumentFolderViewModel Read(SqliteDataReader query) { int counter = 0; DocumentFolderViewModel dbEntry = new DocumentFolderViewModel(); dbEntry.Id = SQLiteHelper.GetInt(query, ref counter); dbEntry.Identifier = SQLiteHelper.GetGuid(query, ref counter); dbEntry.Name = SQLiteHelper.GetString(query, ref counter); dbEntry.Path = SQLiteHelper.GetString(query, ref counter); dbEntry.ParentFolder = SQLiteHelper.GetDocumentFolder(query, ref counter); dbEntry.UpdatedAt = SQLiteHelper.GetDateTime(query, ref counter); dbEntry.CreatedBy = SQLiteHelper.GetCreatedBy(query, ref counter); dbEntry.Company = SQLiteHelper.GetCompany(query, ref counter); return(dbEntry); }
public DocumentFolderResponse Delete(DocumentFolderViewModel toDelete) { DocumentFolderResponse response = new DocumentFolderResponse(); try { response.DocumentFolder = unitOfWork.GetDocumentFolderRepository().Delete(toDelete?.Id ?? 0) ?.ConvertToDocumentFolderViewModel(); response.Success = true; } catch (Exception ex) { response.Success = false; response.Message = ex.Message; } return(response); }
public static DocumentFolderViewModel ConvertToDocumentFolderViewModelLite(this DocumentFolder DocumentFolder) { DocumentFolderViewModel DocumentFolderViewModel = new DocumentFolderViewModel() { Id = DocumentFolder.Id, Identifier = DocumentFolder.Identifier, Name = DocumentFolder.Name, Path = DocumentFolder.Path, IsActive = DocumentFolder.Active, UpdatedAt = DocumentFolder.UpdatedAt, CreatedAt = DocumentFolder.CreatedAt }; return(DocumentFolderViewModel); }
public JsonResult Delete([FromBody] DocumentFolderViewModel c) { DocumentFolderResponse response = new DocumentFolderResponse(); try { response = this.documentFolderService.Delete(c); } catch (Exception ex) { response.Success = false; response.Message = ex.Message; Console.WriteLine(ex.Message); } return(Json(response, new Newtonsoft.Json.JsonSerializerSettings() { Formatting = Newtonsoft.Json.Formatting.Indented })); }
private SqliteCommand AddCreateParameters(SqliteCommand insertCommand, DocumentFolderViewModel folder) { insertCommand.Parameters.AddWithValue("@ServerId", folder.Id); insertCommand.Parameters.AddWithValue("@Identifier", folder.Identifier); insertCommand.Parameters.AddWithValue("@Name", ((object)folder.Name) ?? DBNull.Value); insertCommand.Parameters.AddWithValue("@Path", ((object)folder.Path) ?? DBNull.Value); insertCommand.Parameters.AddWithValue("@ParentFolderId", ((object)folder.ParentFolder?.Id) ?? DBNull.Value); insertCommand.Parameters.AddWithValue("@ParentFolderIdentifier", ((object)folder.ParentFolder?.Identifier) ?? DBNull.Value); insertCommand.Parameters.AddWithValue("@ParentFolderName", ((object)folder.ParentFolder?.Name) ?? DBNull.Value); insertCommand.Parameters.AddWithValue("@ParentFolderPath", ((object)folder.ParentFolder?.Path) ?? DBNull.Value); insertCommand.Parameters.AddWithValue("@UpdatedAt", ((object)folder.UpdatedAt) ?? DBNull.Value); insertCommand.Parameters.AddWithValue("@CreatedById", MainWindow.CurrentUser.Id); insertCommand.Parameters.AddWithValue("@CreatedByName", MainWindow.CurrentUser.FirstName + " " + MainWindow.CurrentUser.LastName); insertCommand.Parameters.AddWithValue("@CompanyId", MainWindow.CurrentCompany.Id); insertCommand.Parameters.AddWithValue("@CompanyName", MainWindow.CurrentCompany.CompanyName); return(insertCommand); }
public DocumentFolderResponse GetDirectoryByPath(int companyId, string path) { DocumentFolderResponse response = new DocumentFolderResponse(); DocumentFolderViewModel folder = null; using (SqliteConnection db = new SqliteConnection("Filename=SirmiumERPGFC.db")) { db.Open(); try { SqliteCommand selectCommand = new SqliteCommand( SqlCommandSelectPart + "FROM DocumentFolders " + "WHERE Path = @Path " + "AND CompanyId = @CompanyId " + "ORDER BY Name ASC ", db); selectCommand.Parameters.AddWithValue("@Path", path); selectCommand.Parameters.AddWithValue("@CompanyId", companyId); SqliteDataReader query = selectCommand.ExecuteReader(); if (query.Read()) { folder = Read(query); } } catch (SqliteException error) { MainWindow.ErrorMessage = error.Message; response.Success = false; response.Message = error.Message; response.DocumentFolder = null; return(response); } db.Close(); } response.Success = true; response.DocumentFolder = folder; return(response); }
public DocumentFolderListResponse GetRootFolder(int companyId) { DocumentFolderListResponse response = new DocumentFolderListResponse(); List <DocumentFolderViewModel> folders = new List <DocumentFolderViewModel>(); using (SqliteConnection db = new SqliteConnection("Filename=SirmiumERPGFC.db")) { db.Open(); try { SqliteCommand selectCommand = new SqliteCommand( SqlCommandSelectPart + "FROM DocumentFolders " + "WHERE ParentFolderId IS NULL " + "AND CompanyId = @CompanyId " + "ORDER BY Name ASC ", db); selectCommand.Parameters.AddWithValue("@CompanyId", companyId); SqliteDataReader query = selectCommand.ExecuteReader(); while (query.Read()) { DocumentFolderViewModel dbEntry = Read(query); folders.Add(dbEntry); } } catch (SqliteException error) { MainWindow.ErrorMessage = error.Message; response.Success = false; response.Message = error.Message; response.DocumentFolders = new List <DocumentFolderViewModel>(); return(response); } db.Close(); } response.Success = true; response.DocumentFolders = folders; return(response); }
public static DocumentFolder ConvertToDocumentFolder(this DocumentFolderViewModel DocumentFolderViewModel) { DocumentFolder DocumentFolder = new DocumentFolder() { Id = DocumentFolderViewModel.Id, Identifier = DocumentFolderViewModel.Identifier, Name = DocumentFolderViewModel.Name, Path = DocumentFolderViewModel.Path, ParentFolderId = DocumentFolderViewModel?.ParentFolder?.Id ?? null, CompanyId = DocumentFolderViewModel.Company?.Id ?? null, CreatedById = DocumentFolderViewModel.CreatedBy?.Id ?? null, CreatedAt = DocumentFolderViewModel.CreatedAt, UpdatedAt = DocumentFolderViewModel.UpdatedAt }; return(DocumentFolder); }
public static DocumentFolderViewModel ConvertToDocumentFolderViewModel(this DocumentFolder DocumentFolder) { DocumentFolderViewModel DocumentFolderViewModel = new DocumentFolderViewModel() { Id = DocumentFolder.Id, Identifier = DocumentFolder.Identifier, Name = DocumentFolder.Name, Path = DocumentFolder.Path, ParentFolder = DocumentFolder?.ParentFolder?.ConvertToDocumentFolderViewModelLite(), IsActive = DocumentFolder.Active, Company = DocumentFolder.Company?.ConvertToCompanyViewModelLite(), CreatedBy = DocumentFolder.CreatedBy?.ConvertToUserViewModelLite(), UpdatedAt = DocumentFolder.UpdatedAt, CreatedAt = DocumentFolder.CreatedAt }; return(DocumentFolderViewModel); }
private async void btnCreateFolder_Click(object sender, RoutedEventArgs e) { var result = await GetNewFolderName(); NewFolderName = result; if (String.IsNullOrEmpty(NewFolderName)) { MessageBox.Show("Naziv foldera ne moze biti prazan!"); return; } string basePath = SelectedTreeItem?.Path; if (String.IsNullOrEmpty(basePath)) { MessageBox.Show("Bazna putanja ne moze biti prazna!"); return; } try { var parent = azureClient.GetDirectory(basePath); if (!parent.Exists()) { throw new Exception("Odabrani folder ne postoji!"); } var childFolder = parent.GetDirectoryReference(NewFolderName); if (childFolder.Exists()) { throw new Exception("Folder sa zadatim imenom već postoji!"); } childFolder.Create(); var newDir = new DocumentFolderViewModel() { Identifier = Guid.NewGuid(), ParentFolder = SelectedTreeItem, Name = NewFolderName, Path = childFolder.Uri.LocalPath, CreatedAt = DateTime.Now, UpdatedAt = DateTime.Now, Company = new ServiceInterfaces.ViewModels.Common.Companies.CompanyViewModel() { Id = MainWindow.CurrentCompanyId }, CreatedBy = new ServiceInterfaces.ViewModels.Common.Identity.UserViewModel() { Id = MainWindow.CurrentUserId } }; var response = documentFolderService.Create(newDir); if (response.Success) { newDir.Id = response?.DocumentFolder?.Id ?? 0; new DocumentFolderSQLiteRepository().Sync(documentFolderService, ((done, toDo) => { Debug.WriteLine($"Syncing folders: {done} out of {toDo}"); })); SelectedTreeItem.SubDirectories.Add(newDir); SelectedTreeItem.IsDirExpanded = true; MainWindow.SuccessMessage = "Folder je uspešno kreiran!"; } } catch (Exception ex) { MainWindow.ErrorMessage = ex.Message; } NewFolderName = ""; }
public void GetDocumentFolders(IDocumentFolderService service, IDocumentFileService fileService, DocumentFolderViewModel dir, bool recursive = false) { if (CancelOperation) { return; } if (dir != null) { CloudFileDirectory dirPath = GetDirectory(dir.Path); if (dirPath != null && dirPath.Exists()) { currentlyIndexedNumber++; IndexingDirectoryChanged?.Invoke(dir.Path, currentlyIndexedNumber); if (dir.Id < 1) { var response = service.Create(dir); if (response.Success) { dir.Id = response?.DocumentFolder?.Id ?? 0; } else { dir.Id = -1; } } if (dir.Id > 0) { dirPath.FetchAttributes(); var subFilesAndDirectories = dirPath.ListFilesAndDirectories(); var subFiles = subFilesAndDirectories.OfType <CloudFile>() .Select(x => new DocumentFileViewModel() { Identifier = Guid.NewGuid(), DocumentFolder = dir, Name = x.Name, Path = x.Uri.LocalPath, Company = new ServiceInterfaces.ViewModels.Common.Companies.CompanyViewModel() { Id = MainWindow.CurrentCompanyId }, CreatedBy = new ServiceInterfaces.ViewModels.Common.Identity.UserViewModel() { Id = MainWindow.CurrentUserId } }) .ToList(); subFiles.ForEach(x => GetDocumentAttributes(x)); var fileResponse = fileService.SubmitList(subFiles); var subDirectories = subFilesAndDirectories.OfType <CloudFileDirectory>() .Select(x => new DocumentFolderViewModel() { Path = x.Uri.LocalPath, Name = x.Name, Identifier = Guid.NewGuid(), ParentFolder = dir, Company = new ServiceInterfaces.ViewModels.Common.Companies.CompanyViewModel() { Id = MainWindow.CurrentCompanyId }, CreatedBy = new ServiceInterfaces.ViewModels.Common.Identity.UserViewModel() { Id = MainWindow.CurrentUserId } }) .ToList(); var response = service.SubmitList(subDirectories); if (response.Success) { dir.SubDirectories = new ObservableCollection <DocumentFolderViewModel>(response?.DocumentFolders ?? new List <DocumentFolderViewModel>()); if (recursive) { foreach (var item in dir.SubDirectories) { if (CancelOperation) { return; } GetDocumentFolders(service, fileService, item, recursive); } } } } } } }