public string ExecuteAndGetResponse(MessageActivity activity) { return(string.Join(". ", _botCommands.Where(command => command.CanExecute(activity)) .Select(command => command.ExecuteAndGetResponse(activity)) .Where(result => !string.IsNullOrEmpty(result)))); }
internal virtual void Update(ClientState state, Model model) { if (model.Timestamp.IsSpecified) { _timestampTicks = model.Timestamp.Value.UtcTicks; } if (model.Content.IsSpecified) { Content = model.Content.Value; } if (model.Application.IsSpecified) { // create a new Application from the API model Application = new MessageApplication() { Id = model.Application.Value.Id, CoverImage = model.Application.Value.CoverImage, Description = model.Application.Value.Description, Icon = model.Application.Value.Icon, Name = model.Application.Value.Name }; } if (model.Activity.IsSpecified) { // create a new Activity from the API model Activity = new MessageActivity() { Type = model.Activity.Value.Type.Value, PartyId = model.Activity.Value.PartyId.Value }; } }
public string ExecuteAndGetResponse(MessageActivity activity) { var responce = string.Empty; foreach (var url in activity.Links) { var urlId = GetSha256(new Uri(url).ToString()); var boyan = _repository.GetMemesOrDefault(activity.ConversationId, urlId); if (boyan == null) { _repository.AddMemes( new Memeses( 0, DateTime.UtcNow, activity.FromUser.Id, urlId, activity.ConversationId)); } else { var user = _userRepository.GetUserById(boyan.UserId); if (user != null) { responce += $"Боян этом мемес {url} уже был скинут {user.Identity} примерно в {boyan.SendTime} utc!!! "; } } } return(responce); }
public string ExecuteAndGetResponse(MessageActivity activity) { var totalStatistics = _messagesRepository.GetTotalStatistics(activity.ConversationId); var userStatistics = string.Join(ActivityExtension.NewLine, totalStatistics.Select(statistics => statistics.GetDetailedStatistics())); return($"`{Emojis.Envelop} {Emojis.Message} {Emojis.Smile} {Emojis.Attach} {Emojis.Statistics}`{ActivityExtension.NewLine}{ActivityExtension.NewLine}{userStatistics}{ActivityExtension.NewLine}Всего сообщений `{totalStatistics.Sum(statistics => statistics.MessagesCount)}`"); }
public override string ExecuteAndGetResponse(MessageActivity activity) { var totalScore = UserRepository.GetScoresInConversation(activity.ConversationId) .Sum(score => score.Score); return($"{activity.FromUser.PersonalScore()}, У всех остальных {totalScore - activity.FromUser.Score}"); }
public override string ExecuteAndGetResponse(MessageActivity activity) { var scores = UserRepository.GetScoresInConversation(activity.ConversationId); var userScopes = string.Join(ActivityExtension.NewLine, scores.OrderByDescending(score => score.Score).Select(score => score.PersonalScore())); return($"{userScopes}{ActivityExtension.NewLine}Всего {scores.Sum(score => score.Score)}"); }
private void OnSend(Ddeml.MONMSGSTRUCT mon) { var m = new Message {HWnd = mon.hwndTo, Msg = mon.wMsg, LParam = mon.lParam, WParam = mon.wParam}; var args = new DdemlMessageActivityEventArgs(DdemlMessageActivityKind.Send, m, mon.hTask); MessageActivity?.Invoke(this, args); }
private void RegisterEvents() { hub.On <string, string>("sendMessage", onData: async(message, sender) => { var messageActivity = new MessageActivity(); messageActivity.OnMessageReceived(message, sender); }); }
internal MessageActivity createMessageActivity(MessageActivity activity) { OracleQuery query = buildCreateMessageActivityQuery(activity); nonQuery insertQuery = delegate() { return(query.Command.ExecuteNonQuery()); }; _cxn.query(query, insertQuery); activity.Id = ((Oracle.DataAccess.Types.OracleDecimal)query.Command.Parameters["outId"].Value).ToInt32(); return(activity); }
internal virtual void Update(Model model) { if (model.Timestamp.IsSpecified) { _timestampTicks = model.Timestamp.Value.UtcTicks; } if (model.Content.IsSpecified) { Content = model.Content.Value; } if (model.Application.IsSpecified) { // create a new Application from the API model Application = new MessageApplication() { Id = model.Application.Value.Id, CoverImage = model.Application.Value.CoverImage, Description = model.Application.Value.Description, Icon = model.Application.Value.Icon, Name = model.Application.Value.Name }; } if (model.Activity.IsSpecified) { // create a new Activity from the API model Activity = new MessageActivity() { Type = model.Activity.Value.Type.Value, PartyId = model.Activity.Value.PartyId.GetValueOrDefault() }; } if (model.Reactions.IsSpecified) { var value = model.Reactions.Value; if (value.Length > 0) { var reactions = ImmutableArray.CreateBuilder <RestReaction>(value.Length); for (int i = 0; i < value.Length; i++) { reactions.Add(RestReaction.Create(value[i])); } _reactions = reactions.ToImmutable(); } else { _reactions = ImmutableArray.Create <RestReaction>(); } } else { _reactions = ImmutableArray.Create <RestReaction>(); } }
public string ExecuteAndGetResponse(MessageActivity activity) { var currencyRequest = new CurrencyRequest(activity.Message, _currencyToAnotherRateProviders, _currencyRatingProviders); return (currencyRequest.IsFullInformationRequested ? string.Join(ActivityExtension.NewLine, currencyRequest.CurrencyRatingProvider.GetRates().Select(GetRatingString)) : GetRatingString(currencyRequest.CurrencyToAnotherRateProvider.GetRate())); }
internal void sendEmailAndUpdateNotificationAndLog(Int32 senderId, Int32 recipientId, Int32 recipientOplock, String recipientSite, String recipientDUZ, Int32 messageId, String mailGroup, String emailAddress) { try { bool success = sendEmail(emailAddress, recipientSite, recipientDUZ, mailGroup, messageId.ToString()); MessageActivity activity = new MessageActivity() { Action = success ? domain.sm.enums.ActivityEnum.MDWS_NEW_MESSAGE_EMAIL_NOTIFICATION : domain.sm.enums.ActivityEnum.MDWS_EMAIL_SENT_ERROR, Detail = String.Format("MOBILE_APPS_ENTRY^{0}<SenderID:<{1}>RecipientID:<{2}>MessageID:<{3}>Group:<{4}>Email:<{5}>CreatedDate:<{6}>Status:{7}>", success ? "Success" : "Failed", senderId.ToString(), recipientId.ToString(), messageId.ToString(), mailGroup.ToString(), emailAddress, DateTime.UtcNow.ToString(), success ? "Success" : "Error"), MessageId = messageId, PerformerType = domain.sm.enums.UserTypeEnum.PATIENT, UserId = senderId }; //try //{ // using (FileStream fs = new FileStream("C:\\SM_Activity_Log.txt", FileMode.Append, FileAccess.Write)) // { // fs.Write(System.Text.Encoding.ASCII.GetBytes(activity.ToString()), 0, activity.ToString().Length); // fs.Flush(); // } //} //catch (Exception) { } using (MdoOracleConnection cxn = new MdoOracleConnection(new DataSource() { ConnectionString = _cxnString })) { new MessageActivityDao(cxn).createMessageActivity(activity); if (success) { new UserDao(cxn).updateLastEmailNotification(new domain.sm.User() { Id = recipientId, Oplock = recipientOplock }); // need user ID and oplock only } } } catch (Exception exc) { //try //{ // using (FileStream fs = new FileStream("C:\\SM_Activity_Log.txt", FileMode.Append, FileAccess.Write)) // { // fs.Write(System.Text.Encoding.ASCII.GetBytes(exc.ToString()), 0, exc.ToString().Length); // fs.Flush(); // } //} //catch (Exception) { } } }
private static string GetMovieName(MessageActivity activity) { var index = activity.Message.IndexOf(ReleaseDate, StringComparison.Ordinal); if (index == -1) { return(string.Empty); } return(activity.Message.Substring(index + ReleaseDate.Length).Trim()); }
public string ExecuteAndGetResponse(MessageActivity activity) { var title = $"Список активных команд для бота:{ActivityExtension.NewLine}"; return(title + string.Join( ActivityExtension.NewLine, _commandWithHelp.Select( command => command.CommandName + ": " + command.Description + ". Пример: " + command.Sample))); }
internal virtual void Update(ClientState state, Model model) { Type = model.Type; if (model.Timestamp.IsSpecified) { _timestampTicks = model.Timestamp.Value.UtcTicks; } if (model.Content.IsSpecified) { Content = model.Content.Value; } if (model.Application.IsSpecified) { // create a new Application from the API model Application = new MessageApplication() { Id = model.Application.Value.Id, CoverImage = model.Application.Value.CoverImage, Description = model.Application.Value.Description, Icon = model.Application.Value.Icon, Name = model.Application.Value.Name }; } if (model.Activity.IsSpecified) { // create a new Activity from the API model Activity = new MessageActivity() { Type = model.Activity.Value.Type.Value, PartyId = model.Activity.Value.PartyId.GetValueOrDefault() }; } if (model.Reference.IsSpecified) { // Creates a new Reference from the API model Reference = new MessageReference { GuildId = model.Reference.Value.GuildId, InternalChannelId = model.Reference.Value.ChannelId, MessageId = model.Reference.Value.MessageId }; } if (model.Flags.IsSpecified) { Flags = model.Flags.Value; } }
internal OracleQuery buildCreateMessageActivityQuery(MessageActivity activity) { string sql = "INSERT INTO SMS.MESSAGE_ACTIVITY (SMS_USER_ID, ACTION, STATUS, PERFORMER_TYPE, DETAIL_VALUE, SECURE_MESSAGE_ID) VALUES " + "(:userId, :action, :status, :performerType, :detailValue, :smId) RETURNING ACTIVITY_ID INTO :outId"; OracleQuery query = new OracleQuery(); query.Command = new OracleCommand(sql); OracleParameter userIdParam = new OracleParameter("userId", OracleDbType.Decimal); userIdParam.Value = Convert.ToDecimal(activity.UserId); query.Command.Parameters.Add(userIdParam); OracleParameter actionParam = new OracleParameter("action", OracleDbType.Decimal); actionParam.Value = Convert.ToDecimal(activity.Action); query.Command.Parameters.Add(actionParam); OracleParameter statusParam = new OracleParameter("status", OracleDbType.Decimal); statusParam.Value = Convert.ToDecimal(1); // all status values seem to be 1 so setting statically query.Command.Parameters.Add(statusParam); OracleParameter performerTypeParam = new OracleParameter("performerType", OracleDbType.Decimal); performerTypeParam.Value = Convert.ToDecimal(activity.PerformerType); query.Command.Parameters.Add(performerTypeParam); OracleParameter detailValueParam = new OracleParameter("detailValue", OracleDbType.Varchar2, 4000); if (String.IsNullOrEmpty(activity.Detail)) { detailValueParam.Value = DBNull.Value; } else { detailValueParam.Value = activity.Detail; } query.Command.Parameters.Add(detailValueParam); OracleParameter smIdParam = new OracleParameter("smId", OracleDbType.Decimal); smIdParam.Value = Convert.ToDecimal(activity.MessageId); query.Command.Parameters.Add(smIdParam); OracleParameter outParam = new OracleParameter("outId", OracleDbType.Decimal); outParam.Direction = ParameterDirection.Output; query.Command.Parameters.Add(outParam); return(query); }
public override string ExecuteAndGetResponse(MessageActivity activity) { var userScore = GetScoreForUserOrNull(activity); if (userScore != null) { userScore.Score++; UserRepository.SetScoreForUser(activity.ConversationId, userScore.UserId, userScore.Score); return(userScore.PersonalScore()); } return(string.Empty); }
public async Task <MessageActivity> CreateMessageActivityAsync( IBotPersistentState persistentState, IUserPhrase userPhrase, IPlayer player, CancellationToken cancellationToken) { var messageActivity = new MessageActivity( player, new IntentRecognition(userPhrase, player), await DialogStateMachine(persistentState, cancellationToken, new StatesFactory(player))); return(messageActivity); }
public string ExecuteAndGetResponse(MessageActivity activity) { _messagesRepository.AddMessage( new Messages( activity.FromUser.Id, activity.Words.Length, DateTime.UtcNow, smilesCount: activity.Smiles.Length, attachmentsCount: activity.AttachmentsCount, linksCount: activity.Links.Length, messageLength: activity.Words.Sum(word => word.Length), replyToId: activity.ReplyTo?.Id)); return(string.Empty); }
/// <summary> /// Creates a new BotResponseEventArgs instance based on the given response. /// </summary> /// <param name="responseAsString"></param> /// <returns></returns> private BotResponseEventArgs CreateBotResponseEventArgs(string responseAsString) { if (string.IsNullOrEmpty(responseAsString)) { throw new ArgumentException("Response cannot be null or empty"); } JSONNode responseJsonRootNode = JSONNode.Parse(responseAsString); JSONNode jsonNode = null; BotResponseEventArgs eventArgs = new BotResponseEventArgs(); if ((jsonNode = responseJsonRootNode[BotJsonProtocol.KeyError]) != null) { eventArgs.EventType = EventTypes.Error; eventArgs.Code = jsonNode[BotJsonProtocol.KeyCode]; string message = jsonNode[BotJsonProtocol.KeyMessage]; if (!string.IsNullOrEmpty(message)) { eventArgs.Message = message; } } else if (responseJsonRootNode[BotJsonProtocol.KeyConversationId] != null) { eventArgs.EventType = EventTypes.ConversationStarted; eventArgs.ConversationId = responseJsonRootNode[BotJsonProtocol.KeyConversationId]; } else if (responseJsonRootNode[BotJsonProtocol.KeyId] != null) { eventArgs.EventType = EventTypes.MessageSent; eventArgs.SentMessageId = responseJsonRootNode[BotJsonProtocol.KeyId]; } else if ((jsonNode = responseJsonRootNode[BotJsonProtocol.KeyActivities]) != null) { eventArgs.EventType = EventTypes.MessageReceived; eventArgs.Watermark = responseJsonRootNode[BotJsonProtocol.KeyWatermark]; JSONArray jsonArray = jsonNode.AsArray; foreach (JSONNode activityNode in jsonArray) { MessageActivity messageActivity = MessageActivity.FromJson(activityNode); eventArgs.Messages.Add(messageActivity); } } return(eventArgs); }
public string ExecuteAndGetResponse(MessageActivity activity) { var query = GetMovieName(activity); if (string.IsNullOrWhiteSpace(query)) { return(UnknownMovie); } var movies = _movieRepository.SearchMoovie(query); if (movies.TotalResults == 0) { return(UnknownMovie); } return(string.Join( ActivityExtension.NewLine, movies.Results.Take(MaxMoviesCount).OrderByDescending(movie => movie.ReleaseDate).Select(movie => $"{movie.Title} {movie.ReleaseDate}"))); }
GIVENMessageTypeActivityAndNoOmitUsernameSetting_WHENBuildIsInvoked_THENEventTelemetryIsBeingCreated( IFixture fixture) { // Arrange var settings = new InstrumentationSettings { OmitUsernameFromTelemetry = false }; var messageActivity = new MessageActivity { Text = fixture.Create <string>() }; var channelAccount = new ChannelAccount { Id = fixture.Create <string>(), Name = fixture.Create <string>(), }; var activity = new Activity { Type = ActivityTypes.Message, ChannelId = fixture.Create <string>(), MessageActivity = messageActivity, ChannelAccount = channelAccount, }; var builder = new EventTelemetryBuilder(activity, settings); const int expectedNumberOfTelemetryProperties = 6; const string expectedTelemetryName = EventTypes.MessageReceived; // Act var eventTelemetry = builder.Build(); // Assert eventTelemetry.Name.Should().Be(expectedTelemetryName); eventTelemetry.Properties.Count.Should().Be(expectedNumberOfTelemetryProperties); eventTelemetry.Properties[BotConstants.TypeProperty].Should().Be(activity.Type); eventTelemetry.Properties[BotConstants.TextProperty].Should().Be(activity.MessageActivity.Text); eventTelemetry.Properties[BotConstants.UserIdProperty].Should().Be(activity.ChannelAccount.Id); eventTelemetry.Properties[BotConstants.UserNameProperty].Should().Be(activity.ChannelAccount.Name); eventTelemetry.Properties[BotConstants.ChannelProperty].Should().Be(activity.ChannelId); }
public void GIVENMessageTypeActivityAndReplyToId_WHENBuildIsInvoked_THENEventTelemetryIsBeingCreated( InstrumentationSettings settings, IFixture fixture) { // Arrange var messageActivity = new MessageActivity { Text = fixture.Create <string>() }; var channelAccount = new ChannelAccount { Id = fixture.Create <string>(), Name = fixture.Create <string>(), }; var activity = new Activity { Type = ActivityTypes.Message, ChannelId = fixture.Create <string>(), ReplyToId = fixture.Create <string>(), MessageActivity = messageActivity, TimeStampIso8601 = DateTime.Now.ToString(CultureInfo.CurrentCulture), ChannelAccount = channelAccount, }; var builder = new EventTelemetryBuilder(activity, settings); const int expectedNumberOfTelemetryProperties = 5; const string expectedTelemetryName = EventTypes.MessageSent; // Act var eventTelemetry = builder.Build(); // Assert eventTelemetry.Name.Should().Be(expectedTelemetryName); eventTelemetry.Properties.Count.Should().Be(expectedNumberOfTelemetryProperties); eventTelemetry.Properties[BotConstants.TypeProperty].Should().Be(activity.Type); eventTelemetry.Properties[BotConstants.TextProperty].Should().Be(activity.MessageActivity.Text); eventTelemetry.Properties[BotConstants.ChannelProperty].Should().Be(activity.ChannelId); eventTelemetry.Properties[BotConstants.TimestampProperty].Should().Be(activity.TimeStampIso8601); }
public bool CanExecute(MessageActivity activity) => activity.IsMessageForBot() && activity.Message.Contains(ReleaseDate);
private string GetUserNameFromMessageOrNull(MessageActivity activity) { return(activity.Message.Split(' ').Select(word => word.Trim().Trim('@')).FirstOrDefault( word => UserRepository.IsUserExists(activity.ConversationId, word))); }
protected Users GetScoreForUserOrNull(MessageActivity activity) { return(UserRepository.GetUser(activity.ConversationId, GetUserNameFromMessageOrNull(activity))); }
public abstract string ExecuteAndGetResponse(MessageActivity activity);
public virtual bool CanExecute(MessageActivity activity) => activity.IsMessageForBot();
public bool CanExecute(MessageActivity activity) => activity.IsMessageForBot() && new CurrencyRequest(activity.Message, _currencyToAnotherRateProviders, _currencyRatingProviders).CanProvider;
public string ExecuteAndGetResponse(MessageActivity activity) => string.Join( ActivityExtension.NewLine, _movieRepository.GetUpcomingPlaying().Results.Select(moovie => $"\"{moovie.Title}\" Дата выхода: {moovie.ReleaseDate} {Emojis.GetFlag(moovie.OriginalLanguage)}"));