public static bool PutFileFromUploadManagerLight(ref DocsPaVO.documento.FileRequest fileRequest, DocsPaVO.documento.FileDocumento fileDocument, string repositoryId, DocsPaVO.utente.InfoUtente infoUtente) { bool retVal = false; if (System.IO.File.Exists(fileDocument.fullName)) { DocsPaDB.Query_DocsPAWS.UploadFiles uploadFiles = new DocsPaDB.Query_DocsPAWS.UploadFiles(); string fileHash = uploadFiles.GetHashFile(infoUtente.idPeople, infoUtente.idGruppo, fileDocument.fullName, fileDocument.nomeOriginale); //Creare metoto insert into components //oppure //Update se creo finto file e richiamo put file if (uploadFiles.UpdateComponentsPath(fileRequest.docNumber, fileDocument.fullName, fileDocument.name, fileDocument.contentType, fileDocument.length, fileHash.ToUpper(), infoUtente)) { uploadFiles.DeleteFileInUpload(fileDocument.name, repositoryId, infoUtente); fileRequest.path = fileDocument.fullName; fileRequest.fileName = fileDocument.name; fileRequest.fileSize = fileDocument.length.ToString(); retVal = true; } } return(retVal); }
/// <summary> /// Fornisco informazione su eventuali upload in sospeso per l'utente loggato /// </summary> /// <param name="request"></param> /// <param name="infoUtente"></param> /// <returns>Response</returns> public static Services.FilesUploader.GetFilesState.GetFilesStateResponse GetFilesState(Services.FilesUploader.GetFilesState.GetFilesStateRequest request, DocsPaVO.utente.InfoUtente infoUtente) { Services.FilesUploader.GetFilesState.GetFilesStateResponse response = new Services.FilesUploader.GetFilesState.GetFilesStateResponse(); List <DocsPaVO.UploadFiles.FileInUpload> listFile = new List <DocsPaVO.UploadFiles.FileInUpload>(); try { DocsPaDB.Query_DocsPAWS.UploadFiles uploadFilesDb = new DocsPaDB.Query_DocsPAWS.UploadFiles(); listFile = uploadFilesDb.GetListFilesInUpload(request.MachineName, infoUtente); response.FileInUp = NewListFilesStateClient(listFile); response.Success = true; } catch (PisException pisEx) { response.Error = new Services.ResponseError { Code = pisEx.ErrorCode, Description = pisEx.Description }; response.Success = false; } return(response); }
public static bool DeletePersonalFile(DocsPaVO.documento.FileDocumento fileDocument, string repositoryId, DocsPaVO.utente.InfoUtente infoUtente) { bool retVal = false; DocsPaDB.Query_DocsPAWS.UploadFiles uploadFiles = new DocsPaDB.Query_DocsPAWS.UploadFiles(); uploadFiles.BeginTransaction(); if (uploadFiles.DeleteFileInUpload(fileDocument.name, repositoryId, infoUtente)) { if (System.IO.File.Exists(fileDocument.fullName)) { try { System.IO.File.Delete(fileDocument.fullName); uploadFiles.CommitTransaction(); retVal = true; } catch { uploadFiles.RollbackTransaction(); } } else { uploadFiles.CommitTransaction(); retVal = true; } } return(retVal); }
public static string GetUploaderVersion() { string retVal = string.Empty; DocsPaDB.Query_DocsPAWS.UploadFiles uploadFilesDb = new DocsPaDB.Query_DocsPAWS.UploadFiles(); retVal = uploadFilesDb.GetUploaderVersion(); return(retVal); }
/// <summary> /// Metodo per l'estrazione degli eventi di notifica /// </summary> /// <param name="infoUtente"></param> /// <returns></returns> public static List <FileInUpload> GetListFilesUploaded(DocsPaVO.utente.InfoUtente infoUtente) { List <FileInUpload> listFileInUpload = new List <FileInUpload>(); try { DocsPaDB.Query_DocsPAWS.UploadFiles uploadFiles = new DocsPaDB.Query_DocsPAWS.UploadFiles(); listFileInUpload = uploadFiles.GetListFilesUploaded(infoUtente); } catch (Exception e) { logger.Debug("Errore in BusinessLogic.UploadFiles.UploadFilesManager - metodo: GetEventNotification ", e); } return(listFileInUpload); }
public static bool PutFileFromUploadManager(ref DocsPaVO.documento.FileRequest fileRequest, DocsPaVO.documento.FileDocumento fileDocument, string fileName, string fileDescription, DocsPaVO.utente.InfoUtente infoUtente) { bool retVal = false; fileRequest.path = fileDocument.fullName; fileRequest.fileName = fileDocument.name; try { fileDocument.content = System.IO.File.ReadAllBytes(fileDocument.fullName); } catch (Exception ex) { logger.Debug("Errore in BusinessLogic.UploadFiles.UploadFilesManager - metodo: PutFileFromUploadManager ", ex); return(false); } string msgError = string.Empty; if (BusinessLogic.Documenti.FileManager.putFile(ref fileRequest, fileDocument, infoUtente, true, out msgError)) { DocsPaDB.Query_DocsPAWS.UploadFiles uploadFiles = new DocsPaDB.Query_DocsPAWS.UploadFiles(); //if (uploadFiles.DeleteFileInUpload(hashFile, infoUtente)) if (uploadFiles.DeleteFileInUpload(fileName, fileDescription, infoUtente)) { System.IO.File.Delete(fileDocument.fullName); } retVal = true; } else { logger.Debug("Errore in BusinessLogic.UploadFiles.UploadFilesManager - metodo: PutFileFromUploadManager ", new Exception(msgError)); retVal = false; } return(retVal); }
/// <summary> /// Inizio o riprendo l'upload di un file per l'utente loggato /// </summary> /// <param name="request"></param> /// <param name="infoUtente"></param> /// <returns>Response</returns> public static Services.FilesUploader.UploadFile.UploadFileResponse UploadFile(Services.FilesUploader.UploadFile.UploadFileRequest request, DocsPaVO.utente.InfoUtente infoUtente) { Services.FilesUploader.UploadFile.UploadFileResponse response = new Services.FilesUploader.UploadFile.UploadFileResponse(); DocsPaDB.Query_DocsPAWS.UploadFiles uploadFilesDb = new DocsPaDB.Query_DocsPAWS.UploadFiles(); Domain.FileInUpload fileInUpClient = request.FileInUp; try { if (fileInUpClient != null) { //DocsPaVO.UploadFiles.FileInUpload fileInUpServer = uploadFilesDb.GetFileInUpload(fileInUpClient.fileHash, infoUtente); DocsPaVO.UploadFiles.FileInUpload fileInUpServer = uploadFilesDb.GetFileInUpload(fileInUpClient.strIdentity, infoUtente); if (fileInUpServer != null && fileInUpClient.chunkNumber > -1) { if (fileInUpServer.ChunkNumber >= fileInUpClient.chunkNumber) { throw new PisException("FILE_ALREDY_EXIST"); } if (string.IsNullOrEmpty(fileInUpServer.RepositoryPath)) { string pathOnServer = (System.Configuration.ConfigurationManager.AppSettings["UPLOAD_BIGFILE_REPOSITORY"] != null && !string.IsNullOrEmpty(System.Configuration.ConfigurationManager.AppSettings["UPLOAD_BIGFILE_REPOSITORY"].ToString()) ? System.Configuration.ConfigurationManager.AppSettings["UPLOAD_BIGFILE_REPOSITORY"] : string.Empty); if (!string.IsNullOrEmpty(pathOnServer)) { pathOnServer = pathOnServer + @"\" + request.CodeAdm + @"\" + infoUtente.idPeople; if (!string.IsNullOrEmpty(fileInUpClient.fileDescription)) { pathOnServer = pathOnServer + @"\" + fileInUpClient.fileDescription; } Directory.CreateDirectory(pathOnServer); fileInUpServer.RepositoryPath = pathOnServer; } } if (Directory.Exists(fileInUpServer.RepositoryPath)) { string pathSulServer = fileInUpServer.RepositoryPath + @"\" + fileInUpClient.fileName; FileStream file = new FileStream(pathSulServer, FileMode.Create); file.Write(fileInUpClient.fileContent, 0, fileInUpClient.fileContent.Length); file.Flush(); file.Close(); fileInUpServer.ChunkNumber = fileInUpClient.chunkNumber; fileInUpServer.TotalChunkNumber = fileInUpClient.totalChunkNumber; fileInUpServer.FileName = fileInUpClient.fileName; fileInUpServer.FileDescription = fileInUpClient.fileDescription; fileInUpServer.Order = fileInUpClient.order; fileInUpServer.IdRuolo = fileInUpClient.idRuolo; if (uploadFilesDb.UpdateFileInUpload(fileInUpServer, infoUtente)) { if (fileInUpServer.ChunkNumber == fileInUpServer.TotalChunkNumber - 1) { Compression.CompressionManager compressionManager = new Compression.CompressionManager(); string[] volumesFileZip = new string[fileInUpServer.TotalChunkNumber]; string[] fileNamePart = fileInUpServer.FileName.Split('.'); string fileExt = fileNamePart[fileNamePart.Length - 1]; //string numeroFileZip = fileNamePart[fileNamePart.Length - 2]; string partialFileName = string.Empty; for (int j = 0; j < fileNamePart.Length - 2; j++) { partialFileName = partialFileName + fileNamePart[j] + "."; } for (int i = 0; i < fileInUpServer.TotalChunkNumber; i++) { volumesFileZip[i] = (partialFileName + i.ToString() + "." + fileExt); } string[] splitName; if (fileInUpServer.FileSenderPath.Contains('/')) { splitName = fileInUpServer.FileSenderPath.Split('/'); } else { splitName = fileInUpServer.FileSenderPath.Split('\\'); } string fileNameUncompressed = splitName[splitName.Length - 1]; if (compressionManager.DecompressArchiveVolumes(fileInUpServer.RepositoryPath, fileNameUncompressed, volumesFileZip, true)) { fileInUpServer.ChunkNumber = fileInUpServer.TotalChunkNumber; fileInUpServer.FileName = fileNameUncompressed; uploadFilesDb.UpdateFileInUpload(fileInUpServer, infoUtente); response.Success = true; } } else { response.Success = true; } } } else { throw new PisException("SERVER_PATH_NOT_FOUND"); } } else { fileInUpServer = new DocsPaVO.UploadFiles.FileInUpload(); string pathOnServer = (System.Configuration.ConfigurationManager.AppSettings["UPLOAD_BIGFILE_REPOSITORY"] != null && !string.IsNullOrEmpty(System.Configuration.ConfigurationManager.AppSettings["UPLOAD_BIGFILE_REPOSITORY"].ToString()) ? System.Configuration.ConfigurationManager.AppSettings["UPLOAD_BIGFILE_REPOSITORY"] : string.Empty); if (!string.IsNullOrEmpty(pathOnServer)) { if (string.IsNullOrEmpty(fileInUpClient.strIdentity)) { fileInUpClient.strIdentity = (fileInUpClient.fileDescription.ToUpper().TrimStart().TrimEnd() + "#" + fileInUpClient.fileName.ToUpper().TrimStart().TrimEnd()); } pathOnServer = pathOnServer + @"\" + request.CodeAdm + @"\" + infoUtente.idPeople; Directory.CreateDirectory(pathOnServer); string pathFileOnServer = pathOnServer + @"\" + fileInUpClient.fileName; FileStream file = new FileStream(pathFileOnServer, FileMode.Create); file.Write(fileInUpClient.fileContent, 0, fileInUpClient.fileContent.Length); file.Flush(); file.Close(); fileInUpServer.ChunkNumber = 0; fileInUpServer.FileHash = fileInUpClient.fileHash; fileInUpServer.FileName = fileInUpClient.fileName; fileInUpServer.FileDescription = fileInUpClient.fileDescription; fileInUpServer.FileSenderPath = fileInUpClient.fileSenderPath; fileInUpServer.FileSize = fileInUpClient.fileSize; fileInUpServer.MachineName = fileInUpClient.machineName; fileInUpServer.TotalChunkNumber = fileInUpClient.totalChunkNumber; fileInUpServer.RepositoryPath = pathOnServer; fileInUpServer.Order = fileInUpClient.order; fileInUpServer.IdRuolo = fileInUpClient.idRuolo; fileInUpServer.StrIdentity = fileInUpClient.strIdentity; if (uploadFilesDb.InsertFileInUpload(fileInUpServer, infoUtente)) { response.StrIdentity = fileInUpServer.StrIdentity; response.Success = true; } } else { throw new PisException("SERVER_CONFIGURATION_ERROR"); } } } else { throw new PisException("PARAMETER_FILEINUP_MISSING"); } } catch (PisException pisEx) { response.Error = new Services.ResponseError { Code = pisEx.ErrorCode, Description = pisEx.Description }; response.Success = false; } return(response); }
/// <summary> /// Nuovo file nella lista degli upload /// </summary> /// <param name="request"></param> /// <param name="infoUtente"></param> /// <returns>Response</returns> public static Services.FilesUploader.UploadFile.UploadFileResponse AddNewFile(Services.FilesUploader.UploadFile.UploadFileRequest request, DocsPaVO.utente.InfoUtente infoUtente) { Services.FilesUploader.UploadFile.UploadFileResponse response = new Services.FilesUploader.UploadFile.UploadFileResponse(); DocsPaDB.Query_DocsPAWS.UploadFiles uploadFilesDb = new DocsPaDB.Query_DocsPAWS.UploadFiles(); Domain.FileInUpload fileInUpClient = request.FileInUp; try { if (fileInUpClient != null) { //DocsPaVO.UploadFiles.FileInUpload fileInUpServer = uploadFilesDb.GetFileInUpload(fileInUpClient.fileHash, infoUtente); if (string.IsNullOrEmpty(fileInUpClient.strIdentity)) { fileInUpClient.strIdentity = (fileInUpClient.fileDescription.ToUpper().TrimStart().TrimEnd() + "#" + fileInUpClient.fileName.ToUpper().TrimStart().TrimEnd()); } DocsPaVO.UploadFiles.FileInUpload fileInUpServer = uploadFilesDb.GetFileInUpload(fileInUpClient.strIdentity, infoUtente); if (fileInUpServer != null && !string.IsNullOrEmpty(fileInUpServer.StrIdentity)) { throw new PisException("FILE_ALREDY_EXIST"); } fileInUpServer = new DocsPaVO.UploadFiles.FileInUpload(); fileInUpServer.ChunkNumber = -1; fileInUpServer.FileHash = fileInUpClient.fileHash; fileInUpServer.FileName = fileInUpClient.fileName; fileInUpServer.FileDescription = fileInUpClient.fileDescription; fileInUpServer.FileSenderPath = fileInUpClient.fileSenderPath; fileInUpServer.FileSize = fileInUpClient.fileSize; fileInUpServer.MachineName = fileInUpClient.machineName; fileInUpServer.TotalChunkNumber = 0; fileInUpServer.RepositoryPath = string.Empty; fileInUpServer.Order = fileInUpClient.order; fileInUpServer.IdRuolo = fileInUpClient.idRuolo; fileInUpServer.StrIdentity = fileInUpClient.strIdentity; if (uploadFilesDb.InsertFileInUpload(fileInUpServer, infoUtente)) { response.StrIdentity = fileInUpServer.StrIdentity; response.Success = true; } } else { throw new PisException("PARAMETER_FILEINUP_MISSING"); } } catch (PisException pisEx) { response.Error = new Services.ResponseError { Code = pisEx.ErrorCode, Description = pisEx.Description }; response.Success = false; } return(response); }
/// <summary> /// Cancellazione di tutte le parti relative al file in upload /// </summary> /// <param name="request"></param> /// <param name="infoUtente"></param> /// <returns>Response</returns> public static Services.FilesUploader.UploadFile.UploadFileResponse DeleteFileInUpload(Services.FilesUploader.UploadFile.UploadFileRequest request, DocsPaVO.utente.InfoUtente infoUtente) { Services.FilesUploader.UploadFile.UploadFileResponse response = new Services.FilesUploader.UploadFile.UploadFileResponse(); DocsPaDB.Query_DocsPAWS.UploadFiles uploadFilesDb = new DocsPaDB.Query_DocsPAWS.UploadFiles(); Domain.FileInUpload fileInUpClient = request.FileInUp; try { if (fileInUpClient != null) { //DocsPaVO.UploadFiles.FileInUpload fileInUpServer = uploadFilesDb.GetFileInUpload(fileInUpClient.fileHash, infoUtente); DocsPaVO.UploadFiles.FileInUpload fileInUpServer = uploadFilesDb.GetFileInUpload(fileInUpClient.strIdentity, infoUtente); if (fileInUpServer != null) { string pathSulServer = string.Empty; if (fileInUpServer != null && !string.IsNullOrEmpty(fileInUpServer.StrIdentity)) { pathSulServer = fileInUpServer.RepositoryPath; // +@"\" + fileInUpClient.fileName; } else { pathSulServer = (System.Configuration.ConfigurationManager.AppSettings["UPLOAD_BIGFILE_REPOSITORY"] != null && !string.IsNullOrEmpty(System.Configuration.ConfigurationManager.AppSettings["UPLOAD_BIGFILE_REPOSITORY"].ToString()) ? System.Configuration.ConfigurationManager.AppSettings["UPLOAD_BIGFILE_REPOSITORY"] : string.Empty); } if (!string.IsNullOrEmpty(pathSulServer) && Directory.Exists(fileInUpServer.RepositoryPath)) { string[] fileNamePart = fileInUpServer.FileName.Split('.'); string fileExt = fileNamePart[fileNamePart.Length - 1]; string partialFileName = fileInUpServer.FileName.Substring(0, fileInUpServer.FileName.Length - (fileExt.Length + 2)); for (int i = 0; i < fileInUpServer.TotalChunkNumber; i++) { string completeFileName = @"\" + partialFileName + i.ToString() + "." + fileExt; File.Delete(pathSulServer + completeFileName); } //uploadFilesDb.DeleteFileInUpload(fileInUpClient.fileHash, infoUtente); uploadFilesDb.DeleteFileInUpload(fileInUpClient.fileName, fileInUpClient.fileDescription, infoUtente); response.Success = true; } else { uploadFilesDb.DeleteFileInUpload(fileInUpClient.fileName, fileInUpClient.fileDescription, infoUtente); } } else { throw new PisException("PARAMETER_FILEINUP_MISSING"); } } else { throw new PisException("FILE_NOT_EXIST"); } } catch (PisException pisEx) { response.Error = new Services.ResponseError { Code = pisEx.ErrorCode, Description = pisEx.Description }; response.Success = false; } return(response); }