/// <summary> /// Update the navigation property hostedContents in users /// <param name="body"></param> /// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param> /// </summary> public RequestInformation CreatePatchRequestInformation(ChatMessageHostedContent body, Action <ChatMessageHostedContentItemRequestBuilderPatchRequestConfiguration> 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 ChatMessageHostedContentItemRequestBuilderPatchRequestConfiguration(); requestConfiguration.Invoke(requestConfig); requestInfo.AddRequestOptions(requestConfig.Options); requestInfo.AddHeaders(requestConfig.Headers); } return(requestInfo); }
public async Task SaveHostedContentBlob(ChatMessage message, ChatMessageHostedContent hostedContent, IChatMessageHostedContentsCollectionRequestBuilder detailRequestBuilder) { var messageHostedcontentRequest = detailRequestBuilder[hostedContent.Id].Content.Request(); System.IO.Stream messageHostedcontentValue = null; for (int i = 1; i <= MgGraphRequester.MaxRetry; i++) { try { _Logger.LogTrace($"GraphURI({i}): {messageHostedcontentRequest.RequestUrl}"); messageHostedcontentValue = await messageHostedcontentRequest.GetAsync(); break; } catch (ServiceException mgsex) { if (mgsex.StatusCode == System.Net.HttpStatusCode.BadRequest)//Special case. hosted content will not return a 404 if not available :( { return; } else { if (!await MgGraphRequester.ShouldContinue(mgsex, i)) { return; } } } } var blobFile = GetBackupMessageHostedContentBlob(_Options.Path, _TeamId, _ChannelId, message, hostedContent); using System.IO.FileStream fs = System.IO.File.Create(blobFile); _Logger.LogTrace($"BlobFile: {blobFile}"); await messageHostedcontentValue.CopyToAsync(fs); }
public static string GetBackupMessageHostedContentBlob(string root, string teamId, string channelId, ChatMessage message, ChatMessageHostedContent hostedContent) { return(GetBackupMessageHostedContentBlob(root, teamId, channelId, message, hostedContent.Id)); }