Example #1
0
        public async Task <IPurposeFullfillment> WorkAsync(IContext context, IKalos message)
        {
            var purposeFullfillment = new PurposeFullfillment();

            if (!context.AddressedToSelf)
            {
                purposeFullfillment.Weight = -1;
                return(purposeFullfillment);
            }

            var matchedWords = new List <IKeyword>();
            await Task.Run(() =>
            {
                foreach (var keyword in OvermindAccessor.GetAllKeywords())
                {
                    if (message.Msg.Contains(keyword.Word))
                    {
                        var previousMatch = matchedWords.FirstOrDefault();
                        if (previousMatch == null)
                        {
                            matchedWords.Add(keyword);
                        }
                        else if (previousMatch.Word.Length < keyword.Word.Length)
                        {
                            matchedWords.Remove(previousMatch);
                            matchedWords.Add(keyword);
                        }
                    }
                }
            });

            if (matchedWords.Count == 0)
            {
                purposeFullfillment.Weight = -1;
                return(purposeFullfillment);
            }

            if (!LastTimeKeywordUsed.ContainsKey(matchedWords[0].Word))
            {
                LastTimeKeywordUsed.Add(matchedWords[0].Word, DateTime.Now);
            }
            else
            {
                if (LastTimeKeywordUsed[matchedWords[0].Word] > DateTime.Now.AddMinutes(-1))
                {
                    purposeFullfillment.Weight = -1;
                    return(purposeFullfillment);
                }
                LastTimeKeywordUsed[matchedWords[0].Word] = DateTime.Now;
            }
            purposeFullfillment.Weight = 100;
            var responses = matchedWords[0].Response.Split('\n');

            foreach (var response in responses)
            {
                var outMessage = MessageCreator.CreateOutgoingMessage(message.Origin, HumanInterface.Name, response);
                purposeFullfillment.AddMessage(outMessage);
            }
            return(purposeFullfillment);
        }
Example #2
0
        public static void RegisterDependencies(this IServiceCollection services, string connectionString)
        {
            services.AddDbContext <KinoheldDbContext>(p => p.UseMySql(connectionString));
            services.AddTransient <IAlexaHandler, AlexaHandler>();
            services.AddTransient <IIntentHandler, IntentHandler>();
            services.AddTransient <IStatusHandler, StatusHandler>();
            services.AddTransient <IEmailSubscriptionHandler, EmailSubscriptionHandler>();

            services.AddTransient <IIntent, AmazonHelpIntent>();
            services.AddTransient <IIntent, AmazonStopIntent>();
            services.AddTransient <IIntent, AmazonCancelIntent>();
            services.AddTransient <IIntent, GetOverviewDayIntent>();
            services.AddTransient <IIntent, ToggleEmailSettingsIntent>();
            services.AddTransient <IIntent, SetUserPreferencesIntent>();
            services.AddTransient <IIntent, ResetUserPreferencesIntent>();
            services.AddTransient <ICinemaDialogWorker, CinemaDialogWorker>();

            services.AddTransient <IKinoheldService, KinoheldService>();
            services.AddTransient <IKinoheldDbAccess, KinoheldDbAccess>();

            services.AddSingleton <IMessages>(MessageCreator.CreateMessages());
            services.AddSingleton <IAmazonService, AmazonService>();
            services.AddSingleton <IEmailService, EmailService>();
            services.AddSingleton <IRandomGenerator, RandomGenerator>();

            services.AddSingleton <IEmailBodyFormatter <DayOverview>, OverviewEmailFormatter>();
            services.AddSingleton <ISsmlMessageFormatter <DayOverview>, AlexaOverviewByShowResponseFormatter>();

            services.AddSingleton <IWorkItemQueue, WorkItemQueue>();
        }
