示例#1
0
        public static int DeleteModerator(Moderator mod)
        {
            var sql = CreateCommand();

            sql.CommandText = @"UPDATE moderators SET updateDt = DATE('now'),isEnabled = ?isEnabled) WHERE id = ?id;";

            var p0 = sql.CreateParameter();

            p0.ParameterName = "?id";
            p0.Value         = mod.Id;
            sql.Parameters.Add(p0);

            return(ExecuteNonQuery(sql));
        }
示例#2
0
        private void CommandMotion(ChatCommand cmd, Moderator mod)
        {
            var usage = "usage: $vote motion [text of the motion]";

            if (cmd.Args.Length == 0)
            {
                WriteUser(usage, mod, cmd.Source);
                return;
            }

            WriteUser("Submitting your motion...this make take a second.", mod, cmd.Source);
            var motion = Motion.Create(mod, cmd.Args);

            var result = "Motion entered [" + motion.Id.ToString() + "]: " + motion.PostUrl;

            WriteChannel(result, ChatProviderType.All);
        }
示例#3
0
        private void WriteUser(string message, Moderator user, ChatProviderType provider = ChatProviderType.All)
        {
            List <IChatProvider> providers = new List <IChatProvider>();

            if (provider == ChatProviderType.All)
            {
                foreach (var item in this.ChatProviders)
                {
                    providers.Add(item);
                }
            }
            else
            {
                providers = this.ChatProviders.Where(p => p.Type == provider).ToList();
            }

            foreach (IChatProvider p in providers)
            {
                p.WriteUser(message, user);
            }
        }
示例#4
0
        public static int UpdateModerator(Moderator mod)
        {
            var sql = CreateCommand();

            sql.CommandText = @"UPDATE moderators SET updateDt = DATE('now'),userName = ?name,text = ?text,slackId = ?slackId, isEnabled = ?isEnabled) WHERE id = ?id;";

            var pId = sql.CreateParameter();

            pId.ParameterName = "?id";
            pId.Value         = mod.Id;
            sql.Parameters.Add(pId);

            var p0 = sql.CreateParameter();

            p0.ParameterName = "?name";
            p0.Value         = mod.Name;
            sql.Parameters.Add(p0);

            var p1 = sql.CreateParameter();

            p1.ParameterName = "?ircId";
            p1.Value         = mod.IrcId;
            sql.Parameters.Add(p1);

            var p2 = sql.CreateParameter();

            p2.ParameterName = "?slackId";
            p2.Value         = mod.SlackId;
            sql.Parameters.Add(p2);

            var p3 = sql.CreateParameter();

            p3.ParameterName = "?isEnabled";
            p3.Value         = mod.IsEnabled;
            sql.Parameters.Add(p3);

            return(ExecuteNonQuery(sql));
        }
示例#5
0
        private void CommandCast(ChatCommand cmd, Moderator mod)
        {
            var usage = "usage: $vote cast [choice]{ yes | no | abstain } [motion id] ";

            if (cmd.Args.Length == 0)
            {
                WriteUser(usage, mod, cmd.Source);
                return;
            }

            var stuff = cmd.Args.Split(' ');

            if (stuff.GetUpperBound(0) < 1)
            {
                WriteUser(usage, mod, cmd.Source);
                return;
            }

            var id = -1;

            try
            {
                id = Int32.Parse(stuff[1]);
            }
            catch
            {
                WriteUser(usage, mod, cmd.Source);
                return;
            }

            Choice c     = Choice.Abstain;
            bool   error = false;

            switch (stuff[0].ToLower())
            {
            case "yes":
            case "y":
            case "+1":
            case "yay":
            case "yae":
            case "yea":
            case "oui":
            case "si":
            case "ja":
            case "da":
                c = Choice.Yes;
                break;

            case "no":
            case "n":
            case "-1":
            case "nae":
            case "nay":
            case "non":
            case "nein":
            case "neit":
                c = Choice.No;
                break;

            case "abstain":
            case "abs":
            case "0":
                c = Choice.Abstain;
                break;

            default:
                error = true;
                break;
            }

            if (error)
            {
                WriteUser(usage, mod);
                return;
            }

            WriteUser("Submitting ballot.  Please wait.", mod, cmd.Source);

            var motion = Motion.GetMotion(id);
            var b      = new Ballot();

            b.Choice    = c;
            b.Moderator = mod;
            b.Motion    = motion;
            b.Insert();

            WriteUser("Your ballot has been recorded", mod, cmd.Source);
        }