Subversion Repositories bacoAlunos

Rev

Rev 1306 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.services.blogs;

import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.services.common.*;
import pt.estgp.estgweb.services.common.impl.DefaultToDo;
import pt.estgp.estgweb.services.common.impl.DefaultSearchResults;
import pt.estgp.estgweb.services.common.impl.DefaultResult;
import pt.estgp.estgweb.services.announcements.AnnouncementsCommonServices;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.Globals;
import org.apache.log4j.Logger;

import java.util.List;
import java.util.ArrayList;

import jomm.utils.MyCalendar;

/*
 * @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt
 *
 *
 * Created at 17/Out/2003 , 23:45:24
 *
 */

/**
 * @author Jorge Machado
 *
 *
 * Created at 17/Out/2003 , 23:45:24
 *
 */

public class BlogsCommonServices extends SingleSearchResults implements IService, IModuleCommonServices
{
    private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(BlogsCommonServices.class);


    public int countSearch(1.5.0/docs/api/java/lang/String.html">String search, SearchTypeEnum searchType, UserSession userSession) {
        return 0;  //To change body of implemented methods use File | Settings | File Templates.
    }

    public ISearchResults search(1.5.0/docs/api/java/lang/String.html">String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession)
    {
        return search(null,search, searchType,page,maxResults,userSession);
    }

    public ISearchResults search(1.5.0/docs/api/java/lang/String.html">String from, 1.5.0/docs/api/java/lang/String.html">String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession)
    {
        DefaultSearchResults searchResults = new DefaultSearchResults();
        searchResults.setModule(ModuleEnum.Blogs);
        List<String> roles;
        if (userSession == null || userSession.getUser() == null || ((UserImpl) userSession.getUser()).getRolesList() == null || ((UserImpl) userSession.getUser()).getRolesList().size() == 0)
        {
            roles = new ArrayList<String>();
            roles.add(Globals.ALL_ROLE);
        }
        else
            roles = ((UserImpl) userSession.getUser()).getRolesList();

        boolean internal = true;
        if (userSession.getUser() == null)
            internal = false;
        searchResults.setTotalResults(DaoFactory.getBlogDaoImpl().countBlogs(search, searchType, roles, null,internal));
        if (searchResults.getTotalResults() > 0)
        {
            List<Blog> blogs = DaoFactory.getBlogDaoImpl().searchBlogs(search, searchType, maxResults, page, roles,internal);
            if (blogs == null)
                return searchResults;
            for (Blog blog : blogs)
            {
                DefaultResult defaultResult = new DefaultResult();
                defaultResult.setTitle(blog.getTitle());
                defaultResult.setSubTitle(null);
                defaultResult.setSubTitleKey(true);
                defaultResult.setText(blog.getDescription());
                defaultResult.setDate(new java.text.1.5.0/docs/api/java/text/SimpleDateFormat.html">SimpleDateFormat("yyyy.MM.dd").format(blog.getUpdateDate()));
                if(blog.getOwner() != null)
                    defaultResult.setCreator(blog.getOwner().getName());
                if(blog instanceof CourseUnitBlog)
                    defaultResult.setUrl("/user/startLoadBlogFromCourseUnit.do?id=" + blog.getId());
                else if(from == null)
                    defaultResult.setUrl("/startLoadBlog.do?id=" + blog.getId());
                else
                    defaultResult.setUrl("/user/startLoadBlogFrom" + from + ".do?id=" + blog.getId());
                searchResults.addResult(defaultResult);
            }
        }
        return searchResults;
    }


    public int countToDo(UserSession userSession) {
        return 0;  //To change body of implemented methods use File | Settings | File Templates.
    }

    public IToDoCat getToDo(UserSession userSession) {
        return null;  //To change body of implemented methods use File | Settings | File Templates.
    }

    public List<IToDo> getAllToDos(UserSession userSession)
    {
        List<IToDo> todos = new ArrayList<IToDo>();
        if(userSession.getUser() != null && userSession.getUser().isSuperuserOrAdmin())
        {
            List<Blog> invalidBlogs = DaoFactory.getBlogDaoImpl().loadInvalidBlogs();
            for(Blog b: invalidBlogs)
            {
                1.5.0/docs/api/java/lang/String.html">String username = null;
                if(b.getOwner() instanceof UserImpl)
                    username = ((UserImpl)b.getOwner()).getUsername();
                DefaultToDo defaultToDo = new DefaultToDo(b.getTitle(),b.getTargetRoles(),username, "blog.validate.blog.todo","/user/startLoadBlogFromHome.do?id=" + b.getId());
                if(b instanceof CourseUnitBlog)
                    defaultToDo.setUrl("/user/startLoadBlogFromCourseUnit.do?id=" + b.getId());
                todos.add(defaultToDo);
            }
        }

        List<BlogPost> invalidBlogsPosts = DaoFactory.getBlogPostDaoImpl().loadInvalidBlogPostsFromOwnedBlogs(userSession.getUser().getId());
        for(BlogPost b: invalidBlogsPosts)
        {
            1.5.0/docs/api/java/lang/String.html">String username = null;
            if(b.getOwner() instanceof UserImpl)
                username = ((UserImpl)b.getOwner()).getUsername();

            1.5.0/docs/api/java/lang/String.html">String url;
            if(new MyCalendar().getMonth() == b.getMonth())
            {
                if(b.getBlog() instanceof CourseUnitBlog)
                    url = "/user/startLoadBlogFromCourseUnit.do?id=" + b.getBlog().getId() + "#post" + b.getId();
                else
                    url = "/user/startLoadBlogFromHome.do?id=" + b.getBlog().getId() + "#post" + b.getId();
            }
            else
            {
                if(b.getBlog() instanceof CourseUnitBlog)
                    url = "/user/startLoadBlogMonthFromCourseUnit.do?id=" + b.getBlog().getId() + "&month=" + b.getMonth() + "&year=" + b.getYear() +  "#post" + b.getId();
                else
                    url = "/user/startLoadBlogMonthFromHome.do?id=" + b.getBlog().getId() + "&month=" + b.getMonth() + "&year=" + b.getYear() +  "#post" + b.getId();
            }

            DefaultToDo defaultToDo = new DefaultToDo(b.getTitle(),null,username, "blog.validate.post.todo",url);

            todos.add(defaultToDo);
        }
        return todos;
    }/*This method is invoked from object creation*/
    public void adviseNew(DomainObject object)
    {
        //To change body of implemented methods use File | Settings | File Templates.
    }

    public void adviseUpdate(DomainObject object)
    {
        //To change body of implemented methods use File | Settings | File Templates.
    }
}