/// <summary> /// Invio delle parti di file in upload /// </summary> /// <param name="request"></param> /// <returns>Response </returns> public Services.FilesUploader.UploadFile.UploadFileResponse DeleteFileInUpload(Services.FilesUploader.UploadFile.UploadFileRequest request) { logger.Info("BEGIN DeleteFileInUpload"); Request newRequest = new Request(); newRequest.UserName = request.UserName; newRequest.AuthenticationToken = request.AuthenticationToken; newRequest.CodeAdm = request.CodeAdm; DocsPaVO.utente.InfoUtente infoUtente = Utils.CheckAuthentication(newRequest, ""); Services.FilesUploader.UploadFile.UploadFileResponse response = Manager.UploadFileManager.DeleteFileInUpload(request, infoUtente); //DocsPaVO.Logger.CodAzione.Esito esito = (response != null && response.Success ? DocsPaVO.Logger.CodAzione.Esito.OK : DocsPaVO.Logger.CodAzione.Esito.KO); //BusinessLogic.UserLog.UserLog.WriteLog(infoUtente, "ADDELEMINLF", request.IdPasso, "Creazione nuovo elemento in libro firma per il passo. " + request.IdPasso + " in modalità " + request.Modalita, esito); logger.Info("END DeleteFileInUpload"); Utils.CheckFaultException(response); response.IsSuccess = response.Success; return(response); }
/// <summary> /// Aggiunge nuovo file dalla lista degli upload /// </summary> /// <param name="request"></param> /// <returns>Response </returns> public Services.FilesUploader.UploadFile.UploadFileResponse AddNewFile(Services.FilesUploader.UploadFile.UploadFileRequest request) { logger.Info("BEGIN AddNewFile"); Request newRequest = new Request(); newRequest.UserName = request.UserName; newRequest.AuthenticationToken = request.AuthenticationToken; newRequest.CodeAdm = request.CodeAdm; DocsPaVO.utente.InfoUtente infoUtente = Utils.CheckAuthentication(newRequest, ""); Services.FilesUploader.UploadFile.UploadFileResponse response = Manager.UploadFileManager.AddNewFile(request, infoUtente); logger.Info("END AddNewFile"); Utils.CheckFaultException(response); response.IsSuccess = response.Success; return(response); }
/// <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); }