Ejemplo n.º 1
0
        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));
        }