/// <summary> /// ルーム内の投稿を更新します。 /// ただし、ルームの最終アクセス日時は更新しません。 /// </summary> /// <param name="roomId">投稿を取得したいルームのID</param> /// <param name="httpClient">razorで注入したHttpClientインスタンス</param> /// <returns>ルーム内の投稿一覧</returns> public static async Task <List <Message> > RefreshPostInRoom(Guid roomId, HttpClient httpClient) { var request = new ChatPostPostRequest() { RoomId = roomId, NeedMessageTailDate = DateTime.Now }; var response = await httpClient.PostAsJsonAsync <ChatPostPostRequest>("Post", request); return(await response.Content.ReadFromJsonAsync <List <Message> >()); }
public async Task <ActionResult <IEnumerable <Message> > > Post(ChatPostPostRequest request) { var validationResult = await ValidateParameter(request.RoomId); if (validationResult != null) { return(validationResult); } var messages = await _postService.ReadPosts( request.RoomId, request.NeedMessageTailDate); return(Ok(messages)); }
private async Task InitializeChatRoom(HttpClient httpClient) { AllUser = await httpClient.GetFromJsonAsync <List <UserInformation> >("User"); var roomDetail = await httpClient.GetFromJsonAsync <RoomDetail>($"Room/{RoomId}"); RoomParticipants = roomDetail.Users; var request = new ChatPostPostRequest() { RoomId = RoomId, NeedMessageTailDate = DateTime.Now }; var response = await httpClient.PostAsJsonAsync("Post", request); var messages = await response.Content.ReadFromJsonAsync <List <Message> >(); var postModelTask = await Task.WhenAll(messages.Select(async message => { var threadMessages = await httpClient.GetFromJsonAsync <List <ThreadMessage> >($"Thread/Post/{message.Id}"); return(new PostModel() { UserEmail = message.UserEmail, HandleName = message.HandleName, PostId = message.Id, MessageContext = message.MessageContext, CreateDate = message.CreateDate, UpdateDate = message.UpdateDate, ThreadModels = threadMessages .Select(threadMessage => new ThreadModel() { UserEmail = threadMessage.UserEmail, HandleName = threadMessage.HandleName, ThreadId = threadMessage.ThreadId, MessageContext = threadMessage.MessageContext, CreateDate = threadMessage.CreateDate, UpdateDate = threadMessage.UpdateDate }).ToList() }); })); PostModels = postModelTask.ToList(); }