Example #3
0
        private IKalos CreateResponse(IKalos originalMessage, IList <IWhatIs> results)
        {
            var responseText = $"{originalMessage.Sender}, ";
            var builder      = new StringBuilder();

            builder.Append(responseText);
            for (int i = 0; i < results.Count; i++)
            {
                var currentResult = results[i];
                if (i != 0)
                {
                    builder.Append(", ");
                }
                if (i == results.Count - 1 && i != 0)
                {
                    builder.Append("and ");
                }
                if (!string.IsNullOrEmpty(currentResult.Object))
                {
                    builder.Append($"{currentResult.Subject}'s {currentResult.Object} is {currentResult.Answer}");
                }
                else
                {
                    builder.Append($"{currentResult.Subject} is {currentResult.Answer}");
                }
            }
            builder.Append(".");
            responseText = builder.ToString();

            var outMessage = MessageCreator.CreateOutgoingMessage(originalMessage.Origin, HumanInterface.Name, responseText);

            return(outMessage);
        }
Example #4
0
    private void OnMouseUp()
    {
        NoUsable.NoUse++;
        switch (NoUsable.NoUse)
        {
        case (1):
            MessageCreator.CreateMsg("啊哦", "(⊙﹏⊙)这个功能似乎还没做...");
            break;

        case (2):
            MessageCreator.CreateMsg("啊哦", "(⊙﹏⊙)真的没有做啦...");
            break;

        case (3):
            MessageCreator.CreateMsg("傻逼404", "┑( ̄Д  ̄)┍大家都知道shit404很懒呀...");
            break;

        case (4):
            MessageCreator.CreateMsg("生气气", "━┳━ ━┳━为什么你不愿意听我的劝告呢");
            break;

        case (5):
            MessageCreator.CreateMsg("不理你了哦", "你没有更重要的事情要做了吗?-UT");
            break;

        default:
            MessageCreator.CreateMsg("null", "气到没有文字");
            break;
        }
    }
Example #5
0
        public static Task <int> CreateMessageAsync(this ActionScheduler actionScheduler, string message)
        {
            message.ThrowIfNullOrEmpty(nameof(message));

            var action = new MessageCreator(message);

            return(actionScheduler.ScheduleActionAsync <int>(action));
        }
Example #6
0
        /// <summary>
        /// Instantiates an instance of T and adds it to the list.
        /// </summary>
        /// <typeparam name="T">The type to instantiate.</typeparam>
        /// <param name="list">The list to which to add the new element</param>
        /// <param name="constructor">An action for setting properties of the created instance.</param>
        public static void Add <T>(this IList <T> list, Action <T> constructor) where T : IMessage
        {
            if (MessageCreator == null)
            {
                throw new InvalidOperationException("MessageCreator has not been set.");
            }

            list.Add(MessageCreator.CreateInstance(constructor));
        }
Example #7
0
        public void Register(int messageId, MessageCreator creator)
        {
            if (messages.ContainsKey(messageId))
            {
                throw new InvalidOperationException(string.Format("Message #{0} is already defined", messageId));
            }

            messages.Add(messageId, creator);
        }
        /// <summary>
        /// Instantiates an instance of T and adds it to the list.
        /// </summary>
        /// <typeparam name="T">The type to instantiate.</typeparam>
        /// <param name="list">The list to which to add the new element</param>
        /// <param name="initializer">An action for setting properties of the created instance.</param>
        public static void Add <T>(this IList <T> list, Action <T> initializer)
        {
            if (MessageCreator == null)
            {
                throw new InvalidOperationException("MessageCreator has not been set.");
            }

            list.Add(MessageCreator.CreateInstance(initializer));
        }
        public async Task WhenSubscriberDoesNotExist_ThenResponseContainsThanksMessage()
        {
            var mockRepository = new Mock <ISubscribersRepository>();

            var messageCreator = new MessageCreator(mockRepository.Object);
            var message        = await messageCreator.Create("555-5555", "");

            StringAssert.Contains("Thanks", message);
            mockRepository.Verify(r => r.CreateAsync(It.IsAny <Subscriber>()), Times.Once);
        }
