private static void SendProcessToServer(IHubProxy hub) { var computer = new Computer { Ipv4 = SystemHelper.GetIPV4(), NameComputer = SystemHelper.GetNameComputer(), UserName = SystemHelper.GetUserName(), Processes = SystemHelper.GetProcesses(Process.GetProcesses()) }; var message = new MessageReturnModel { Sucesso = true, Mensagem = new List <string> { "Informações obtidas com sucesso." }, Retorno = computer }; hub.Invoke <string>("SendProcess", message).ContinueWith(task => { if (task.IsFaulted) { Console.WriteLine("Ocorreu algum durante o envio da mensagem ao servidor: {0}", task.Exception.GetBaseException()); } }).Wait(); }
public async Task <ApiResponder> SendMessage(string userName, string deviceID, string senderUserId, string toUserId, string message, string messageKey, ChatType chatType = ChatType.Text) { try { Console.WriteLine("sending a message: " + message); var newMessage = new Message() { ApplicationUserId = Convert.ToInt32(senderUserId), ReceiverId = Convert.ToInt32(toUserId), Text = message, CreateAt = DateTime.UtcNow, Type = chatType }; var itemUser = users.Find(s => s.UserName == toUserId); if (itemUser != null) { Clients.Client(itemUser.ConnectionID).messageReceived(newMessage); } var pushNotification = new OneSignalService(); pushNotification.PushNotification(newMessage, userName, deviceID, senderUserId); var conversatition = DataContext.Converstation.Where(s => (s.SenderId == Convert.ToInt32(senderUserId) && s.RecevierId == Convert.ToInt32(toUserId)) || (s.SenderId == Convert.ToInt32(toUserId) && s.RecevierId == Convert.ToInt32(senderUserId))).FirstOrDefault(); if (conversatition == null) { var conversationItem = new Converstation() { SenderId = Convert.ToInt32(senderUserId), RecevierId = Convert.ToInt32(toUserId), LastMessage = message, LastDate = DateTime.UtcNow, TotalMessage = 1, }; DataContext.Converstation.Add(conversationItem); } else { conversatition.TotalMessage = conversatition.TotalMessage + 1; conversatition.LastDate = DateTime.UtcNow; conversatition.LastMessage = message; DataContext.Converstation.Update(conversatition); } DataContext.Message.Add(newMessage); await DataContext.SaveChangesAsync(); var messageReturn = new MessageReturnModel() { ApplicationUserId = newMessage.ApplicationUserId, ReceiverId = newMessage.ReceiverId, Text = newMessage.Text, CreateAt = DateTime.UtcNow, Type = chatType, MessageKey = messageKey, }; var sucessMessage = new ApiResponder(messageReturn, null); Console.WriteLine("send Successfully"); return(sucessMessage); } catch (Exception ex) { Console.WriteLine("Error" + ex.Message); var errorMessage = new ApiResponder(null, new Error() { errorCode = 5001, errorMessage = new string[] { ex.Message } }); return(errorMessage); } }