Package bg.smoc.model

Examples of bg.smoc.model.Contest


            table.add(row);
            row.add(user.getLogin());
            row.add(user.getPassword());
            StringBuffer contests = new StringBuffer("");
            for (String contestId : user.getContestIds()) {
                Contest contest = contestsHash.get(contestId);
                if (contest != null)
                    contests.append(contest.getName());
                else
                    contests.append("???");
                contests.append(" ");
            }
            row.add(contests.toString());
View Full Code Here


    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        SessionUtil sessionUtil = SessionUtil.getInstance();
        String userLogin = sessionUtil.getLoginManager().getActiveUserLogin(request);
        ContestManager contestManager = sessionUtil.getContestManager();
        Contest contest = contestManager.getContest(request);

        request.setAttribute("userLogin", userLogin);
        request.setAttribute("contest", contest);
        request.setAttribute("time", new SimpleDateFormat("yyyy.MM.dd HH:mm:ss")
                .format(new java.util.Date()));

        Hashtable<String, String> hash = contestManager.queryStatus(contest, userLogin);
        generateTable(request, hash, contest.getTasks());
        request.setAttribute("announcement", generateAnnouncement(contest.getAnnouncement()));

        String errorMessage = getErrorMessage(request.getParameter("error"), contest.isRunning());
        request.setAttribute("errorMessage", errorMessage);

        request.setAttribute("processingSubmit", isProcessingSubmit(hash));
        request.setAttribute("submitProgress", hash.get("submitProgress"));
        request.setAttribute("outputSubmit", hash.get("outputSubmit"));
        request.setAttribute("processingTest", isProcessingTest(hash));
        request.setAttribute("testProgress", hash.get("testProgress"));
        request.setAttribute("outputTest", hash.get("outputTest"));
        request.setAttribute("tasks", contest.getTasks());
        request.setAttribute("languages", Contest.Language.values());

        request.getRequestDispatcher("main.jsp").forward(request, response);
    }
View Full Code Here

  @Override
  protected void service(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    String contestId = request.getParameter("id");
    ContestManager contestManager = SessionUtil.getInstance().getContestManager();
    Contest contest = contestManager.getContest(contestId);
    contest.setRunning(true);
    contest.setTestingOn(true);
    contest.setLastStartTime(new SimpleDateFormat("yyyy.MM.dd HH:mm:ss")
        .format(new java.util.Date()));
    contestManager.updateContest(contest);
    contestManager.scheduleContest(contest);
    response.sendRedirect("contestSetup");
  }
View Full Code Here

            Syslog.log("!OnMsgFeedbackDone: " + Util.stackTrace(e));
        }
    }

    private void swapFeedbackInformationWithGraderCsv(Job job) {
        Contest contest = mediator.getContestManager().getContest(job.getContestId());
        if (contest == null)
            return;
        Task task = contest.getTaskByName(job.getTask());
        if (task == null)
            return;

        StringBuffer output = new StringBuffer();
        output.append(getFullGraderCsv(contest.getId(), job.getUserid(), task.getName()));
        job.output = output.toString().getBytes();
    }
