コード例 #1
0
        /// <summary>
        /// 存取分享連結流程
        ///
        /// 包含: 產生分享連結API、列出分享連結API、透過分享連結存取指定DriveItem API
        /// </summary>
        /// <returns></returns>
        public async Task <bool> CallAccessingShareLinkAsync()
        {
            try
            {
                DriveItem item = await FileApi.CreateFolderAsync(graphClient);

                IDriveItemChildrenCollectionPage items = await FileApi.ListDriveItemAsync(graphClient);

                bool isCreate = items.CurrentPage.Any(driveItem => driveItem.Id == item.Id);
                Trace.Assert(isCreate);

                Permission link = await CreateShareLinkAsync(graphClient, item.Id);

                var links = await ListShareLinkAsync(graphClient, item.Id);

                isCreate = links.CurrentPage.Any(linkItem => linkItem.Id == link.Id);
                Trace.Assert(isCreate);

                SharedDriveItem sharedItem = await AccessingSharedLinkAsync(graphClient, link.Link.WebUrl);

                Trace.Assert(sharedItem.Name == item.Name);

                await FileApi.DeleteDriveItemAsync(graphClient, item.Id);

                return(true);
            }
            catch (Exception ex)
            {
                logger.LogError(ex.Message);
                return(false);
            }
        }
コード例 #2
0
        /// <summary>
        /// Update entity in shares
        /// <param name="body"></param>
        /// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
        /// </summary>
        public RequestInformation CreatePatchRequestInformation(SharedDriveItem body, Action <SharedDriveItemItemRequestBuilderPatchRequestConfiguration> requestConfiguration = default)
        {
            _ = body ?? throw new ArgumentNullException(nameof(body));
            var requestInfo = new RequestInformation {
                HttpMethod     = Method.PATCH,
                UrlTemplate    = UrlTemplate,
                PathParameters = PathParameters,
            };

            requestInfo.SetContentFromParsable(RequestAdapter, "application/json", body);
            if (requestConfiguration != null)
            {
                var requestConfig = new SharedDriveItemItemRequestBuilderPatchRequestConfiguration();
                requestConfiguration.Invoke(requestConfig);
                requestInfo.AddRequestOptions(requestConfig.Options);
                requestInfo.AddHeaders(requestConfig.Headers);
            }
            return(requestInfo);
        }