public static string GetTruncatedFilename(this FileManagerClient _fileManagerClient, ILogger _logger, string entityName, string folderName, string fileName) { Contract.Requires(_fileManagerClient != null); var truncated = fileName; // Do not save full file names to the logs (for privacy) var logFileName = WordSanitizer.Sanitize(fileName); var logFolderName = WordSanitizer.Sanitize(folderName); var errorMessage = $"ERROR in getting truncated filename {logFileName} for folder {logFolderName}"; try { // call the web service var request = new TruncatedFilenameRequest { EntityName = entityName, FolderName = folderName, FileName = fileName }; // Get the (potentially) truncated filename from SharePoint var result = _fileManagerClient.GetTruncatedFilename(request); if (result.ResultStatus == ResultStatus.Success) { truncated = result.FileName; } else { _logger.LogError(errorMessage); } } catch (Exception e) { _logger.LogError(e, errorMessage); } return(truncated); }
public override Task <TruncatedFilenameReply> GetTruncatedFilename(TruncatedFilenameRequest request, ServerCallContext context) { var result = new TruncatedFilenameReply(); string logFileName = WordSanitizer.Sanitize(request.FileName); string logFolderName = WordSanitizer.Sanitize(request.FolderName); try { var _sharePointFileManager = new SharePointFileManager(_configuration); // Ask SharePoint whether this filename would be truncated upon upload var listTitle = GetDocumentListTitle(request.EntityName); var maybeTruncated = _sharePointFileManager.GetTruncatedFileName(request.FileName, listTitle, request.FolderName); result.FileName = maybeTruncated; result.ResultStatus = ResultStatus.Success; } catch (SharePointRestException ex) { result.ResultStatus = ResultStatus.Fail; result.ErrorDetail = $"ERROR in getting truncated filename {logFileName} for folder {logFolderName}"; Log.Error(ex, result.ErrorDetail); } return(Task.FromResult(result)); }