示例#1
0
        internal ICollection <EventTaskAssignment> ReadRunnerReminderCsvForEvent(string filepath, ulong eventId)
        {
            using var reader            = new StreamReader(filepath);
            using var csv               = new CsvReader(reader, CultureInfo.InvariantCulture);
            csv.Configuration.Delimiter = ";";

            var assignmentsList = new List <EventTaskAssignment>();

            csv.Read();
            csv.ReadHeader();

            while (csv.Read())
            {
                var userName = csv.GetField <string>(DiscordUserHeader).Split('#');
                var user     = UserUtils.GetUserByDiscordName(_client, userName[0], userName[1]);
                var game     = csv.GetField <string>(GameHeader);

                var record = new EventTaskAssignment
                {
                    Content       = $"@<{user.Id}> your run for {game} is coming up!",
                    Type          = ReminderTypes.Run,
                    TaskStartTime = csv.GetField <DateTime>(ScheduleTimeHeader),
                    AssignedUser  = user,
                    EventId       = eventId
                };
            }

            return(assignmentsList);
        }
示例#2
0
        public async Task AddOneTimeDebugReminder(string msg, string targetUser, string evnt = "")
        {
            var validUser = ulong.TryParse(targetUser, out var userId);

            if (validUser == false)
            {
                await ReplyAsync($"{targetUser} is not a valid userId");

                return;
            }

            var user         = new User(userId);
            var evntToAssign = new EventRepository().GetNextEventForGuild(Context.Guild.Id);

            var reminder = new EventTaskAssignment
            {
                Content      = msg,
                Type         = ReminderTypes.DebugTask,
                AssignedUser = user
            };
        }