Example #10
0
    static async Task AsyncMain()
    {
        Console.Title = "Samples.Serialization.TransitionPhase3";
        var endpointConfiguration = new EndpointConfiguration("Samples.Serialization.TransitionPhase3");

        endpointConfiguration.SharedConfig();

        #region Phase3

        var settingsV2 = new JsonSerializerSettings
        {
            Formatting       = Formatting.Indented,
            ContractResolver = new ExtendedResolver()
        };
        var serializationV2 = endpointConfiguration.UseSerialization <NewtonsoftSerializer>();
        serializationV2.Settings(settingsV2);
        serializationV2.ContentTypeKey("jsonv2");

        var settingsV1 = new JsonSerializerSettings
        {
            Formatting = Formatting.Indented
        };
        var serializationV1 = endpointConfiguration.AddDeserializer <NewtonsoftSerializer>();
        serializationV1.Settings(settingsV1);
        serializationV1.ContentTypeKey("jsonv1");

        #endregion

        var endpointInstance = await Endpoint.Start(endpointConfiguration)
                               .ConfigureAwait(false);

        try
        {
            #region send-to-both
            var message = MessageCreator.NewOrder();
            await endpointInstance.SendLocal(message)
            .ConfigureAwait(false);

            await endpointInstance.Send("Samples.Serialization.TransitionPhase2", message)
            .ConfigureAwait(false);

            await endpointInstance.Send("Samples.Serialization.TransitionPhase4", message)
            .ConfigureAwait(false);

            #endregion
            Console.WriteLine("Order Sent");
            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }
        finally
        {
            await endpointInstance.Stop()
            .ConfigureAwait(false);
        }
    }
Example #11
0
        public bool Notify(IEnumerable <Lesson> lessons)
        {
            var messages = MessageCreator.CreateUserFriendlyMessage(lessons);

            foreach (var message in messages)
            {
                System.Console.WriteLine(message);
            }

            return(true);
        }
Example #12
0
    static async Task Main()
    {
        //required to prevent possible occurrence of .NET Core issue https://github.com/dotnet/coreclr/issues/12668
        Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
        Thread.CurrentThread.CurrentCulture   = new CultureInfo("en-US");

        Console.Title = "Samples.Serialization.TransitionPhase3";
        var endpointConfiguration = new EndpointConfiguration("Samples.Serialization.TransitionPhase3");

        endpointConfiguration.SharedConfig();

        #region Phase3

        var settingsV2 = new JsonSerializerSettings
        {
            Formatting       = Formatting.Indented,
            ContractResolver = new ExtendedResolver()
        };
        var serializationV2 = endpointConfiguration.UseSerialization <NewtonsoftSerializer>();
        serializationV2.Settings(settingsV2);
        serializationV2.ContentTypeKey("jsonv2");

        var settingsV1 = new JsonSerializerSettings
        {
            Formatting = Formatting.Indented
        };
        var serializationV1 = endpointConfiguration.AddDeserializer <NewtonsoftSerializer>();
        serializationV1.Settings(settingsV1);
        serializationV1.ContentTypeKey("jsonv1");

        #endregion

        var endpointInstance = await Endpoint.Start(endpointConfiguration)
                               .ConfigureAwait(false);

        #region send-to-both
        var message = MessageCreator.NewOrder();
        await endpointInstance.SendLocal(message)
        .ConfigureAwait(false);

        await endpointInstance.Send("Samples.Serialization.TransitionPhase2", message)
        .ConfigureAwait(false);

        await endpointInstance.Send("Samples.Serialization.TransitionPhase4", message)
        .ConfigureAwait(false);

        #endregion
        Console.WriteLine("Order Sent");
        Console.WriteLine("Press any key to exit");
        Console.ReadKey();
        await endpointInstance.Stop()
        .ConfigureAwait(false);
    }
Example #13
0
 public static void Load()
 {
     string[] Data = PlayerPrefs.GetString("global", "").Split('丨');
     try{
         JsonUtility.FromJsonOverwrite(Data[0], ItemSystem.PItems);
         JsonUtility.FromJsonOverwrite(Data[1], Saves);
         JsonUtility.FromJsonOverwrite(Data[2], TeamController.Team);
     }catch {
         MessageCreator.CreateMsg("存档损坏", "≧ ﹏ ≦ 存档因为不明原因无法读取!");
     }
     Debug.Log("reload " + ItemSystem.PItems.Data.Count + " items, " + Saves.Data.Count + " value.");
 }
