/// <summary> /// This method is called by MessagingAreaControl to send messages. /// </summary> /// <param name="message">Message to be sent</param> public void SendMessage(ChatMessage message) { _controller.SendPrivateMessage(RemoteUserNick, message); MessageHistory.MessageReceived(CurrentUserNick, message); }
public async Task Add(MessageHistory messageHistory) { _context.Messages.Add(messageHistory); await _context.SaveChangesAsync(); }
private void GetPremiumButton_Click(object sender, RoutedEventArgs e) { try { GetPremiumButton.Focus(); var button = sender as FrameworkElement; if (button != null && button.Tag != null && (button.Tag as string) != null) { try { BuyButtons buyButtonType = BuyButtons.TopNav; if ((string)button.Tag == "TopNav") { buyButtonType = BuyButtons.TopNav; } else if ((string)button.Tag == "LeftNav") { buyButtonType = BuyButtons.LeftNav; } var subscription = pbData.GetSubscriptionInfo(); int?daysFromAccountCreation = null; if (subscription != null && subscription.AccountCreated && subscription.AccountCreationDate.HasValue) { var currentDate = DateTime.Now; //daysFromAccountCreation = (int)Math.Ceiling((currentDate - subscription.AccountCreationDate.GetValueOrDefault(currentDate)).TotalDays); daysFromAccountCreation = (currentDate - subscription.AccountCreationDate.GetValueOrDefault(currentDate)).Days; } var inAppAnalyitics = resolver.GetInstanceOf <IInAppAnalytics>(); MessageHistory his = new MessageHistory { DaysSinceAccountCreated = daysFromAccountCreation, ButtonClicked = MarketingActionType.GetPremium.ToString(), BuyButton = buyButtonType.ToString() }; pbData.InsertMessageHistory(his); var mhItem = pbData.GetMessageHistoryById(his.Id); var analytics2 = inAppAnalyitics.Get <Events.InAppMarketing, InAppMessageItem>(); var logItem = new InAppMessageItem(mhItem.RowId, mhItem.AnalyticsCode, mhItem.MsgType, mhItem.Theme, (MarketingActionType)Enum.Parse(typeof(MarketingActionType), mhItem.ButtonClicked), buyButtonType, mhItem.DaysSinceAccountCreated); analytics2.Log(logItem); } catch (Exception ex) { logger.Error(ex.ToString()); } } ((IAppCommand)System.Windows.Application.Current).ExecuteCommand("GetPremium", null); } catch (Exception ex) { logger.Error(ex.ToString()); } }
protected static void startListening() { MessageHistory.ClearHistory(); }
protected void waitForTheMessageProcessingToFinish() { Wait.Until(() => !MessageHistory.Outstanding().Any() && MessageHistory.All().Any(), timeoutInMilliseconds: TimeoutInMilliseconds); }
/// <summary> /// Maps history information for general chats, which do not have a relationshipXrefID, EventType, or AssignmentClient using a list of contextChatMessages relating to the client's general conversation. Uses a logic client object /// rather than a context client object /// </summary> /// <param name="logicConversationClient"></param> /// <param name="contextChatMessages"></param> /// <param name="logicSubjectClient"></param> /// <returns></returns> public static Logic.Objects.MessageHistory MapHistoryInformation(Logic.Objects.Client logicConversationClient, List <Entities.ChatMessage> contextChatMessages, BaseClient logicSubjectClient) { List <Message> logicListRecieverMessages = new List <Message>(); List <Message> logicListSubjectMessages = new List <Message>(); if (logicSubjectClient.isAdmin) { logicListSubjectMessages = contextChatMessages .Select(Mapper.MapMessage) .OrderBy(dt => dt.dateTimeSent) .Where(m => m.fromAdmin) .ToList(); logicListRecieverMessages = contextChatMessages .Select(Mapper.MapMessage) .OrderBy(dt => dt.dateTimeSent) .Where(m => !m.fromAdmin) .ToList(); } else { logicListSubjectMessages = contextChatMessages .Select(Mapper.MapMessage) .OrderBy(dt => dt.dateTimeSent) .Where(m => !m.fromAdmin && m.senderClient.clientId == logicSubjectClient.clientID) .ToList(); logicListRecieverMessages = contextChatMessages .Select(Mapper.MapMessage) .OrderBy(dt => dt.dateTimeSent) .Where(m => m.fromAdmin) .ToList(); } // General histories dont have a relationXrefID, EventType, or AssignmentClient because they are not tied to an assignment MessageHistory logicHistory = new MessageHistory() { relationXrefID = null, eventType = new Event(), assignmentStatus = new Logic.Objects.AssignmentStatus(), subjectClient = MapClientChatMeta(logicSubjectClient), conversationClient = MapClientChatMeta(logicConversationClient), assignmentRecieverClient = new ClientChatMeta(), assignmentSenderClient = new ClientChatMeta(), subjectMessages = logicListSubjectMessages, recieverMessages = logicListRecieverMessages, unreadCount = logicListRecieverMessages.Where(m => m.isMessageRead == false).ToList().Count() }; logicHistory.unreadCount = logicHistory.recieverMessages.Where(m => m.isMessageRead == false).ToList().Count(); foreach (Message logicMessage in logicHistory.subjectMessages) { logicMessage.subjectMessage = true; } return(logicHistory); }
public CallbackMessageContent GetLastUpdateMessage() { return(MessageHistory.LastOrDefault()); }
public void StartListeningForMessages() { MessageHistory.StartListening(_remoteSubSystems.Select(x => x.Runner).ToArray()); }
private void CalcMsg() { try { int chat_id = 2000000002; string ACCESS_TOKEN = AppConfiguration.GetSection("VK_ACCESS_TOKENS").GetValue <string>("SERGIO_ACCESS_TOKEN_KM"); VkApi = new VkApi(ACCESS_TOKEN); using (var scope = ServiceScopeFactory.CreateScope()) { DB = scope.ServiceProvider.GetRequiredService <ApplicationContext>(); CalcMessage cm; using (var transaction = DB.Database.BeginTransaction()) { cm = DB.CalcMessages.FirstOrDefault(); if (cm == null) { CalcMessage calcMessage = new CalcMessage { MarkerMessageId = 0, StartMessageId = 0, Stage = "firstStart" }; DB.CalcMessages.Add(calcMessage); DB.SaveChanges(); } cm = DB.CalcMessages.FirstOrDefault(); if (cm.Stage == "firstStart") { MessageHistory history = VkApi.GetMsgHistory <MessageHistory>(peer_id: chat_id, count: 1); //Thread.Sleep(350); List <Item> items = history.Response.Items; cm.MarkerMessageId = items.First().Id; cm.StartMessageId = items.First().Id; cm.Stage = "calcToEnd"; DB.SaveChanges(); } transaction.Commit(); } if (cm.Stage == "calcToEnd") { while (true) { using (var transaction = DB.Database.BeginTransaction()) { MessageHistory history = VkApi.GetMsgHistory <MessageHistory>(peer_id: chat_id, count: 200, startMessageId: cm.StartMessageId); List <Item> items = history.Response.Items; //маркер это конец для следующего подсчета cm.StartMessageId = items.Last().Id; /// DB.Entry(cm).Property("StartMessageId").IsModified = true; if (items.Count == 1) { cm.Stage = "firstCalcToMarker"; DB.SaveChanges(); transaction.Commit(); break; } for (int i = 0; i < items.Count; i++) { User checkUser = DB.Users.FirstOrDefault(x => x.Id == items[i].From_id); if (checkUser != null) { UserMessage userMessage = DB.UserMessages.FirstOrDefault(x => x.UserId == items[i].From_id); userMessage.Message++; DB.Entry(userMessage).Property("Message").IsModified = true; userMessage.LastMessageDate = items[i].Date; DB.Entry(userMessage).Property("LastMessageDate").IsModified = true; } else if (checkUser == null && items[i].From_id > 0) { UsersGetModel ugm = VkApi.UsersGet <UsersGetModel>(items[i].From_id); Thread.Sleep(350); string firstName = ugm.Response.Single().First_name; string lastName = ugm.Response.Single().Last_name; User newUser = new User { Id = items[i].From_id, FirstName = firstName, LastName = lastName, Activity = DateTime.Now }; DB.Users.Add(newUser); UserMessage userMessage = new UserMessage { User = newUser, Message = 1 }; DB.UserMessages.Add(userMessage); } DB.SaveChanges(); } transaction.Commit(); } } } else if (cm.Stage == "firstCalcToMarker") { using (var transaction = DB.Database.BeginTransaction()) { MessageHistory history = VkApi.GetMsgHistory <MessageHistory>(peer_id: chat_id, count: 200); List <Item> items = history.Response.Items; for (int i = 0; i < items.Count; i++) { if (items[i].Id == cm.MarkerMessageId)//если сообщений меньше 200 и мы уже дошли до маркера { cm.MarkerMessageId = items.First().Id; cm.Stage = "firstCalcToMarker";//это излишне DB.SaveChanges(); break; } else if (i == 199)//с продолжением { cm.NewMarkerMessageId = items.First().Id; cm.Stage = "calcToMarker"; cm.StartMessageId = items.Last().Id; DB.SaveChanges(); break; } User checkUser = DB.Users.FirstOrDefault(x => x.Id == items[i].From_id); if (checkUser != null) { UserMessage userMessage = DB.UserMessages.FirstOrDefault(x => x.UserId == items[i].From_id); userMessage.Message++; userMessage.LastMessageDate = items[i].Date; } else if (checkUser == null && items[i].From_id > 0) { UsersGetModel ugm = VkApi.UsersGet <UsersGetModel>(items[i].From_id); Thread.Sleep(350); string firstName = ugm.Response.Single().First_name; string lastName = ugm.Response.Single().Last_name; User newUser = new User { Id = items[i].From_id, FirstName = firstName, LastName = lastName, Activity = DateTime.Now }; DB.Users.Add(newUser); UserMessage userMessage = new UserMessage { User = newUser, Message = 1 }; DB.UserMessages.Add(userMessage); } DB.SaveChanges(); } transaction.Commit(); } } else if (cm.Stage == "calcToMarker") { bool isCalc = true; while (isCalc) { using (var transaction = DB.Database.BeginTransaction()) { MessageHistory history = VkApi.GetMsgHistory <MessageHistory>(peer_id: chat_id, count: 200, startMessageId: cm.StartMessageId); List <Item> items = history.Response.Items; cm.StartMessageId = items.Last().Id; for (int i = 0; i < items.Count; i++) { if (items[i].Id == cm.MarkerMessageId) { cm.Stage = "firstCalcToMarker"; cm.MarkerMessageId = cm.NewMarkerMessageId; DB.SaveChanges(); isCalc = false; break; } User checkUser = DB.Users.FirstOrDefault(x => x.Id == items[i].From_id); if (checkUser != null) { UserMessage userMessage = DB.UserMessages.FirstOrDefault(x => x.UserId == items[i].From_id); userMessage.Message++; DB.Entry(userMessage).Property("Message").IsModified = true; userMessage.LastMessageDate = items[i].Date; DB.Entry(userMessage).Property("LastMessageDate").IsModified = true; } else if (checkUser == null && items[i].From_id > 0) { UsersGetModel ugm = VkApi.UsersGet <UsersGetModel>(items[i].From_id); Thread.Sleep(350); string firstName = ugm.Response.Single().First_name; string lastName = ugm.Response.Single().Last_name; User newUser = new User { Id = items[i].From_id, FirstName = firstName, LastName = lastName, Activity = DateTime.Now }; DB.Users.Add(newUser); UserMessage userMessage = new UserMessage { User = newUser, Message = 1 }; DB.UserMessages.Add(userMessage); } DB.SaveChanges(); } transaction.Commit(); } } } } } catch (Exception e) { string ANNOUNCER_ACCESS_TOKEN = AppConfiguration.GetSection("VK_ACCESS_TOKENS").GetValue <string>("ANNOUNCER_ACCESS_TOKEN"); VkApi.SendMessage <dynamic>(chatId: 1, message: "ПРИВЕТ ! ПРИВЕТ ! ПРИВЕТ !", accessToken: ANNOUNCER_ACCESS_TOKEN); Logger.LogError(e.Message); Logger.LogError(e.StackTrace); } }
internal void Execute(IScenarioWriter writer) { TraceListener[] listeners = new TraceListener[Debug.Listeners.Count]; Debug.Listeners.CopyTo(listeners, 0); Debug.Listeners.Clear(); FubuTransport.SetupForInMemoryTesting(); InMemoryQueueManager.ClearAll(); TestMessageRecorder.Clear(); MessageHistory.ClearAll(); _configurations.Each(x => x.SpinUp()); writer.WriteTitle(Title); using (writer.Indent()) { writeArrangement(writer); writer.WriteLine("Actions"); using (writer.Indent()) { _steps.Each(x => { x.PreviewAct(writer); try { x.Act(writer); } catch (Exception e) { writer.Exception(e); } }); } var success = Wait.Until(() => { return(!MessageHistory.Outstanding().Any()); }, timeoutInMilliseconds: 60000); Debug.Listeners.AddRange(listeners); if (success) { writer.WriteLine("Messages are all accounted for"); } else { writer.WriteLine("Messages are outstanding:"); MessageHistory.Outstanding().Each(x => Debug.WriteLine(x)); } writer.BlankLine(); _configurations.Each(x => x.SafeDispose()); writer.WriteLine("Assertions"); using (writer.Indent()) { _steps.Each(x => { x.PreviewAssert(writer); x.Assert(writer); }); } writer.BlankLine(); if (TestMessageRecorder.AllProcessed.Any()) { writer.WriteLine("Messages Received"); TestMessageRecorder.AllProcessed.Each(x => { writer.Bullet("{0} received by {1}", x.Message.GetType().Name, x.Message.Source); }); } else { writer.WriteLine("No messages were received!"); } var unexpectedMessages = TestMessageRecorder.AllProcessed.Where(x => !_steps.Any(step => step.MatchesSentMessage(x.Message))) .ToArray(); if (unexpectedMessages.Any()) { writer.BlankLine(); writer.WriteLine("Found unexpected messages"); unexpectedMessages.Each(x => writer.Failure(x.ToString())); } } }
public void Act(IScenarioWriter writer) { MessageHistory.Record(MessageTrack.ForSent(Message)); _sender.ServiceBus.Send(Message); }
public async Task UpdateAsync(MessageHistory entity) { await _messageHistoryRepository.UpdateAsync(entity); }
public async Task <MessageHistory> CreateAsync(MessageHistory entity) { entity.Id = await _messageHistoryRepository.InsertAndGetIdAsync(entity); return(entity); }
private void ClearConsole(params string[] _) { MessageHistory.Clear(); }
public async Task Add(MessageHistory messageHistory) { await _messageRepository.Add(messageHistory); }
public void Act(IScenarioWriter writer) { MessageHistory.Record(MessageTrack.ForSent(_request)); _completion = _sender.ServiceBus.SendAndWait(_request); }
/// <summary> /// Maps the information of a message history with the contents of a relationship, and the viewer subject client information /// </summary> /// <param name="contextRelationshipXref"></param> /// <param name="logicSubjectClient"></param> /// <returns></returns> public static Logic.Objects.MessageHistory MapHistoryInformation(ClientRelationXref contextRelationshipXref, BaseClient logicSubjectClient, bool unloaded) { List <Message> logicListRecieverMessages = new List <Message>(); List <Message> logicListSubjectMessages = new List <Message>(); if (!unloaded) { if (logicSubjectClient.isAdmin) { logicListSubjectMessages = contextRelationshipXref.ChatMessage .Select(Mapper.MapMessage) .OrderBy(dt => dt.dateTimeSent) .Where(m => m.fromAdmin) .ToList(); logicListRecieverMessages = contextRelationshipXref.ChatMessage .Select(Mapper.MapMessage) .OrderBy(dt => dt.dateTimeSent) .Where(m => !m.fromAdmin) .ToList(); } else { logicListSubjectMessages = contextRelationshipXref.ChatMessage .Select(Mapper.MapMessage) .OrderBy(dt => dt.dateTimeSent) .Where(m => !m.fromAdmin && m.senderClient.clientId == logicSubjectClient.clientID) .ToList(); logicListRecieverMessages = contextRelationshipXref.ChatMessage .Select(Mapper.MapMessage) .OrderBy(dt => dt.dateTimeSent) .Where(m => m.fromAdmin) .ToList(); } } MessageHistory logicHistory = new MessageHistory() { relationXrefID = contextRelationshipXref.ClientRelationXrefId, eventType = MapEvent(contextRelationshipXref.EventType), assignmentStatus = MapAssignmentStatus(contextRelationshipXref.AssignmentStatus), subjectClient = MapClientChatMeta(logicSubjectClient), conversationClient = MapClientChatMeta(contextRelationshipXref.SenderClient), assignmentRecieverClient = MapClientChatMeta(contextRelationshipXref.RecipientClient), assignmentSenderClient = MapClientChatMeta(contextRelationshipXref.SenderClient), subjectMessages = unloaded ? new List <Message>() : logicListSubjectMessages, recieverMessages = unloaded ? new List <Message>() : logicListRecieverMessages, unreadCount = logicListRecieverMessages.Where(m => m.isMessageRead == false).ToList().Count() }; foreach (Message logicMessage in logicHistory.subjectMessages) { logicMessage.subjectMessage = true; } return(logicHistory); }
public StorytellerMessageLogger(MessageHistory history, ILoggerFactory factory, IMetrics metrics) : base(history, factory, metrics) { _history = history; Errors = new BusErrors(); }
public void ArchiveMessages() { MessageHistory.Add(TodaysMessages); TodaysMessages = new List <Message>(); }
public async Task AddMessage(MessageHistory messageHistory) { await _chatRepository.Add(messageHistory); }