public async Task <IActionResult> Download(string file, BusinessParam bp, bool thumbnail) { var methodName = $".{new StackTrace().GetFrame(1).GetMethod().Name}"; try { var lastPoint = file.LastIndexOf(".", StringComparison.Ordinal); var link = file.Substring(0, lastPoint); var jsonFileDto = GetJsonDto(Encryption.Decryption(FileRepositoryFacade.ReplaceValidCharacter(link))); var fileDto = GetFileFromDataBaseWithId(jsonFileDto.EntityId, null); var path = bp.Environment.WebRootPath + fileDto.Path; if (thumbnail) { var lastIndexOf = path.LastIndexOf(".", StringComparison.Ordinal); var substring = path.Substring(0, lastIndexOf); substring += "_thumb" + path.Substring(lastIndexOf); path = substring; } var stream = new FileStream(path, FileMode.Open); return(new FileStreamResult(stream, FileRepositoryFacade.MimType[fileDto.Extension]) { FileDownloadName = fileDto.Name + "." + fileDto.Extension }); } catch (Exception e) { ExceptionUtil.ExceptionHandler(e, ClassDetails[0].Facade + methodName, null); return(null); } }
private string GetPathOfFile(JsonFileDto dto, BusinessParam bp) { var methodName = $".{new StackTrace().GetFrame(1).GetMethod().Name}"; try { return ($"/service/file/download/{FileRepositoryFacade.ReplaceInValidCharacter(Encryption.Encrypt(GetJsonData(dto)))}.{dto.Extension}"); } catch (Exception ex) { ExceptionUtil.ExceptionHandler(ex, ClassDetails[0].Facade + methodName, bp.UserInfo); return(""); } }