@Override
	public String processCommand(String[] arguments)
			throws SystemCommandException {
		String name = arguments[0];
		String type = arguments[1];

		String guid = facade.getCurrentUserGUID();
		if (guid == null)
			throw new SystemCommandException("No current user set.");

		String electorateID = arguments[2];

		try {
			facade.createElection(name, type);
			Date start = DateUtil.parseArgumentDate(arguments[3], arguments[4]);
			Date stop = DateUtil.parseArgumentDate(arguments[5], arguments[6]);
			Date openNominations;
			if (arguments.length == 9)
				openNominations = DateUtil.parseArgumentDate(arguments[7],
						arguments[8]);
			else
				openNominations = null;
			facade.editElection(openNominations, start, stop, electorateID);
		} catch (RuntimeException e) {
			throw new SystemCommandException(e.getMessage());
		}

		return "Created election with name [" + name + "], type [" + type
				+ "] and electorate [" + electorateID + "].";
	}