Example #1
0
        /// <summary>
        /// Constructor for the data parser.
        /// </summary>
        /// <param name="interaction">Interaction to be parsed</param>
        public InteractionDataParsed(DiscordInteraction interaction)
        {
            Interaction = interaction;
            Data        = interaction.Data;
            //Check if MessageComponent and parse data accordingly
            if (Data.ComponentType.HasValue)
            {
                TriggeredComponentId = Data.CustomId;
                if (Data.ComponentType == MessageComponentType.SelectMenu)
                {
                    SelectMenuValues = Data.Values;
                }
                return;
            }
            Type    = Data.Type;
            Command = Data.Name;
            //If ApplicationCommand is Message or User it can't have arguments
            if (Type == ApplicationCommandType.Message || Type == ApplicationCommandType.User)
            {
                return;
            }

            UserOxideLocale  = LocaleConverter.GetOxideLocale(interaction.Locale);
            GuildOxideLocale = LocaleConverter.GetOxideLocale(interaction.GuildLocale);

            //Parse the arguments for the application command
            ParseCommand(Data.Options);
        }
        public void LocaleConverter_InvalidFromLocale()
        {
            LocaleConverter localeConverter = LocaleConverter.Converter;

            Assert.ThrowsException <InvalidOperationException>(() =>
                                                               localeConverter.Convert("Book me a plane ticket for France on 12/25/2018", "na-na", "en-us"));
        }
        public void LocaleConverter_DateOnly()
        {
            LocaleConverter localeConverter = LocaleConverter.Converter;

            var convertedMessage = localeConverter.Convert("02/03/2010", "en-us", "fr-fr");

            Assert.IsNotNull(convertedMessage);
            Assert.AreEqual("03/02/2010", convertedMessage);
        }
        public void LocaleConverter_DateAndTime()
        {
            LocaleConverter localeConverter = LocaleConverter.Converter;

            var convertedMessage = localeConverter.Convert("half past 9 am 02/03/2010", "en-us", "fr-fr");

            Assert.IsNotNull(convertedMessage);
            Assert.AreEqual("03/02/2010 09:30", convertedMessage);
        }
        public void LocaleConverter_ConvertToChinese()
        {
            LocaleConverter localeConverter = LocaleConverter.Converter;

            var convertedMessage = localeConverter.Convert("Book me a plane ticket for France on 12/25/2018", "en-us", "zh-cn");

            Assert.IsNotNull(convertedMessage);
            Assert.AreEqual("Book me a plane ticket for France on 2018/12/25", convertedMessage);
        }
        public void LocaleConverter_ConvertTimeFromSpanishSpain()
        {
            LocaleConverter localeConverter = LocaleConverter.Converter;

            var convertedMessage = localeConverter.Convert("Book a meeting for 15:00", "es-es", "en-us");

            Assert.IsNotNull(convertedMessage);
            Assert.AreEqual("Book a meeting for 3:00 PM", convertedMessage);
        }
        public void LocaleConverter_TimeRange()
        {
            LocaleConverter localeConverter = LocaleConverter.Converter;

            var convertedMessage = localeConverter.Convert("from 9 am to 1 pm", "en-us", "fr-fr");

            Assert.IsNotNull(convertedMessage);
            Assert.AreEqual("09:00 - 13:00", convertedMessage);
        }
        public void LocaleConverter_ConvertFromFrench()
        {
            LocaleConverter localeConverter = LocaleConverter.Converter;

            var convertedMessage = localeConverter.Convert("Set a meeting on 30/9/2017", "fr-fr", "en-us");

            Assert.IsNotNull(convertedMessage);
            Assert.AreEqual("Set a meeting on 9/30/2017", convertedMessage);
        }
        public void LocaleConverter_DateRange()
        {
            LocaleConverter localeConverter = LocaleConverter.Converter;

            var convertedMessage = localeConverter.Convert("from 10/21/2018 to 10/23/2018", "en-us", "fr-fr");

            Assert.IsNotNull(convertedMessage);
            Assert.AreEqual("21/10/2018 - 23/10/2018", convertedMessage);
        }
        public void LocaleConverter_DateAndTimeRange()
        {
            LocaleConverter localeConverter = LocaleConverter.Converter;

            var convertedMessage = localeConverter.Convert("from 10/21/2018 9 am to 10/23/2018 1 pm", "en-us", "fr-fr");

            Assert.IsNotNull(convertedMessage);
            Assert.AreEqual("21/10/2018 09:00 - 23/10/2018 13:00", convertedMessage);
        }
        public void LocaleConverter_TimeOnly()
        {
            LocaleConverter localeConverter = LocaleConverter.Converter;

            var convertedMessage = localeConverter.Convert("half past 9 am", "en-us", "fr-fr");

            Assert.IsNotNull(convertedMessage);
            Assert.AreEqual("09:30", convertedMessage);
        }
        public void LocaleConverter_InvalidToLocale()
        {
            LocaleConverter localeConverter = LocaleConverter.Converter;

            Assert.ThrowsException <InvalidOperationException>(() =>
                                                               localeConverter.Convert("Book me a plane ticket for France on 12/25/2018", "en-us", "na-na"));
            Assert.ThrowsException <InvalidOperationException>(() =>
                                                               localeConverter.Convert("Book me a plane ticket for France on 12/25/2018", "en-us", "Weird Locale"));
            Assert.ThrowsException <InvalidOperationException>(() =>
                                                               localeConverter.Convert("Book me a plane ticket for France on 12/25/2018", "en-us", "fr-"));
            Assert.ThrowsException <ArgumentNullException>(() =>
                                                           localeConverter.Convert("Book me a plane ticket for France on 12/25/2018", "en-us", String.Empty));
            Assert.ThrowsException <ArgumentNullException>(() =>
                                                           localeConverter.Convert("Book me a plane ticket for France on 12/25/2018", "en-us", null));
        }
 private string GenerateDummyToken()
 {
     return(LocaleConverter.ToUrlSafeBase64(Guid.NewGuid().ToByteArray()));
 }