public async Task <ActionstepDocument> Handle(ActionstepSavePDFCommand message, CancellationToken token) { if (message is null) { throw new ArgumentNullException(nameof(message)); } ValidationResult result = _validator.Validate(message); if (!result.IsValid) { throw new ValidationException("Invalid input.", result.Errors); } TokenSetQuery tokenSetQuery = new TokenSetQuery(message.AuthenticatedUser?.Id, message.OrgKey); var actionResponse = await _actionstepService.Handle <GetActionResponse>(new GetActionRequest(tokenSetQuery, message.MatterId)); string fileName = $"{message.MatterId}_Settlement Statement_{DateTime.UtcNow.ToString("_yyyy-MM-dd hh-mm", CultureInfo.InvariantCulture)}.pdf"; UploadFileResponse file = await _actionstepService.UploadFile(tokenSetQuery, fileName, message.FilePath); #region Check Documents Folder ActionFolder actionFolder = new ActionFolder(actionResponse.Action.Id); GetActionFolderRequest folderRequest = new GetActionFolderRequest(tokenSetQuery, actionFolder); ListActionFolderResponse folderResponse = await _actionstepService.Handle <ListActionFolderResponse>(folderRequest); var parentFolderId = folderResponse.ActionFolders.Where(af => af.Name == "Documents").Select(af => af.Id).FirstOrDefault(); #endregion ActionDocument document = new ActionDocument(actionResponse.Action.Id, fileName, file, parentFolderId); SaveActionDocumentRequest saveRequest = new SaveActionDocumentRequest(tokenSetQuery, document); var saveResponse = await _actionstepService.Handle <SaveActionDocumentResponse>(saveRequest); var fileUrl = new Uri(saveResponse.ActionDocument.SharepointUrl); string documentUrl = $"https://{fileUrl.Host}/mym/asfw/workflow/documents/views/action_id/{actionResponse.Action.Id}#mode=browse&view=list&folder={parentFolderId}&drive=DL"; return(new ActionstepDocument(fileUrl, fileName, new Uri(documentUrl))); }
public async Task <FTAttachment> Handle(SavePolicyPDFToActionstepCommand request, CancellationToken cancellationToken) { if (request is null) { throw new ArgumentNullException(nameof(request)); } // Get Actionstep matter info var tokenSetQuery = new TokenSetQuery(request.AuthenticatedUser?.Id, request.ActionstepOrg); var actionResponse = await _actionstepService.Handle <GetActionResponse>(new GetActionRequest(tokenSetQuery, request.MatterId)); UploadFileResponse file = await _actionstepService.UploadFile(tokenSetQuery, request.FileName, request.FilePath); #region Check Documents Folder ActionFolder actionFolder = new ActionFolder(actionResponse.Action.Id); GetActionFolderRequest folderRequest = new GetActionFolderRequest(tokenSetQuery, actionFolder); ListActionFolderResponse folderResponse = await _actionstepService.Handle <ListActionFolderResponse>(folderRequest); var parentFolderId = folderResponse.ActionFolders.Where(af => af.Name == "Documents").Select(af => af.Id).FirstOrDefault(); #endregion ActionDocument document = new ActionDocument(actionResponse.Action.Id, request.FileName, file, parentFolderId); SaveActionDocumentRequest saveRequest = new SaveActionDocumentRequest(tokenSetQuery, document); var saveResponse = await _actionstepService.Handle <SaveActionDocumentResponse>(saveRequest); var fileUrl = new Uri(saveResponse.ActionDocument.SharepointUrl); string documentUrl = $"https://{fileUrl.Host}/mym/asfw/workflow/documents/views/action_id/{actionResponse.Action.Id}#mode=browse&view=list&folder={parentFolderId}&drive=DL"; return(new FTAttachment() { FileName = request.FileName, FileUrl = documentUrl }); }