protected virtual WebHookData.Embed GetEmbedFrame(Grouping grouping, IEnumerable <ParsedData> values) { var dates = values.Select(log => log.Log.Date.Date).Distinct().ToList(); dates.Sort(); var authorName = GetDateString(dates.First()); if (dates.Count > 1) { authorName += " - " + GetDateString(dates.Last()); } var author = new WebHookData.Author(authorName, "", ""); var thumbmail = new WebHookData.Thumbmail(grouping.AvatarURL); var name = grouping.Name; if (!string.IsNullOrWhiteSpace(grouping.PostFix)) { name += " " + grouping.PostFix; } var current = new WebHookData.Embed(author, name, ColorDefault, new List <WebHookData.Field>(), thumbmail); return(current); }
protected virtual IEnumerable <WebHookData.Embed> GetEmbeds(IEnumerable <KeyValuePair <Grouping, IEnumerable <ParsedData> > > groupedData) { List <WebHookData.Embed> embeds = new List <WebHookData.Embed>(); foreach (var group in groupedData) { var grouping = group.Key; var values = group.Value; var current = GetEmbedFrame(grouping, values); var color = GetColor(values.Select(data => data.Log)); current.Color = color; foreach (var data in values) { current.Fields.Add(data.Field); var currentLenght = current.ToString().Length; if (current.Fields.Count >= WebHookData.Embed.MAX_FIELDS) { if (currentLenght > WebHookData.Embed.MAX_LENGHT) { current.Fields.RemoveAt(current.Fields.Count - 1); } embeds.Add(current); current = new WebHookData.Embed(null, "", color, new List <WebHookData.Field>(), null); if (currentLenght > WebHookData.Embed.MAX_LENGHT) { current.Fields.Add(data.Field); } } } embeds.Add(current); } return(embeds); }