public override Task <CreateFolderReply> CreateFolder(CreateFolderRequest request, ServerCallContext context) { var result = new CreateFolderReply(); var logFolder = WordSanitizer.Sanitize(request.FolderName); var listTitle = GetDocumentListTitle(request.EntityName); var _sharePointFileManager = new SharePointFileManager(_configuration); CreateDocumentLibraryIfMissing(listTitle, GetDocumentTemplateUrlPart(request.EntityName)); var folderExists = false; try { var folder = _sharePointFileManager.GetFolder(listTitle, request.FolderName).GetAwaiter().GetResult(); if (folder != null) { folderExists = true; } } catch (SharePointRestException ex) { Log.Error(ex, $"SharePointRestException creating sharepoint folder (status code: {ex.Response.StatusCode})"); folderExists = false; } catch (Exception e) { Log.Error(e, "Generic Exception creating sharepoint folder"); folderExists = false; } if (folderExists) { result.ResultStatus = ResultStatus.Success; } else { try { _sharePointFileManager.CreateFolder(GetDocumentListTitle(request.EntityName), request.FolderName) .GetAwaiter().GetResult(); var folder = _sharePointFileManager.GetFolder(listTitle, request.FolderName).GetAwaiter() .GetResult(); if (folder != null) { result.ResultStatus = ResultStatus.Success; } } catch (SharePointRestException ex) { result.ResultStatus = ResultStatus.Fail; result.ErrorDetail = $"ERROR in creating folder {logFolder}"; Log.Error(ex, result.ErrorDetail); } }
public override Task <CreateFolderReply> CreateFolder(CreateFolderRequest request, ServerCallContext context) { var result = new CreateFolderReply(); string listTitle = GetDocumentListTitle(request.EntityName); SharePointFileManager _sharePointFileManager = new SharePointFileManager(_configuration); CreateDocumentLibraryIfMissing(listTitle, GetDocumentTemplateUrlPart(request.EntityName)); bool folderExists = false; try { var folder = _sharePointFileManager.GetFolder(listTitle, request.FolderName).GetAwaiter().GetResult(); if (folder != null) { folderExists = true; } } catch (Exception) { folderExists = false; } if (folderExists) { result.ResultStatus = ResultStatus.Success; } else { try { _sharePointFileManager.CreateFolder(GetDocumentListTitle(request.EntityName), request.FolderName).GetAwaiter().GetResult(); var folder = _sharePointFileManager.GetFolder(listTitle, request.FolderName).GetAwaiter().GetResult(); if (folder != null) { result.ResultStatus = ResultStatus.Success; } } catch (SharePointRestException ex) { result.ResultStatus = ResultStatus.Fail; result.ErrorDetail = $"ERROR in creating folder {request.FolderName}"; _logger.LogError(ex, result.ErrorDetail); } catch (Exception e) { result.ResultStatus = ResultStatus.Fail; result.ErrorDetail = $"ERROR in creating folder {request.FolderName}"; _logger.LogError(e, result.ErrorDetail); } } return(Task.FromResult(result)); }