forked from MDCPS/DamageAssessment_Backend
		
	changed download url format and added new endpoint for doculink isactive update
This commit is contained in:
		| @ -139,24 +139,75 @@ namespace DamageAssesment.Api.Attachments.Controllers | ||||
|         /// download an existing attachment. | ||||
|         /// </summary> | ||||
|         [HttpGet("attachments/download/{id}")] | ||||
|         public async Task<IActionResult> downloadfile1(int id) | ||||
|         public async Task<IActionResult> downloadfile(int id) | ||||
|         { | ||||
|             try | ||||
|             { | ||||
|                 var result = await this.AttachmentProvider.GetDownloadAttachmentAsync(id); | ||||
|                 if(!result.IsSuccess)  | ||||
|                 if (!result.IsSuccess) | ||||
|                     return NotFound(); | ||||
|                 byte[] fileContent = await UploadService.DownloadFile(result.Attachment.URI); | ||||
|                 if (fileContent == null || fileContent.Length == 0) | ||||
|                 string path = await UploadService.GetFile(result.Attachment.URI); | ||||
|                 if (path == null) | ||||
|                     return NotFound(); | ||||
|                 var contentType = "application/octet-stream"; | ||||
|                 return File(fileContent, contentType, result.Attachment.FileName); | ||||
|                 var contentType = GetContentType(result.Attachment.FileName); | ||||
|                 if (contentType == "application/octet-stream") | ||||
|                     return PhysicalFile(path, contentType, result.Attachment.FileName); | ||||
|                 return PhysicalFile(path, contentType, enableRangeProcessing: true);// result.Attachment.FileName); | ||||
|             } | ||||
|             catch (Exception ex) | ||||
|             { | ||||
|                 // Handle the exception here or log it | ||||
|                 return StatusCode(500, "An error occurred: " + ex.Message); | ||||
|             } | ||||
|             //try | ||||
|             //{ | ||||
|             //    var result = await this.AttachmentProvider.GetDownloadAttachmentAsync(id); | ||||
|             //    if(!result.IsSuccess)  | ||||
|             //        return NotFound(); | ||||
|             //    byte[] fileContent = await UploadService.DownloadFile(result.Attachment.URI); | ||||
|             //    if (fileContent == null || fileContent.Length == 0) | ||||
|             //        return NotFound(); | ||||
|             //    var contentType = "application/octet-stream"; | ||||
|             //    return File(fileContent, contentType, result.Attachment.FileName); | ||||
|             //} | ||||
|             //catch (Exception ex) | ||||
|             //{ | ||||
|             //    // Handle the exception here or log it | ||||
|             //    return StatusCode(500, "An error occurred: " + ex.Message); | ||||
|             //} | ||||
|         } | ||||
|         private string GetContentType(string fileName) | ||||
|         { | ||||
|             // You can add more content types based on the file extensions | ||||
|             switch (Path.GetExtension(fileName).ToLower()) | ||||
|             { | ||||
|                 //case ".txt": | ||||
|                 //    return "text/plain"; | ||||
|                 case ".jpg": | ||||
|                 case ".jpeg": | ||||
|                     return "image/jpeg"; | ||||
|                 case ".png": | ||||
|                     return "image/png"; | ||||
|                 case ".gif": | ||||
|                     return "image/gif"; | ||||
|                 case ".bmp": | ||||
|                     return "image/bmp"; | ||||
|                 case ".webp": | ||||
|                     return "image/webp"; | ||||
|                 case ".csv": | ||||
|                     return "text/csv"; | ||||
|                 case ".pdf": | ||||
|                     return "application/pdf"; | ||||
|                 case ".docx": | ||||
|                 case ".doc": | ||||
|                     return "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; | ||||
|                 case ".xlsx": | ||||
|                 case ".xls": | ||||
|                     return "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; | ||||
|                 // Add more cases as needed | ||||
|                 default: | ||||
|                     return "application/octet-stream"; | ||||
|             } | ||||
|         } | ||||
|         /// <summary> | ||||
|         /// Delete an existing attachment. | ||||
|  | ||||
| @ -8,6 +8,7 @@ namespace DamageAssesment.Api.Attachments.Interfaces | ||||
|         List<Models.Attachment> UploadAttachment(int responseId, int counter, List<AnswerInfo> answers); | ||||
|         public List<Models.Attachment> UpdateAttachments(int responseId, List<AnswerInfo> answers, IEnumerable<Models.Attachment> attachments); | ||||
|         Task<byte[]> DownloadFile(string path); | ||||
|         Task<string> GetFile(string path); | ||||
|         void Deletefile(string path); | ||||
|         void Movefile(string path); | ||||
|     } | ||||
|  | ||||
| @ -24,6 +24,24 @@ namespace DamageAssesment.Api.Attachments.Providers | ||||
|             uploadpath = configuration.GetValue<string>("Fileupload:folderpath"); | ||||
|             Deletepath = configuration.GetValue<string>("Fileupload:Deletepath"); | ||||
|         } | ||||
|         public async Task<string> GetFile(string path) | ||||
|         { | ||||
|             try | ||||
|             { | ||||
|                 if (System.IO.File.Exists(path)) | ||||
|                 { | ||||
|                     return path; | ||||
|                 } | ||||
|  | ||||
|                 return null; // File not found | ||||
|             } | ||||
|             catch (Exception ex) | ||||
|             { | ||||
|                 // Handle or log the exception as needed | ||||
|                 throw; | ||||
|             } | ||||
|  | ||||
|         } | ||||
|         public async Task<byte[]> DownloadFile(string path) | ||||
|         { | ||||
|             try | ||||
|  | ||||
		Reference in New Issue
	
	Block a user