Example #1
0
        public IServiceProvider BuildServiceProvider()
        {
            var logger    = new LogService(_discordClient);
            var dbService = new AnspiritDatabaseService(logger);

            return(new ServiceCollection()
                   .AddSingleton(_discordClient)
                   .AddSingleton(_commands)
                   .AddSingleton(logger)
                   .AddSingleton <AnspiritSheetsService>()
                   .AddSingleton <AnzacSpiritService>()
                   .AddSingleton(dbService)
                   .BuildServiceProvider());
        }
Example #2
0
        public static async Task <IEnumerable <Embed> > GetOfficerNotesEmbedsAsync(IUser user, AnspiritDatabaseService dbService, string category = null)
        {
            var notes = dbService.GetOfficerNotes(user.Id);

            if (category != null)
            {
                var categoryID = await dbService.GetOfficerNotesCategoryIDFromNameAsync(category);

                notes = notes.Where(x => x.CategoryID == categoryID);
            }
            var membersRole = GetUserGuildRole(user);
            var embedColor  = membersRole == null ? Color.Green : membersRole.Color;

            var stringBuilder = new StringBuilder();

            foreach (var note in notes)
            {
                var    formattedDate = note.DateTimeEntry.ToString("dd/MM/yyyy");
                string categoryName;
                try
                {
                    categoryName = await dbService.GetOfficerNotesCategoryNameFromIDAsync(note.CategoryID);
                }
                catch
                {
                    categoryName = "<Not Found>";
                }

                stringBuilder.Append($"**{categoryName} | {formattedDate}**{Environment.NewLine}{note.Comments}");
                stringBuilder.Append(Environment.NewLine);
                if (note.Comments.Length > 56 || note.Comments.Contains(Environment.NewLine))
                {
                    stringBuilder.Append(Environment.NewLine);
                }
            }

            var embedDescriptions = DiscordMessageUtilities.GetSendableMessages(stringBuilder.ToString());
            var output            = new List <Embed>();

            for (int i = 0; i < embedDescriptions.Length; i++)
            {
                var embedBuilder = new EmbedBuilder
                {
                    Title       = i == 0 ? $"Officer Notes for {user.Username}" : null,
                    Timestamp   = DateTime.Now,
                    Color       = embedColor,
                    Description = embedDescriptions[i]
                };

                output.Add(embedBuilder.Build());
            }
            return(output);
        }