View Full Code Here

     * Swap job.out with feedback information.
     *
     * @param job
     */
    private void swapFeedbackInformation(Job job) {
        Contest contest = mediator.getContestManager().getContest(job.getContestId());
        if (contest == null)
            return;
        Task task = contest.getTaskByName(job.getTask());
        if (task == null)
            return;

        Set<Integer> testsCovered = new TreeSet<Integer>();
        for (TestGroup group : task.getTestGroups()) {
            if (group.isFeedbackEnabled()) {
                testsCovered.addAll(group.getTestCases());
            }
        }

        List<String> byTestResults = getResult(contest.getId(), job.getUserid(), task);
        int accepted = 0;
        int wrong = 0;
        int timeLimit = 0;
        int exception = 0;
        int system = 0;
        int compile = 0;
        for (int i = 0; i < task.getNumberOfTests(); ++i) {
            if (!testsCovered.contains(i + 1)) {
                continue;
            }

            String execResult = byTestResults.get(i);
            try {
                new BigDecimal(execResult);
                accepted++;
            } catch (NumberFormatException e) {
                if ("x".equals(execResult)) {
                    wrong++;
                } else if ("e".equals(execResult)) {
                    exception++;
                } else if ("t".equals(execResult)) {
                    timeLimit++;
                } else if ("c".equals(execResult)) {
                    compile++;
                } else {
                    System.out.print("Unknown output result:" + execResult);
                    system++;
                }
            }
        }

        StringBuffer output = new StringBuffer();
        output.append(getCompilerOutput(contest.getId(), job.getUserid(), task.getName()));
        if (testsCovered.size() == task.getNumberOfTests()) {
            output.append("Feedback for all test cases:\n");
        } else {
            output.append("Feedback for part of all test cases:\n");
        }
View Full Code Here

    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String userId = (String) request.getSession().getAttribute("id");

        ContestManager contestManager = SessionUtil.getInstance().getContestManager();
        Contest contest = contestManager.getContest(request);
        if (contest == null || !contest.isRunning()) {
            response.sendRedirect("main?error=13");
            return;
        }

        try {
            // request parsing
            HttpPostFileParser postFileParser = new HttpPostFileParser();
            // convert from KBytes to bytes
            int maxUploadSize = contest.getMaxUploadSize() * 1024;
            postFileParser.init(request, maxUploadSize);

            if (postFileParser.nFile == 0) {
                response.sendRedirect("main?error=12");
                return;
            }

            String srcFile = postFileParser.upFile[0].pc_file_name;
            if (srcFile != null)
                srcFile = FilenameUtils.getName(srcFile);
           
            String taskName = contestManager.getTaskFromFilename(contest, srcFile, postFileParser.getParameter("task"));
            String language = contestManager.getLanguageFromFilename(contest, srcFile, postFileParser.getParameter("language"));
           
            Task task = contest.getTaskByName(taskName);

            // TODO: export these as error messages or sth
            if (task == null || taskName == null) {
              User user = contestManager.getUser(contest.getId(), userId);
              user.setStrLastTaskSubmit("Invalid task name!\nThe task you are trying to submit is not part of the contest you are registered in.");
              user.setOutputSubmit(null);
              response.sendRedirect("main");
              return;
            }
            if (postFileParser.upFile[0].size > contest.getTaskByName(taskName).getMaxSubmitSize()) {
                response.sendRedirect("main?error=14");
                return;
            }
            if (contest.getTaskByName(taskName).getType() == Task.PROBLEM_TYPE_OUTPUT) {
                String index = null;
                int indexNumber = 0;
                if (srcFile != null && srcFile.split("\\.").length >= 2)
                    index = srcFile.split("\\.")[1];
                    if ("txt".equals(index)) {
                        indexNumber = 1;
                    } else {
                        try {
                            indexNumber = Integer.parseInt(index);
                            if (indexNumber <= 0 ||
                                indexNumber > contest.getTaskByName(taskName).getNumberOfTests()) {
                                index = null;
                            }
                        } catch (NumberFormatException e) {
                            index = null;
                        }
                    }
                 if (index == null) {
                     User user = contestManager.getUser(contest.getId(), userId);
                     user.setStrLastTaskSubmit("Invalid file name!\nFormat is [taskname].[case_number].txt (e.g. output.10.txt).");
                     user.setOutputSubmit(null);
                     response.sendRedirect("main");
                     return;
                 }
                 // TODO: remove HACK
                 language = String.format("%0" + Task.TESTCASE_PADDING_LENGTH + "d", indexNumber);
            }
            if (language == null) {
              User user = contestManager.getUser(contest.getId(), userId);
              user.setStrLastTaskSubmit("Invalid language!");
              user.setOutputSubmit(null);
              response.sendRedirect("main");
              return;
            }
View Full Code Here

      throws ServletException, IOException {
    boolean value = Boolean.parseBoolean(request.getParameter("value"));
    String contestId = request.getParameter("id");

    ContestManager contestManager = SessionUtil.getInstance().getContestManager();
    Contest contest = contestManager.getContest(contestId);
    contest.setTestingOn(value);
    contestManager.updateContest(contest);

    response.sendRedirect("contestSetup");
  }
View Full Code Here

        this.request = request;
        this.response = response;

        String userLogin = (String) request.getSession().getAttribute("id");
        ContestManager contestManager = SessionUtil.getInstance().getContestManager();
        Contest contest = contestManager.getContest(request);
        if (contest == null || !contest.isRunning()) {
            response.sendRedirect("main?error=23");
            return;
        }

        backupDirectory = new File("./backups/" + contest.getId() + "/" + userLogin + "/");
        backupDirectory.mkdirs();

        propertyFile = new File(backupDirectory, FILENAME_PROPERTY_BACKUP_RESTORE);

        loadProperties();
View Full Code Here

    private void display() throws ServletException, IOException {
        SessionUtil sessionUtil = SessionUtil.getInstance();
        String userLogin = sessionUtil.getLoginManager().getActiveUserLogin(request);
        ContestManager contestManager = sessionUtil.getContestManager();
        Contest contest = contestManager.getContest(request);

        request.setAttribute("userLogin", userLogin);
        request.setAttribute("contest", contest);
        request.setAttribute("time", new SimpleDateFormat("yyyy.MM.dd HH:mm:ss")
                .format(new java.util.Date()));
View Full Code Here

  @Override
  protected void service(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    String contestId = request.getParameter("id");
    ContestManager contestManager = SessionUtil.getInstance().getContestManager();
    Contest contest = contestManager.getContest(contestId);
    contest.setRunning(false);
    contest.setTestingOn(false);
    contestManager.updateContest(contest);
    contestManager.cancelContest(contest);
    response.sendRedirect("contestSetup");
  }
View Full Code Here

TOP

Related Classes of bg.smoc.model.Contest

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.