Example #14
0
        public void Register <TEnum>(TEnum messageId, MessageCreator creator)
            where TEnum : struct, IConvertible
        {
            if (!typeof(TEnum).IsEnum)
            {
                throw new ArgumentException("Type of messageId must be an enum");
            }

            var intMessageId = ((IConvertible)messageId).ToInt32(Thread.CurrentThread.CurrentCulture);

            Register(intMessageId, creator);
        }
Example #15
0
    public FileSystemFixture()
    {
        var managementOptions = new ManagementOptions()
        {
            ApiKey         = "Dummy_API_key",
            ProjectId      = PROJECT_ID,
            SubscriptionId = SUBCRIPTION_ID
        };

        _urlBuilder     = new EndpointUrlBuilder(managementOptions);
        _messageCreator = new MessageCreator(managementOptions.ApiKey);
    }
Example #16
0
 static async Task SendMsgAsync(CancellationToken ct, Socket clientSocket)
 {
     while (!ct.IsCancellationRequested)
     {
         for (int i = 0; i < 100; i++)
         {
             var msg = MessageCreator.CreateOneMessage(1016);
             clientSocket.Send(msg.ToByteArray());
             Log.Information(msg.Body);
         }
         await Task.Delay(5000);
     }
 }
        public async Task <ActionResult> Register(string from, String body)
        {
            var phoneNumber = from;
            var message     = body;

            var messageCreator = new MessageCreator(_repository);
            var outputMessage  = await messageCreator.Create(phoneNumber, message);

            var response = new TwilioResponse();

            response.Message(outputMessage);

            return(TwiML(response));
        }
        public void Setup()
        {
            _msg1      = MessageCreator.CreateOneMessage(_bodyLength1);
            _msg2      = MessageCreator.CreateOneMessage(_bodyLength2);
            _msgReader = new MessageReader();

            _header1 = _msg1.HeaderByte;
            _length1 = BitConverter.GetBytes(_msg1.Body.Length + 8);
            _body1   = Encoding.UTF8.GetBytes(_msg1.Body);

            _header2 = _msg2.HeaderByte;
            _length2 = BitConverter.GetBytes(_msg2.Body.Length + 8);
            _body2   = Encoding.UTF8.GetBytes(_msg2.Body);
        }
        public async Task WhenSubscriberExistAndMessageIsNotAllowed_ThenResponseContainsSorryMessage()
        {
            var mockRepository = new Mock <ISubscribersRepository>();

            mockRepository.Setup(r => r.FindByPhoneNumberAsync(It.IsAny <string>()))
            .ReturnsAsync(new Subscriber {
                PhoneNumber = "555-5555"
            });

            var messageCreator = new MessageCreator(mockRepository.Object);
            var message        = await messageCreator.Create("555-5555", "create");

            StringAssert.Contains("Sorry", message);
        }
Example #20
0
        public static IContainer Registers()
        {
            var builder = new ContainerBuilder();

            builder.RegisterType <EmailMessage>().As <IEmailMessage>();
            builder.RegisterType <LineMessage>().As <ILineMessage>();
            builder.RegisterType <EmailMessage>().AsSelf();
            builder.RegisterType <LineMessage>().AsSelf();

            //Init Factory
            MessageCreator.Init(builder);

            return(builder.Build());
        }
Example #21
0
    private void OnMouseUp()
    {
        InputField t = GameObject.Find("NameBox").GetComponent <InputField>();

        t.text = t.text.Replace(" ", "").Replace(" ", "");
        if (t.text.Length != 4)
        {
            MessageCreator.CreateMsg("名字输入错误", "请输入4个字的名字哦,不能任性。");
        }
        else
        {
            DataCenter.Put("name", t.text);
            this.transform.parent.gameObject.GetComponent <Animator>().speed = 1;
        }
    }
        public async Task WhenSubscriberExistAndMessageIsUnsubscribe_ThenResponseContainsUnsubscribedMessage()
        {
            var mockRepository = new Mock <ISubscribersRepository>();

            mockRepository.Setup(r => r.FindByPhoneNumberAsync(It.IsAny <string>()))
            .ReturnsAsync(new Subscriber {
                PhoneNumber = "555-5555"
            });

            var messageCreator = new MessageCreator(mockRepository.Object);
            var message        = await messageCreator.Create("555-5555", "remove");

            StringAssert.Contains("unsubscribed", message);
            mockRepository.Verify(r => r.UpdateAsync(It.IsAny <Subscriber>()), Times.Once);
        }
