private void start_survey(string nick, int nick_access, int survey_num, bot ircbot, IRCConfig conf) { bool survey_found = false; if (Directory.Exists(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "surveys" + Path.DirectorySeparatorChar + "")) { FileInfo fi = new FileInfo(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "surveys" + Path.DirectorySeparatorChar + ""); DirectoryInfo di = fi.Directory; FileSystemInfo[] fsi = di.GetFiles(); if (fsi.GetUpperBound(0) >= 0 && fsi.GetUpperBound(0) >= survey_num) { foreach (survey_info survey in active_surveys) { if (nick.Equals(survey.nick)) { survey_found = true; break; } } if (survey_found == false) { string[] questions = File.ReadAllLines(fsi[survey_num].FullName); if (questions.GetUpperBound(0) > 2) { if (Convert.ToInt32(questions[0]) <= nick_access) { survey_found = true; survey_info tmp_info = new survey_info(); tmp_info.user_submission = true; tmp_info.name = fsi[survey_num].Name.Substring(0, fsi[survey_num].Name.Length - 4); tmp_info.nick = nick; tmp_info.survey_number = survey_num; tmp_info.current_question = 1; tmp_info.survey_id = survey_num; active_surveys.Add(tmp_info); if (!Directory.Exists(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "answers" + Path.DirectorySeparatorChar + tmp_info.name + Path.DirectorySeparatorChar + tmp_info.nick + Path.DirectorySeparatorChar + "")) { Directory.CreateDirectory(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "answers" + Path.DirectorySeparatorChar + tmp_info.name + Path.DirectorySeparatorChar + tmp_info.nick + Path.DirectorySeparatorChar + ""); } if (File.Exists(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "answers" + Path.DirectorySeparatorChar + tmp_info.name + Path.DirectorySeparatorChar + tmp_info.nick + Path.DirectorySeparatorChar + tmp_info.current_question + ".txt")) { File.Delete(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "answers" + Path.DirectorySeparatorChar + tmp_info.name + Path.DirectorySeparatorChar + tmp_info.nick + Path.DirectorySeparatorChar + tmp_info.current_question + ".txt"); File.Create(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "answers" + Path.DirectorySeparatorChar + tmp_info.name + Path.DirectorySeparatorChar + tmp_info.nick + Path.DirectorySeparatorChar + tmp_info.current_question + ".txt"); } else { File.Create(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "answers" + Path.DirectorySeparatorChar + "survey_" + tmp_info.survey_number + Path.DirectorySeparatorChar + tmp_info.nick + Path.DirectorySeparatorChar + tmp_info.current_question + ".txt"); } ircbot.sendData("PRIVMSG", nick + " :You have chosen to take the following survey: " + questions[1]); ircbot.sendData("PRIVMSG", nick + " :You will be presented with a series of questions. After you write the answer, type " + conf.command + "nextquestion to submit your answer and view the next question."); ircbot.sendData("PRIVMSG", nick + " :If at any time during the survey you wish to cancel, type " + conf.command + "cancelsurvey to cancel your current survey and any answers you may have submitted."); string[] owners = questions[2].Split(','); foreach (string owner in owners) { ircbot.sendData("NOTICE", owner + " :" + nick + " has started your survey, \"" + questions[1] + "\""); } ircbot.sendData("PRIVMSG", nick + " :" + questions[3]); } } } else { ircbot.sendData("NOTICE", nick + " :You are already taking a survey. Please finish the current survey or cancel it to choose a new survey."); } } } if (survey_found == false) { ircbot.sendData("NOTICE", nick + " :Sorry, but that survey is not available to you. To view all surveys available to you, please type " + conf.command + "surveys"); } }
private void add_survey(string nick, int survey_access, string survey_name, bot ircbot, IRCConfig conf) { bool survey_found = false; foreach (survey_info survey in active_surveys) { if (nick.Equals(survey.nick)) { survey_found = true; break; } } if (survey_found == false) { if (!Directory.Exists(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "surveys" + Path.DirectorySeparatorChar + "")) { Directory.CreateDirectory(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "surveys" + Path.DirectorySeparatorChar + ""); } FileInfo fi = new FileInfo(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "surveys" + Path.DirectorySeparatorChar + ""); DirectoryInfo di = fi.Directory; FileSystemInfo[] fsi = di.GetFiles(); File.AppendAllText(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "surveys" + Path.DirectorySeparatorChar + "survey_" + (fsi.GetUpperBound(0) + 1).ToString() + ".txt", survey_access.ToString() + Environment.NewLine); File.AppendAllText(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "surveys" + Path.DirectorySeparatorChar + "survey_" + (fsi.GetUpperBound(0) + 1).ToString() + ".txt", survey_name + Environment.NewLine); File.AppendAllText(ircbot.cur_dir + Path.DirectorySeparatorChar + "modules" + Path.DirectorySeparatorChar + "survey" + Path.DirectorySeparatorChar + "surveys" + Path.DirectorySeparatorChar + "survey_" + (fsi.GetUpperBound(0) + 1).ToString() + ".txt", nick + Environment.NewLine); survey_info tmp_info = new survey_info(); tmp_info.name = "survey_" + (fsi.GetUpperBound(0) + 1).ToString(); tmp_info.nick = nick; tmp_info.survey_number = (fsi.GetUpperBound(0) + 1); tmp_info.current_question = 1; tmp_info.user_submission = false; active_surveys.Add(tmp_info); ircbot.sendData("PRIVMSG", nick + " :Please type out a question per line. Once you are finished adding all the questions you want, type " + conf.command + "finishsurvey to submit the finished survey."); ircbot.sendData("PRIVMSG", nick + " :If at any time during the survey you wish to cancel, type " + conf.command + "cancelsurvey to cancel your current survey submission."); } else { ircbot.sendData("PRIVMSG", nick + " :You already have a survey active. Please finish the current survey or cancel it to create a new survey."); } }