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)
                {
                }
            }
        }