Esempio n. 1
0
        //TODO: Consider different guilds
        private async Task HandleCreating(Objects.Raffle.Raffle raffle)
        {
            var filepath = raffleHelpers.GetRaffleFilepath(raffle.name);

            EmbedBuilder embedBuilder = new EmbedBuilder();

            if (!File.Exists(filepath))
            {
                raffleHelpers.CreateUpdateRaffle(raffle);

                embedBuilder
                .WithTitle(Properties.Resources.TitleLetsDoThis)
                .WithDescription($"{raffle.name} has been successfully created!")
                .WithColor(Color.Green);

                await ReplyAsync("", false, embedBuilder);
            }
            else
            {
                embedBuilder
                .WithTitle(Properties.Resources.TitleHmm)
                .WithDescription($"{raffle.name} already exists")
                .WithColor(Color.Red);

                await ReplyAsync("", false, embedBuilder);
            }
        }
Esempio n. 2
0
        public async Task RaffleAsync([Remainder] string raffleDetails)
        {
            var          userID         = Convert.ToUInt64(raffleDetails.Split(';').FirstOrDefault().Trim(' ', '<', '>', '@'));
            var          raffleName     = raffleDetails.Split(';')[1].Trim(' ');
            var          userToAdd      = Context.Guild.Users.Where(user => user.Id == userID).FirstOrDefault();
            var          noofTickets    = Int32.Parse(raffleDetails.Split(';').LastOrDefault().Trim(' '));
            var          raffleFilepath = raffleHelpers.GetRaffleFilepath(raffleName);
            EmbedBuilder embedBuilder   = new EmbedBuilder();

            if (!File.Exists(raffleFilepath))
            {
                embedBuilder
                .WithTitle(Properties.Resources.TitleUhOh)
                .WithDescription($"{raffleName} does not exist!")
                .WithColor(Color.Red);
                await ReplyAsync("", false, embedBuilder);

                return;
            }
            var raffle = raffleHelpers.GetRaffle(raffleName);

            if (raffle.endDate > DateTime.MinValue)
            {
                embedBuilder
                .WithColor(Color.Red)
                .WithTitle(Properties.Resources.TitleHmm)
                .WithDescription($"{raffle.name} has ended on {raffle.endDate} UTC")
                .AddInlineField("Winner", userHelpers.GetUserName(userHelpers.GetDiscordUser(raffleHelpers.GetRaffleWinner(raffle).discordID, Context)))
                .AddInlineField("Reward", $"{raffle.reward}");

                await ReplyAsync("", false, embedBuilder);

                return;
            }

            if (raffle.participants.Any(participant => participant.discordID == userToAdd.Id))
            {
                embedBuilder
                .WithTitle(Properties.Resources.TitleHmm)
                .WithDescription($"{userHelpers.GetUserName(userToAdd)} is already participating!")
                .WithColor(Color.Red);
                await ReplyAsync("", false, embedBuilder);

                return;
            }

            var newParticipant = userToAdd.ToRaffleParticipant();

            raffle.participants.Add(newParticipant);
            raffleHelpers.CreateUpdateRaffle(raffle);

            embedBuilder
            .WithTitle(Properties.Resources.TitleYay)
            .WithDescription($"{userHelpers.GetUserName(userToAdd)} has been added to {raffle.name}!")
            .WithColor(Color.Green);

            await ReplyAsync("", false, embedBuilder);
        }