Example #23
0
        public async Task <IPurposeFullfillment> WorkAsync(IContext context, IKalos message)
        {
            var purposeFullfillment = new PurposeFullfillment();

            if (!context.AddressedToSelf)
            {
                purposeFullfillment.Weight = -1;
                return(purposeFullfillment);
            }
            var outgoingMessage = MessageCreator.CreateOutgoingMessage(message.Origin, HumanInterface.Name, Response);

            purposeFullfillment.AddMessage(outgoingMessage);
            purposeFullfillment.Weight = 1;

            return(purposeFullfillment);
        }
Example #24
0
 public ParticleTeleport(
     MenuManager menumanager,
     Unit myhero,
     MessageCreator messagecreator,
     SoundPlayer soundplayer,
     Colors colors,
     GlobalMiniMap globalminiMap,
     GlobalWorld globalworld)
 {
     MenuManager    = menumanager;
     MyHero         = myhero;
     MessageCreator = messagecreator;
     SoundPlayer    = soundplayer;
     Colors         = colors;
     GlobalMiniMap  = globalminiMap;
     GlobalWorld    = globalworld;
 }
Example #25
0
 public ParticleSpells(
     MenuManager menumanager,
     Unit myhero,
     Dangerous dangerous,
     MessageCreator messagecreator,
     SoundPlayer soundplayer,
     Colors colors,
     DrawHelper drawhelper)
 {
     MenuManager    = menumanager;
     MyHero         = myhero;
     Dangerous      = dangerous;
     MessageCreator = messagecreator;
     SoundPlayer    = soundplayer;
     Colors         = colors;
     DrawHelper     = drawhelper;
 }
Example #26
0
        public async Task <bool> Send(IEmailMessage message)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            if (message.SendableDate > LocalTime.Now)
            {
                Log.Info($"Skipping Send() command for IEmailMessage ({message.GetId()}). SendableDate is in the future.");
                await Repository.SaveForFutureSend(message);

                return(false);
            }

            using (var mail = await MessageCreator.Create(message))
            {
                if (mail.To.None() && mail.CC.None() && mail.Bcc.None())
                {
                    Log.Info($"Mail message {message.GetId()} will not be sent as there is no effective recipient.");
                    return(false);
                }

                try
                {
                    await Sending.Raise(new EmailSendingEventArgs(message, mail));

                    await Dispatcher.Dispatch(mail, message);

                    await Repository.RecordEmailSent(message);

                    await Sent.Raise(new EmailSendingEventArgs(message, mail));

                    return(true);
                }
                catch (Exception ex)
                {
                    await SendError.Raise(new EmailSendingEventArgs(message, mail) { Error = ex });

                    await Repository.RecordRetry(message);

                    Log.Error(ex, $"Error in sending an email for this EmailQueueItem of '{message.GetId()}' because : " + Environment.NewLine + ex.ToFullMessage());
                    return(false);
                }
            }
        }
        public async static Task Run([TimerTrigger("0 0 4-23 * * *")] TimerInfo myTimer, ILogger log)

        {
            log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");

            string str = Environment.GetEnvironmentVariable("sqldb_connectionstring");

            using SqlConnection conn = new SqlConnection(str);
            conn.Open();
            List <LegoSet> updatedSets = DbUtils.GetSetsWithEmailToSend(conn);

            List <Subscription> subscriptions = DbUtils.GetActiveSubscriptions(conn);
            Dictionary <(int number, bool isBigUpdate), MailMessage> messages = MessageCreator.GetMessagesForUpdatedSets(updatedSets);

            await EmailSender.SendEmails(subscriptions, messages);

            DbUtils.UpdateSetsAfterSendingEmails(conn, updatedSets);
        }
