Package cn.edu.zju.acm.onlinejudge.action

Source Code of cn.edu.zju.acm.onlinejudge.action.ShowUserStatusAction

/*
* Copyright 2007 Zhang, Zheng <oldbig@gmail.com>
*
* This file is part of ZOJ.
*
* ZOJ is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either revision 3 of the License, or (at your option) any later revision.
*
* ZOJ is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with ZOJ. if not, see
* <http://www.gnu.org/licenses/>.
*/

package cn.edu.zju.acm.onlinejudge.action;

import java.util.SortedSet;
import java.util.TreeSet;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import cn.edu.zju.acm.onlinejudge.bean.AbstractContest;
import cn.edu.zju.acm.onlinejudge.bean.Problem;
import cn.edu.zju.acm.onlinejudge.bean.UserPreference;
import cn.edu.zju.acm.onlinejudge.bean.UserProfile;
import cn.edu.zju.acm.onlinejudge.util.ConfigManager;
import cn.edu.zju.acm.onlinejudge.util.ContestManager;
import cn.edu.zju.acm.onlinejudge.util.PersistenceManager;
import cn.edu.zju.acm.onlinejudge.util.StatisticsManager;
import cn.edu.zju.acm.onlinejudge.util.UserStatistics;
import cn.edu.zju.acm.onlinejudge.util.Utility;

public class ShowUserStatusAction extends BaseAction {

    private static long defaultProblemSetId = ConfigManager.getDefaultProblemSetId();

    /**
     * Method execute
     *
     * @param mapping
     * @param form
     * @param request
     * @param response
     * @return ActionForward
     */
    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form, ContextAdapter context) throws Exception {

        UserProfile user = null;
        String handle = context.getRequest().getParameter("handle");
        if (handle != null && handle.length() > 0) {
            // TODO cache?
            user = PersistenceManager.getInstance().getUserPersistence().getUserProfileByHandle(handle);
        } else if (context.getRequest().getParameter("userId") != null) {
            long userId = Utility.parseLong(context.getRequest().getParameter("userId"));
            if (userId != -1) {
                user = PersistenceManager.getInstance().getUserPersistence().getUserProfile(userId);
            }
        } else {
            user = context.getUserProfile();
        }
        AbstractContest contest = null;
        if (user != null) {
            long contestId = Utility.parseLong(context.getRequest().getParameter("contestId"));
            if (contestId == -1) {
                contestId = ShowUserStatusAction.defaultProblemSetId;
            }
            contest = ContestManager.getInstance().getContest(contestId);
        }
        if (contest != null) {
            context.setAttribute("contest", contest);
            ActionForward forward = this.checkContestViewPermission(mapping, context, null, true);
            if (forward != null) {
                contest = null;
            }
        }

        UserStatistics statistics = null;
        UserPreference pref = null;
        if (contest != null && user != null) {
          // TODO cache?
          pref = PersistenceManager.getInstance().getUserPersistence().getUserPreference(user.getId());
            statistics = StatisticsManager.getInstance().getUserStatistics(contest.getId(), user.getId());
        }

        context.setAttribute("user", user);
        context.setAttribute("preference", pref);
        context.setAttribute("contest", contest);
        context.setAttribute("UserStatistics", statistics);

        return this.handleSuccess(mapping, context, "success");
    }
}
TOP

Related Classes of cn.edu.zju.acm.onlinejudge.action.ShowUserStatusAction

TOP
Copyright © 2018 www.massapi.com. 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.