protected async Task SendMessage() { if (!string.IsNullOrEmpty(MsgText)) { TchatViewModel vm = new TchatViewModel(); vm.Text = MsgText; vm.ContactId = StateTchatContainer.ContactSelected.UserId; var response = await httpClient.PostAsJsonAsync("/api/Tchat", vm); response.EnsureSuccessStatusCode(); if (response.IsSuccessStatusCode) { var json = await response.Content.ReadAsStringAsync(); if (!string.IsNullOrEmpty(json)) { var msg = JsonConvert.DeserializeObject <Message>(json); StateTchatContainer.ListMessage.Add(msg); await NotifyClient.SendMessage(msg); MsgText = string.Empty; StateHasChanged(); } } } }
public async Task <IActionResult> PostAsync(TchatViewModel model) { var contact = await _functionalUnitOfWork.ContactRepository.GetContact(model.ContactId, User.NameIdentifier()); if (contact == null) { return(BadRequest()); } Message msg = new Message { Id = Guid.NewGuid(), UserIdFrom = Guid.Parse(User.NameIdentifier()), UserIdTo = Guid.Parse(model.ContactId), DateSent = DateTime.Now, Text = model.Text, }; msg = await _functionalUnitOfWork.MessageRepository.Add(msg); var userFrom = await _userManager.FindByIdAsync(msg.UserIdFrom.ToString()); var userTo = await _userManager.FindByIdAsync(model.ContactId.ToString()); await SendMessageEmail(userFrom, userTo); return(Ok(msg)); }