Example #28
0
        public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "requestinfocreator")] HttpRequest req,
            ILogger log,
            ExecutionContext context)
        {
            IConfigurationRoot config = new ConfigurationBuilder()
                                        .SetBasePath(context.FunctionAppDirectory)
                                        .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
                                        .AddEnvironmentVariables()
                                        .Build();

            string  requestBody = await new StreamReader(req.Body).ReadToEndAsync();
            dynamic data        = JsonConvert.DeserializeObject(requestBody);

            try
            {
                string content   = data.content;
                string secretkey = data.secretkey;
                string endpoint  = data.endpoint;

                byte[] contentData = Encoding.UTF8.GetBytes(content);

                string now = DateTime.Now.ToString("O");

                string contentMd5    = MessageCreator.CalculateMD5Hash(content);
                string message       = MessageCreator.GenerateMessage(contentMd5, now, content, endpoint);
                string signature     = SignatureCreator.GenerateSignature(secretkey, message);
                int    contentLength = contentData.Length;

                var returnVal = new
                {
                    contentMd5,
                    signature,
                    now,
                    contentLength
                };

                return((ActionResult) new OkObjectResult(JsonConvert.SerializeObject(returnVal)));
            }
            catch (Exception e)
            {
                return(new BadRequestObjectResult("Error in PostiviidakkoRequestInfoCreator: " + e.ToString()));
            }
        }
Example #29
0
        public async Task ProcessQueueMessage([QueueTrigger("text-messages")] TextMessageMsg message)
        {
            var twilioClient = new TwilioRestClient(_twilioOptions.AccountSid, _twilioOptions.AuthToken);

            var request = new MessageCreator(
                _twilioOptions.AccountSid,
                new PhoneNumber(message.Recipient),
                new PhoneNumber(_twilioOptions.PhoneNumber),
                message.Content);

            var response = await request.ExecuteAsync(twilioClient);

            var errorCode = response.GetErrorCode();

            if (errorCode != null)
            {
                // log error, throw exception
                // will be requeued, ensure that errorCode means wasn't sent
                throw new Exception("Error sending Twilio message");
            }
        }
Example #30
0
        public Common()
        {
            MenuConfig = new MenuConfig();

            MessageCreator = new MessageCreator(this);
            SoundHelper    = new SoundHelper(this);

            AllyOverlay   = new AllyOverlay(this);
            EnemyOverlay  = new EnemyOverlay(this);
            NetworthPanel = new NetworthPanel(this);

            Verification = new Verification(this);

            SpiritBreakerCharge       = new SpiritBreakerCharge(this);
            MiranaArrow               = new MiranaArrow(this);
            InvokerEMP                = new InvokerEMP(this);
            InvokerSunStrike          = new InvokerSunStrike(this);
            KunkkaTorrent             = new KunkkaTorrent(this);
            LeshracSplitEarth         = new LeshracSplitEarth(this);
            LifeStealerInfest         = new LifeStealerInfest(this);
            LinaLightStrikeArray      = new LinaLightStrikeArray(this);
            PhantomAssassinBlur       = new PhantomAssassinBlur(this);
            PudgeHook                 = new PudgeHook(this);
            AncientApparitionIceBlast = new AncientApparitionIceBlast(this);
            BloodseekerRupture        = new BloodseekerRupture(this);
            WindrunnerPowershot       = new WindrunnerPowershot(this);

            //IllusionShow = new IllusionShow(this);
            LinkenShow  = new LinkenShow(this);
            Additional  = new Additional(this);
            TowerHelper = new TowerHelper(this);
            //VisibleByEnemy = new VisibleByEnemy(this);
            TrueSightVision = new TrueSightVision(this);
            Range           = new Range(this);

            ParticleMonitor = new ParticleMonitor(this);
            UnitMonitor     = new UnitMonitor(this);
            ModifierMonitor = new ModifierMonitor(this);
        }