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.
}
}