private async Task Send() { var userNameTask = LocalStorageService.GetStringAsync(LocalStorageAttributes.UserNameKeyName); var userImgTask = LocalStorageService.GetStringAsync(LocalStorageAttributes.UserImgKeyName); var userIdTask = LocalStorageService.GetStringAsync(LocalStorageAttributes.UserIdKeyName); await Task.WhenAll(userNameTask, userIdTask, userImgTask); var user = new ShortUserInfoContract { UserId = userIdTask.Result, UserName = userNameTask.Result, UserImg = userImgTask.Result, }; var message = new CreateMessageContract { Content = messageInput, User = user, }; await Http.PostAsync($"api/messages/{ChatId}", message); messageInput = string.Empty; }
/// <summary> /// Converts <see cref="MessageModel"/> model to <seealso cref="MessageContract"/> contract. /// </summary> /// <param name="model">Message model.</param> /// <returns><see cref="MessageContract"/> contract.</returns> public static MessageContract ToContract(this MessageModel model) { if (model == null) { throw new ArgumentNullException(nameof(MessageModel)); } var user = new ShortUserInfoContract() { UserName = model.UserName }; return(new MessageContract { Id = model.Id, Content = model.Content, IsRead = model.IsRead, CreatedDate = model.CreatedDate, User = user, Chat = model.Chat?.ToShortInfoContract() }); }