private void SyncCorpMembers(CRONJob settings) { if (settings.Enabled) { try { var members = Api.GetCorpMembers(Convert.ToInt64(Properties.Settings.Default.CorpAPI), Properties.Settings.Default.VCode); if ((members != null) && (members.Count > 0)) { using (var db = new ApplicationDbContext()) { members.ForEach(member => db.CorpMembers.AddOrUpdate(member) ); db.SaveChanges(); var membersToDelete = new List <Member>(); db.CorpMembers.ToList().ForEach(member => { if (!members.Any(mem => mem.ID == member.ID)) { membersToDelete.Add(member); } }); membersToDelete.ForEach(member => db.CorpMembers.Remove(member) ); settings.LastRun = DateTime.UtcNow; db.SaveChanges(); } } } catch (Exception ex) { } } }
private void CrossPost(CRONJob settings) { if (settings.Enabled) { try { var client = new Client { UserName = DiscordEmail, Password = DiscordPassword }; if (client.Logon()) { var messages = client.GetMessages(DiscordChannel); if (settings.LastRun == null) { messages = messages.OrderBy(msg => msg.timestamp).ToList(); messages.Where(msg => ((DateTime.Now - msg.timestamp).Days < 1) && (msg.content.Contains("To: coalition_pings"))).ToList().ForEach(msg => { var payload = new MessagePayload(); payload.Attachments = new List <MessagePayloadAttachment>(); payload.Attachments.Add(new MessagePayloadAttachment() { Text = msg.content.Replace("@everyone", "@channel"), Title = string.Format("{0}: Message from {1}", msg.timestamp.ToString("yyyy-MM-dd HH:mm:ss"), msg.author.username), Colour = "#ff6600" }); Plugin.SendToRoom(payload, SlackRoom, Properties.Settings.Default.SlackWebhook, msg.author.username); foreach (var webhook in Properties.Settings.Default.DiscordLinkSlackWebhooks) { Plugin.SendToRoom(payload, SlackRoom, webhook, msg.author.username); } }); } else { messages = messages.OrderBy(msg => msg.timestamp).ToList(); messages.Where(msg => (msg.timestamp.AddMilliseconds(-msg.timestamp.Millisecond) > settings.LastRun.Value.AddMilliseconds(-settings.LastRun.Value.Millisecond) && (msg.content.Contains("To: coalition_pings")) )).ToList().ForEach(msg => { var payload = new MessagePayload(); payload.Attachments = new List <MessagePayloadAttachment>(); payload.Attachments.Add(new MessagePayloadAttachment() { //AuthorName = msg.author.username, //AuthorIcon = "http://www.r3mus.org/Images/jarvis.png", Text = msg.content.Replace("@everyone", "@channel"), Title = string.Format("{0}: Message from {1}", msg.timestamp.ToString("yyyy-MM-dd HH:mm:ss"), msg.author.username), Colour = "#ff6600" }); Plugin.SendToRoom(payload, SlackRoom, Properties.Settings.Default.SlackWebhook, msg.author.username); foreach (var webhook in Properties.Settings.Default.DiscordLinkSlackWebhooks) { Plugin.SendToRoom(payload, SlackRoom, webhook, msg.author.username); } }); } settings.LastRun = messages.LastOrDefault().timestamp.AddMinutes(1); client.LogOut(); } } catch (Exception ex) { } } }