public IActionResult Add([FromForm] ContractFileViewModel fileModel) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } fileModel.CreatedOn = CurrentDateTimeHelper.GetCurrentDateTime(); fileModel.UpdatedOn = CurrentDateTimeHelper.GetCurrentDateTime(); fileModel.CreatedBy = UserHelper.CurrentUserGuid(HttpContext); fileModel.UpdatedBy = UserHelper.CurrentUserGuid(HttpContext); fileModel.IsActive = true; fileModel.IsDeleted = false; fileModel.IsCsv = true; // gets the contractnumber to save the file in the folder. var ContractNumber = _contractRefactorService.GetContractNumberById(fileModel.ResourceGuid); if (fileModel.FileToUpload != null || fileModel.FileToUpload.Length != 0) { //checks whether the file extension is the correct one and the validates the fields if the file is Csv. var isfileValid = _fileService.UploadFileTypeCheck(fileModel.FileToUpload); // var filename = _fileService.FilePostWithCount($@"{documentRoot}/{ContractNumber}/WorkBreakdownStructure/", fileModel.FileToUpload); if (!isfileValid) { fileModel.IsCsv = false; } else { //Helpers.CsvValidationHelper.ChecksValidHeaderAndReadTheFile(filename, UploadMethodName.WorkBreakDownStructure); } //fileModel.UploadFileName = filename; } //soft delete the previous uploaded files _contractRefactorService.DeleteContractFileByContractGuid(fileModel.ResourceGuid, fileModel.keys); var fileEntity = _mapper.Map <ContractResourceFile>(fileModel); _contractRefactorService.InsertContractFile(fileEntity); return(Ok(new { status = ResponseStatus.success.ToString(), message = "Successfully Added !!" })); } catch (Exception ex) { ModelState.AddModelError(ex.ToString(), ex.Message); return(BadRequest(ModelState)); } }
//Import attachment file private void ImportContractAttachment(List <string> fileList, string resurceType, Guid contractGuid, Guid resourceGuid, bool isDelete) { var destinationPath = string.Empty; foreach (var item in fileList) { var folder = _documentManagementService.GetFolderByKey("Contract", contractGuid, resurceType); var contractResourceFile = _contractResourceFileService.GetFilePathByResourceIdAndKeys(resurceType, contractGuid); if (contractResourceFile != null) { destinationPath = rootPath + contractResourceFile.FilePath + "/"; var fileSize = new System.IO.FileInfo(item).Length.ToString(); var outPutPath = _importFileService.MoveAttachment(item, destinationPath, isDelete); if (!string.IsNullOrWhiteSpace(outPutPath)) { var isCSV = Path.GetExtension(item) == ".csv" ? true : false; ContractResourceFile contractFile = new ContractResourceFile(); contractFile.ContractResourceFileGuid = Guid.NewGuid(); contractFile.ResourceGuid = contractGuid; contractFile.CreatedBy = loggedUser; contractFile.CreatedOn = DateTime.UtcNow; contractFile.Keys = resurceType; contractFile.IsActive = true; contractFile.IsCsv = isCSV; contractFile.IsDeleted = false; contractFile.UpdatedBy = loggedUser; contractFile.UpdatedOn = DateTime.Now; contractFile.ContentResourceGuid = resourceGuid; contractFile.IsFile = true; contractFile.ResourceType = "Contract"; contractFile.UploadFileName = Path.GetFileName(item); contractFile.FilePath = outPutPath.Replace(rootPath, ""); contractFile.FileSize = fileSize; if (folder != null) { contractFile.ParentId = contractResourceFile.ContractResourceFileGuid; } _contractsService.InsertContractFile(contractFile); } } } }
public IActionResult UploadSaveFileInFolderTreeNode(Guid resourceId, string resourceKey, string pathPrefixName, bool isTreeTemplate, string[] fileInfo) { try { //Avoiding Kendo Uploader's default call if (resourceId == Guid.Empty || fileInfo.Length == 0) { return(Ok(true)); } var fileInfoObj1 = fileInfo[0].Split(','); IDocumentEntity documentEntity = new DocumentEntity(); if (isTreeTemplate) { documentEntity = GetTemplateFolderTree(new Guid(fileInfoObj1[5]), "Contract", resourceId, pathPrefixName); } else { documentEntity = _documentManagementService.GetFileOrFolder(new Guid(fileInfoObj1[5])); } //If new file/s have been uploaded if (Request.Form.Files.Count > 0) { var files = Request.Form.Files; //foreach (var file in files) for (int i = 0; i < files.Count; i++) { var fileInfoObj = fileInfo[i].Split(','); //save file in folder.. var fullPath = files[i].FileName.Split("\\"); var originalFileName = fullPath[fullPath.Length - 1]; //var fullPhysicalFilePath = Path.Combine(documentRoot, newTreeStructure.FilePath); var fullPhysicalFilePath = string.Concat(documentRoot, documentEntity.FilePath); var uniqueFileName = _fileService.SaveFile(fullPhysicalFilePath, files[i]); var relativeFilePath = Path.Combine(documentEntity.FilePath, uniqueFileName); //save file info in database.. ContractFileViewModel contractFileViewModel = new ContractFileViewModel(); contractFileViewModel.ContractResourceFileGuid = new Guid(fileInfoObj[0]); contractFileViewModel.CreatedOn = CurrentDateTimeHelper.GetCurrentDateTime(); contractFileViewModel.UpdatedOn = CurrentDateTimeHelper.GetCurrentDateTime(); contractFileViewModel.CreatedBy = UserHelper.CurrentUserGuid(HttpContext); contractFileViewModel.UpdatedBy = UserHelper.CurrentUserGuid(HttpContext); contractFileViewModel.Description = WebUtility.UrlDecode(fileInfoObj[1]); contractFileViewModel.MimeType = files[i].ContentType; contractFileViewModel.ResourceGuid = resourceId; contractFileViewModel.keys = resourceKey; contractFileViewModel.UploadFileName = uniqueFileName; contractFileViewModel.UploadUniqueFileName = uniqueFileName; contractFileViewModel.IsActive = true; contractFileViewModel.IsDeleted = false; contractFileViewModel.FilePath = relativeFilePath; contractFileViewModel.FileSize = fileInfoObj[4]; contractFileViewModel.ParentId = documentEntity.ContractResourceFileGuid; contractFileViewModel.Isfile = true; var fileEntity = _mapper.Map <ContractResourceFile>(contractFileViewModel); _contractRefactorService.InsertContractFile(fileEntity); //auditlog.. AuditLogForUploadDownload(fileEntity, CrudTypeForAdditionalLogMessage.Uploaded.ToString()); } } //If existing file/s description have been changed if (fileInfo.Length > Request.Form.Files.Count) { for (int i = Request.Form.Files.Count; i <= fileInfo.Length - 1; i++) { var fileInfoObj = fileInfo[i].Split(','); var fileById = _contractRefactorService.GetFilesByContractFileGuid(new Guid(fileInfoObj[0])); if (fileById != null) { fileById.Description = WebUtility.UrlDecode(fileInfoObj[1]); _contractRefactorService.UpdateFile(fileById); } } } return(Ok(true)); } catch (Exception ex) { return(BadRequestFormatter.BadRequest(this, ex)); } }