Subversion Repositories bacoAlunos

Rev

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

<serviceDefinitions>
    <!--Users-->
    <service>
        <name>Authenticate</name>
        <implementationClass>pt.estgp.estgweb.services.authenticate.AuthenticateService</implementationClass>
        <description>Authenticates a User</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>AuthenticatePae</name>
        <implementationClass>pt.estgp.estgweb.services.authenticate.AuthenticateService</implementationClass>
        <description>Authenticates a User</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loginPae</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>AuthenticateCertificate</name>
        <implementationClass>pt.estgp.estgweb.services.authenticate.AuthenticateService</implementationClass>
        <description>Authenticates a User</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loginCertificate</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>CreateCertificate</name>
        <implementationClass>pt.estgp.estgweb.services.authenticate.AuthenticateService</implementationClass>
        <description>Create a certificate for a User id</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createCertificateForId</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="Admins"/>-->
        </filterChains>
    </service>
    <service>
        <name>Logout</name>
        <implementationClass>pt.estgp.estgweb.services.authenticate.LogoutService</implementationClass>
        <description>Logout a User</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>CreateUser</name>
        <implementationClass>pt.estgp.estgweb.services.users.CreateUserService</implementationClass>
        <description>Create an User</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadUserSession</name>
        <implementationClass>pt.estgp.estgweb.services.users.LoadUserSessionService</implementationClass>
        <description>Load an User Session</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <!--<chain name="Logger"/>-->
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>UpdateUserSession</name>
        <implementationClass>pt.estgp.estgweb.services.users.UpdateUserSessionService</implementationClass>
        <description>Load an User Session</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>LoadUsers</name>
        <implementationClass>pt.estgp.estgweb.services.users.LoadUsersService</implementationClass>
        <description>Load user of some class</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>LoadRoleUsers</name>
        <implementationClass>pt.estgp.estgweb.services.users.LoadUsersService</implementationClass>
        <description>Load user of some class</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadRole</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>LoadRoleAreaUsers</name>
        <implementationClass>pt.estgp.estgweb.services.users.LoadUsersService</implementationClass>
        <description>Load user of some class</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadRoleArea</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>LoadTeachersWithUnits</name>
        <implementationClass>pt.estgp.estgweb.services.users.LoadUsersService</implementationClass>
        <description>Load user of some class</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadTeachersWithUnits</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>

    <service>
        <name>LoadTeachers</name>
        <implementationClass>pt.estgp.estgweb.services.users.LoadUsersService</implementationClass>
        <description>Load user of some class</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadTeachers</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>


    <!--URL Statistics-->
    <service>
        <name>UpdateUrlStatistics</name>
        <implementationClass>pt.estgp.estgweb.services.urlstat.UrlStatService</implementationClass>
        <description>Update URL clicks count</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>BuildChartGetPath</name>
        <implementationClass>pt.estgp.estgweb.services.urlstat.ChartBuilderService</implementationClass>
        <description>Creates a chart for a given list of relativepaths and return relativeTmpPath</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>LoadUrlStatService</name>
        <implementationClass>pt.estgp.estgweb.services.urlstat.LoadUrlStatService</implementationClass>
        <description>loads a relative URL Stat</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>


    <!--Announcements-->
    <service>
        <name>SendMessage</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.CreateAnnouncementService</implementationClass>
        <description>Send a message to email</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>sendMessage</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>CreateAnnouncement</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.CreateAnnouncementService</implementationClass>
        <description>Create an Announcement</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="IsInCourseUnit"/>
            <chain name="CanAddAnnouncementInCourseUnit"/>
        </filterChains>
    </service>
    <service>
        <name>EditAnnouncement</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.CreateAnnouncementService</implementationClass>
        <description>Edit an Announcement</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="Admins"/>-->
            <chain name="OwnersEdit"/>
            <chain name="IsInCourseUnit"/>
            <!--<chain name="OwnersEditOnlyIfNotValid"/>-->
            <!--<chain name="ContextObjectTimer"/>-->
            <!--<chain name="ContextStaticTimerExample"/>-->
        </filterChains>
    </service>
    <service>
        <name>DeleteAnnouncement</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.DeleteAnnouncementService</implementationClass>
        <description>Delete an Announcement</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="Admins"/>-->
            <chain name="OwnersLoadAnnouncement"/>
            <!--<chain name="ContextObjectTimer"/>-->
            <!--<chain name="ContextStaticTimerExample"/>-->
        </filterChains>
    </service>
    <service>
        <name>LoadAnnouncementView</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.LoadAnnouncementService</implementationClass>
        <description>Load an Announcement view</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="Admins"/>-->
            <chain name="ExistAnnouncement"/>
            <chain name="InternalAnnouncement"/>
            <chain name="TargetRolesAnnouncement"/>
            <chain name="CanLoadAnnouncement"/>
        </filterChains>
    </service>
    <service>
        <name>LoadEditAnnouncement</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.LoadAnnouncementService</implementationClass>
        <description>Load an Announcement view</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="Admins"/>-->
            <chain name="OwnersLoadAnnouncement"/>
        </filterChains>
    </service>
    <service>
        <name>LoadTargetMaxAnnouncements</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.LoadTargetMaxAnnouncementsService</implementationClass>
        <description>Load an Announcement views to show in list</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadRoleTypeMaxAnnouncements</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.LoadRoleTypeMaxAnnouncementsService</implementationClass>
        <description>Load an Announcement views to show in list</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadTypeMaxAnnouncements</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.LoadTypeMaxAnnouncementsService</implementationClass>
        <description>Load an Announcement views to show in list</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadTypeAnnouncements</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.LoadTypeMaxAnnouncementsService</implementationClass>
        <description>Load an Announcement views to show in list</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>load</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadTopFlashNewsIterate</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.LoadTopFlashNewsIterateService</implementationClass>
        <description>Load an Announcement one flash News</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadOwnerAnnouncements</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.LoadOwnerAnnouncements</implementationClass>
        <description>Load owner Blogs</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>

    <service>
        <name>LoadOwnerAnnouncementsMax</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.LoadOwnerAnnouncements</implementationClass>
        <description>Load owner Blogs</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadMax</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>


    <!--Teste-->
    <service>
        <name>TesteSaver</name>
        <implementationClass>pt.estgp.estgweb.services.teste.TesteService</implementationClass>
        <description>Saves a teste</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>


    <!--BLOGS-->
    <service>
        <name>CreateBlog</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.CreateBlogService</implementationClass>
        <description>Create a Blog</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>CheckBlogName</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.CheckBlogNameService</implementationClass>
        <description>Check if a name is good and if already exists for a Blog</description>
        <isTransactional>true</isTransactional>
        <filterChains>
        </filterChains>
    </service>
    <service>
        <name>EditBlog</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.CreateBlogService</implementationClass>
        <description>Edit a Blog</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="Admins"/>-->
            <chain name="OwnersEdit"/>
            <!--<chain name="OwnersEditOnlyIfNotValid"/>-->
            <!--<chain name="ContextObjectTimer"/>-->
            <!--<chain name="ContextStaticTimerExample"/>-->
        </filterChains>
    </service>
    <service>
        <name>DeleteBlog</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.DeleteBlogService</implementationClass>
        <description>Delete an Blog</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersLoadBlog"/>
        </filterChains>
    </service>
    <service>
        <name>DeleteBlogPost</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.DeleteBlogPostService</implementationClass>
        <description>Delete a Post</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnerBlogPost"/>
        </filterChains>
    </service>
    <service>
        <name>ValidateBlogPost</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.ValidateBlogPostService</implementationClass>
        <description>Validate a Post</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnerBlogFromPost"/>
        </filterChains>
    </service>
    <service>
        <name>CreateBlogPost</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.CreateBlogPostService</implementationClass>
        <description>Create a Blog Post</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="CanAddContentBlog"/>
        </filterChains>
    </service>
    <service>
        <name>LoadBlog</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.LoadBlogService</implementationClass>
        <description>Load a Blog</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadIndex</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ExistBlog"/>
            <chain name="InternalBlog"/>
            <chain name="TargetRolesBlog"/>
            <chain name="CanLoadBlog"/>
        </filterChains>
    </service>
    <service>
        <name>LoadBlogIdByName</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.LoadBlogService</implementationClass>
        <description>Load a Blog</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadIdByName</defaultMethod>
        <filterChains>
        </filterChains>
    </service>
    <service>
        <name>LoadEditBlog</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.LoadBlogService</implementationClass>
        <description>Load an Announcement view</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadIndex</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="Admins"/>-->
            <chain name="OwnersLoadBlog"/>
        </filterChains>
    </service>
    <service>
        <name>LoadBlogByDate</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.LoadBlogService</implementationClass>
        <description>Load a Blog in a specfied month and year</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadMonth</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="InternalBlog"/>
            <chain name="TargetRolesBlog"/>
            <chain name="CanLoadBlog"/>
        </filterChains>
    </service>
    <service>
        <name>LoadEditableBlogs</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.LoadEditableBlogs</implementationClass>
        <description>Load editable Blogs</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>

    <service>
        <name>LoadEditableBlogsMax</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.LoadEditableBlogs</implementationClass>
        <description>Load editable Blogs</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadMax</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadOwnerBlogs</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.LoadOwnerBlogs</implementationClass>
        <description>Load owner Blogs</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadOwnerBlogsMax</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.LoadOwnerBlogs</implementationClass>
        <description>Load owner Blogs</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadMax</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadOwnerBlogPosts</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.LoadOwnerBlogPosts</implementationClass>
        <description>Load owner Blog Posts</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadOwnerBlogPostsMax</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.LoadOwnerBlogPosts</implementationClass>
        <description>Load owner Blog Posts</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadMax</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>



    <!--CommonServices-->
    <service>
        <name>CommonServicesSearch</name>
        <implementationClass>pt.estgp.estgweb.services.common.CommonServicesService</implementationClass>
        <description>Common Services For Search</description>
        <defaultMethod>search</defaultMethod>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>CommonServicesSearchModule</name>
        <implementationClass>pt.estgp.estgweb.services.common.CommonServicesService</implementationClass>
        <description>Common Services For Search</description>
        <defaultMethod>searchModule</defaultMethod>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>CommonServicesGetAllTodosCat</name>
        <implementationClass>pt.estgp.estgweb.services.common.CommonServicesService</implementationClass>
        <description>Common Services For Todos</description>
        <defaultMethod>getAllToDosCats</defaultMethod>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>


    <!--Import Services-->
    <service>
        <name>ImportCourseServices</name>
        <implementationClass>pt.estgp.estgweb.services.sigesimports.ImportCourseService</implementationClass>
        <description>Service to call SiGesWEB Service and import Courses and Course Units</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Supers"/>
        </filterChains>
    </service>
    <service>
        <name>ImportStudentServices</name>
        <implementationClass>pt.estgp.estgweb.services.sigesimports.ImportStudentsService</implementationClass>
        <description>Service to call SiGesWEB Service and import Students and Course Units</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Supers"/>
        </filterChains>
    </service>
    <service>
        <name>ImportTeacherServices</name>
        <implementationClass>pt.estgp.estgweb.services.sigesimports.ImportTeachersService</implementationClass>
        <description>Service to call SiGesWEB Service and import Teachers and Course Units</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Supers"/>
        </filterChains>
    </service>

    <!--ProfileServices-->
    <service>
        <name>LoadUserWithRecordsById</name>
        <implementationClass>pt.estgp.estgweb.services.profile.CurriculumService</implementationClass>
        <description>Load User By ID</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadUserViewWithRecords</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadUserWithGradesById</name>
        <implementationClass>pt.estgp.estgweb.services.profile.CurriculumService</implementationClass>
        <description>Load User By ID</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadUserViewWithGrades</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadUserWithRecordsByCode</name>
        <implementationClass>pt.estgp.estgweb.services.profile.CurriculumService</implementationClass>
        <description>Load User By ID</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadUserViewWithRecordsCode</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>CreateUserProfileRecord</name>
        <implementationClass>pt.estgp.estgweb.services.profile.CurriculumService</implementationClass>
        <description>Create a record for autheticated user</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createRecord</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>DeleteUserProfileRecord</name>
        <implementationClass>pt.estgp.estgweb.services.profile.CurriculumService</implementationClass>
        <description>Create a record for autheticated user</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>deleteRecord</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="OwnerProfileRecord"/>
        </filterChains>
    </service>
    <service>
        <name>LoadEditUserProfileRecord</name>
        <implementationClass>pt.estgp.estgweb.services.profile.CurriculumService</implementationClass>
        <description>Create a record for autheticated user</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadEditRecord</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnerProfileRecord"/>
        </filterChains>
    </service>
    <service>
        <name>EditUserProfileRecord</name>
        <implementationClass>pt.estgp.estgweb.services.profile.CurriculumService</implementationClass>
        <description>Create a record for autheticated user</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createRecord</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="OwnersEdit"/>
        </filterChains>
    </service>
   
    <service>
        <name>LoadUserById</name>
        <implementationClass>pt.estgp.estgweb.services.profile.LoadUserByIdService</implementationClass>
        <description>Load User By ID</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--   <chain name="OwnerLoadProfile"/>-->
        </filterChains>
    </service>
    <service>
        <name>SubmitUser</name>
        <implementationClass>pt.estgp.estgweb.services.profile.EditUserService</implementationClass>
        <description>Edit User</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!-- <chain name="OwnerUpdateProfile"/> -->
        </filterChains>
    </service>
    <service>
        <name>SearchUser</name>
        <implementationClass>pt.estgp.estgweb.services.profile.SearchUserService</implementationClass>
        <description>Search Users</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <!--  <chain name="Session"/>-->
        </filterChains>
    </service>

    <!--FTP Service-->
    <service>
        <name>FtpService</name>
        <implementationClass>pt.estgp.estgweb.services.ftpservices.FtpService</implementationClass>
        <description>Manage FTP Files and Folders</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>

    <!--Pop Email Services-->
    <service>
        <name>ReadEmailService</name>
        <implementationClass>pt.estgp.estgweb.services.email.ReadEmailService</implementationClass>
        <description>Read Users Email</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>DeleteUser</name>
        <implementationClass>pt.estgp.estgweb.services.profile.DeleteUserService</implementationClass>
        <description>Delete one User</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>



    <!--Reminders Services-->
    <service>
        <name>CreateReminder</name>
        <implementationClass>pt.estgp.estgweb.services.reminders.CreateReminderService</implementationClass>
        <description>Create an Reminder</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>DeleteReminder</name>
        <implementationClass>pt.estgp.estgweb.services.reminders.DeleteReminderService</implementationClass>
        <description>Delete a Reminder</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnerReminder"/>
        </filterChains>
    </service>
    <service>
        <name>LoadOwnerReminders</name>
        <implementationClass>pt.estgp.estgweb.services.reminders.LoadOwnerRemindersService</implementationClass>
        <description>Load all reminders view pt.estgp.estgweb.services.reminders.IOwnedReminders</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>DeleteExpiredReminders</name>
        <implementationClass>pt.estgp.estgweb.services.reminders.DeleteExpiredRemindersService</implementationClass>
        <description>delete all expired reminders and return them</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>


    <!-- SIGES IMPORT SERVICES -->

    <service>
        <name>ImportCourseUnits</name>
        <implementationClass>pt.estgp.estgweb.services.sigesimports.ImportCourseService</implementationClass>
        <description>import courses from siges</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Supers"/>
        </filterChains>
    </service>
    <service>
        <name>ImportStudents</name>
        <implementationClass>pt.estgp.estgweb.services.sigesimports.ImportStudentsService</implementationClass>
        <description>import courses from siges</description>
        <isTransactional>false</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Supers"/>
        </filterChains>
    </service>
    <service>
        <name>ImportTeachers</name>
        <implementationClass>pt.estgp.estgweb.services.sigesimports.ImportTeachersService</implementationClass>
        <description>import courses from siges</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Supers"/>
        </filterChains>
    </service>

    <!--Course Units-->

    <service>
        <name>UpdateCourseUnit</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.UpdateCourseUnitService</implementationClass>
        <description>Update course unit objectives and program file</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersEdit"/>
        </filterChains>
    </service>

     <!--<service>
       <name>DeleteCourseUnit</name>
       <implementationClass>pt.estgp.estgweb.services.courseunits.UpdateCourseUnitService</implementationClass>
       <description>Update course unit objectives and program file</description>
       <isTransactional>true</isTransactional>
       <defaultMethod>delete</defaultMethod>
       <filterChains>
           <chain name="Logger"/>
           <chain name="Session"/>
           <chain name="Supers"/>
       </filterChains>
   </service>-->
    <service>
        <name>LoadCourseUnit</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitService</implementationClass>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitService</implementationClass>
        <description>Load course unit</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCourseUnitCleared</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitService</implementationClass>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitService</implementationClass>
        <description>Load course unit</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>runCleared</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="CourseUnitProgramClearancesPreSerializable"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCourseUnitStudents</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitService</implementationClass>
        <description>Load course unit students</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadStudents</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCourseUnitTeachers</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitService</implementationClass>
        <description>Load course unit teachers</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadTeachers</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCourseUnitResponsibleTeacher</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitService</implementationClass>
        <description>Load course unit responsible teacher</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadResponsibleTeacher</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>LoadCourseUnitViewAndCourse</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitService</implementationClass>
        <description>Load course unit</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCourseUnitViewAndCourse</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="CourseUnitProgramClearancesPreSerializable"/>
        </filterChains>
    </service>
    <service>
        <name>SaveCourseUnitProgram</name>
        <!--Args
           ourseUnitProgramView programView,
           long unitId used in filters
       -->
        <implementationClass>pt.estgp.estgweb.services.courseunits.SaveCourseUnitProgram</implementationClass>
        <description>Save course unit program</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="LoadCourseUnitViewAndCourse"/>-->
            <chain name="CourseUnitProgramClearancesPre"/>
        </filterChains>
    </service>

    <service>
        <name>ValidateCourseUnitProgram</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.SaveCourseUnitProgram</implementationClass>
        <description>Save course unit program</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>validate</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="LoadCourseUnitViewAndCourse"/>-->
            <chain name="CourseUnitProgramClearancesPre"/>
        </filterChains>
    </service>
    <service>
        <name>InvalidateCourseUnitProgram</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.SaveCourseUnitProgram</implementationClass>
        <description>Save course unit program</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>invalidate</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="LoadCourseUnitViewAndCourse"/>-->
            <chain name="CourseUnitProgramClearancesPre"/>
        </filterChains>
    </service>

    <service>
        <name>SaveCourseUnitEvaluation</name>
        <!--Args
           CourseUnitEvaluationView evaluationView,
           long unitId used in filters
       -->
        <implementationClass>pt.estgp.estgweb.services.courseunits.SaveCourseUnitEvaluation</implementationClass>
        <description>Save course unit evaluation</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>save</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="CourseUnitEvaluationClearancesPre"/>
            <chain name="EditCourseUnitEvaluation"/>
        </filterChains>
    </service>

    <service>
        <name>OpenCourseUnitEvaluation</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.SaveCourseUnitEvaluation</implementationClass>
        <description>Open course unit evaluation for edition</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>open</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="CourseUnitEvaluationClearancesPre"/>
            <chain name="EditCourseUnitEvaluation"/>
        </filterChains>
    </service>

    <service>
        <name>InitCourseUnitEvaluationClearances</name>
        <!--Parameters
       CourseUnitView cuv, Long courseUnitId
       -->
        <implementationClass>pt.estgp.estgweb.services.courseunits.SaveCourseUnitEvaluation</implementationClass>
        <description>Open course unit evaluation for edition</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>initClearances</defaultMethod>
        <filterChains>
            <chain name="Session"/>
            <chain name="CourseUnitEvaluationClearancesPre"/>
        </filterChains>
    </service>



    <service>
        <name>LoadCourseUnitsBySigesCodes</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitsBySigesCodesService</implementationClass>
        <description>Load course old units</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>LoadCourseUnitInEvaluationBySigesCodes</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitsBySigesCodesService</implementationClass>
        <description>Load course old units</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadUnitInEvaluation</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>LoadCourseUnitsBySigesCodesSemestreLastYear</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitsBySigesCodesService</implementationClass>
        <description>Load a unique unit by sigescode, semestre and course code</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadLastYear</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>LoadCourseUnitWorks</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CourseUnitWorkService</implementationClass>
        <description>Load course unit works</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCourseUnitWorks</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCourseUnitWorkAssignement</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CourseUnitWorkService</implementationClass>
        <description>Load course unit works</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadAssignement</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnerCourseUnitFromWorkAssignement"/>
        </filterChains>
    </service>
    <service>
        <name>CreateCourseUnitWork</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CourseUnitWorkService</implementationClass>
        <description>Load course unit works</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>create</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnerCourseUnit"/>
        </filterChains>
    </service>
    <service>
        <name>EditCourseUnitWork</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CourseUnitWorkService</implementationClass>
        <description>Load course unit works</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>create</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnerCourseUnitFromWorkAssignementObject"/>
        </filterChains>
    </service>
    <service>
        <name>StartCourseUnitBlog</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CourseUnitBlogService</implementationClass>
        <description>start course unit blog creating if don't exist</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>startUnitBlog</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>DeliverCourseUnitWork</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CourseUnitWorkService</implementationClass>
        <description>Load course unit works</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>deliverWork</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IsStudentInCourseUnitFromWorkAssignement"/>
        </filterChains>
    </service>
    <service>
        <name>UpdateCourseUnitDeliverables</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CourseUnitWorkService</implementationClass>
        <description>update deliverables with grade and observations</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>updateDeliverables</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnerCourseUnit"/>
        </filterChains>
    </service>
    <service>
        <name>ValidateInvalidateCourseUnitWork</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CourseUnitWorkService</implementationClass>
        <description>Load course unit works</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>validateInvalidate</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnerCourseUnitFromWorkAssignement"/>
        </filterChains>
    </service>
    <service>
        <name>DeleteCourseUnitWork</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CourseUnitWorkService</implementationClass>
        <description>Load course unit works</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>delete</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnerCourseUnitFromWorkAssignement"/>
        </filterChains>
    </service>
    <service>
        <name>SearchCourseUnit</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.SearchCourseUnitService</implementationClass>
        <description>Load course unit works</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>search</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadDirectedCoordinatedCoursesForUserInSession</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.DirectedCoordinatedUnitsService</implementationClass>
        <description>Load coordinated directed courses</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadForUserSession</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="DirectorsCoordinators"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCoursesProgramsForServices</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.DirectedCoordinatedUnitsService</implementationClass>
        <description>Load coordinated directed courses</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadForServices</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCoursesImportYears</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load import years</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadImportYears</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>UpdateDirectedCoordinatedCoursesForUserInSession</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.DirectedCoordinatedUnitsService</implementationClass>
        <description>Load coordinated directed courses</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>update</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="DirectorsCoordinators"/>
        </filterChains>
    </service>
    <service>
        <name>LoadTeachedUnits</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadTeachedUnitsService</implementationClass>
        <description>Load teacher units</description>
        <isTransactional>true</isTransactional>
        <filterChains>
        </filterChains>
    </service>
    <service>
        <name>LoadTeachedUnitsCurrentYear</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadTeachedUnitsCurrentYearService</implementationClass>
        <description>Load teacher units in currentYear</description>
        <isTransactional>true</isTransactional>
        <filterChains>
        </filterChains>
    </service>

    <service>
        <name>LoadTeachedUnitsYear</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadTeachedUnitsYearService</implementationClass>
        <description>Load teacher units in given Year</description>
        <isTransactional>true</isTransactional>
        <filterChains>
        </filterChains>
    </service>
    <service>
        <name>LoadSubscribedUnits</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadSubscribedUnitsService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <filterChains>
        </filterChains>
    </service>
    <service>
        <name>LoadSubscribedUnitsCurrentYear</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadSubscribedUnitsCurrentYearService</implementationClass>
        <description>Load student units in current Year</description>
        <isTransactional>true</isTransactional>
        <filterChains>
        </filterChains>
    </service>
    <service>
        <name>LoadSubscribedUnitsGivenYear</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadSubscribedUnitsCurrentYearService</implementationClass>
        <description>Load student units in current Year</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>givenYear</defaultMethod>
        <filterChains>
        </filterChains>
    </service>
    <service>
        <name>LoadSubscribedUnitsOldYears</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadSubscribedUnitsOldYearsService</implementationClass>
        <description>Load student units in current Year</description>
        <isTransactional>true</isTransactional>
        <filterChains>
        </filterChains>
    </service>
    <service>
        <name>LoadSubscribedUnitsAnnouncements</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadSubscribedUnitsAnnouncementsService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadTeachedUnitsAnnouncements</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadTeachedUnitsAnnouncementsService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>AddTeacherCourseUnit</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.UsersUnitsService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>addTeacher</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>RemoveTeacherCourseUnit</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.UsersUnitsService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>removeTeacher</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>

    <service>
        <name>AddStudentCourseUnit</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.UsersUnitsService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>addStudent</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>RemoveStudentCourseUnit</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.UsersUnitsService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>removeStudent</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>

   


    <!--CourseUnitAssignements Backups-->
    <service>
        <name>CreateCourseUnitDirPackage</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitDirPackageServiceBat</implementationClass>
        <description>Create a zip file with Intranet folders</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>CreateCourseUnitWorksBackup</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService</implementationClass>
        <description>Create a zip file with Intranet folders</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createSystemBackup</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>CreateImportYearCourseUnitWorksBackup</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService</implementationClass>
        <description>Create a zip file with Intranet folders</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createSystemImportYearBackup</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>CreateUserActualYearCourseUnitWorksBackup</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService</implementationClass>
        <description>Create a zip file with deliverables</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createActualYearBackup</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>CreateUserImportYearCourseUnitWorksBackup</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService</implementationClass>
        <description>Create a zip file with deliverables</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createImportYearBackup</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>CreateUserAllCourseUnitWorksBackup</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService</implementationClass>
        <description>Create a zip file with Intranet folders</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createBackup</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>CreateUserAllCourseUnitProgramsBackup</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService</implementationClass>
        <description>Create a zip file with Intranet folders with Programs only</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createProgramsBackup</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
   




    <!--COURSES-->
    <service>
        <name>LoadCourseByCode</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load course by String code</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCourseByCode</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCourse</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load course by String code</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCourse</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>SubmitCourse</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Create or Update a new course</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>submitCourse</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCourses</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load All Courses</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCourses</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCoursesImportYearArea</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load All Courses</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCoursesImportYearArea</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCoursesImportYearAreaInstitution</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load All Courses</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCoursesImportYearAreaInstitution</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCoursesImportYear</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load All Courses</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCoursesImportYear</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
     <service>
        <name>LoadCoursesImportYearByType</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load All Courses</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCoursesImportYearByType</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>LoadActiveCoursesByType</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load All Courses</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadActiveCoursesByType</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>





    <!--Administratives-->
    <service>
        <name>CreateCourseUnitAdmin</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitAdminService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>

    <!--Repository-->
    <service>
        <name>StoreRepositoryFile</name>
        <implementationClass>pt.estgp.estgweb.services.data.RepositoryService</implementationClass>
        <description>Load student units</description>
        <isTransactional>false</isTransactional>
        <defaultMethod>storeRepositoryFile</defaultMethod>
        <filterChains>
        </filterChains>
    </service>
    <service>
        <name>UpdateRepositoryFile</name>
        <implementationClass>pt.estgp.estgweb.services.data.RepositoryService</implementationClass>
        <description>Load student units</description>
        <isTransactional>false</isTransactional>
        <defaultMethod>updateRepositoryFile</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="OwnersEdit"/>
        </filterChains>
    </service>
    <service>
        <name>LoadRepositoryFileView</name>
        <implementationClass>pt.estgp.estgweb.services.data.RepositoryService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadView</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadRepositoryFile</name>
        <implementationClass>pt.estgp.estgweb.services.data.RepositoryService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>load</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ResourceAccessControl"/>
        </filterChains>
    </service>

    <service>
        <name>LoadRepositoryFileVersion</name>
        <implementationClass>pt.estgp.estgweb.services.data.RepositoryService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadVersion</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ResourceAccessControlVersion"/>
        </filterChains>
    </service>






    <!--Managed Identifiers-->
    <service>
        <name>managedIdentiferLoadCollections</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCollections</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
        </filterChains>
    </service>
    <service>
        <name>managedIdentiferCreateCollection</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createCollection</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
            <chain name="IdentifiersCollectionCreator"/>
        </filterChains>
    </service>
    <service>
        <name>managedIdentiferStartEditCollection</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCollection</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
            <chain name="OwnersLoadManagedCollection"/>
            <chain name="IdentifiersCollectionCreator"/>
        </filterChains>
    </service>
    <service>
        <name>managedIdentiferEditCollection</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createCollection</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
            <chain name="IdentifiersCollectionCreator"/>
            <chain name="OwnersEdit"/>
        </filterChains>
    </service>
    <service>
        <name>managedIdentiferDeleteCollection</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>deleteCollection</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
            <chain name="IdentifiersCollectionCreator"/>
            <chain name="OwnersLoadManagedCollection"/>
        </filterChains>
    </service>
    <service>
        <name>managedIdentiferAssignCollectionUser</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>assignCollectionUser</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
            <chain name="IdentifiersCollectionCreator"/>
            <chain name="OwnerManagedIdentifierCollection"/>
        </filterChains>
    </service>
    <service>
        <name>managedIdentiferDeleteCollectionUser</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>deleteCollectionUser</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
            <chain name="IdentifiersCollectionCreator"/>
            <chain name="OwnerManagedIdentifierCollection"/>
        </filterChains>
    </service>
    <service>
        <name>managedIdentiferCreateIdentifier</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createIdentifier</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
            <chain name="CanAddContentManagedIdentifierCollection"/>
        </filterChains>
    </service>
    <service>
        <name>managedIdentiferStartEditIdentifier</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>findIdentifier</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
            <chain name="OwnersLoadManagedIdentifier"/>
        </filterChains>
    </service>
    <service>
        <name>managedIdentiferEditIdentifier</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createIdentifier</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
            <chain name="OwnersEdit"/>
            <chain name="CanAddContentManagedIdentifierCollection"/>
        </filterChains>
    </service>
    <service>
        <name>managedIdentiferFindIdentifier</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>findIdentifier</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
        </filterChains>
    </service>
    <service>
        <name>managedIdentiferLoadCollection</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCollection</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
        </filterChains>
    </service>
    <!---->




    <!--SRU Services-->
    <service>
        <name>LoadSruSourceById</name>
        <implementationClass>pt.estgp.estgweb.services.srusources.LoadSruSourceByIdService</implementationClass>
        <description>Load SruSource By ID</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>LoadSruSources</name>
        <implementationClass>pt.estgp.estgweb.services.srusources.LoadSruSourcesService</implementationClass>
        <description>Load all SruSources</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>SubmitSruSource</name>
        <implementationClass>pt.estgp.estgweb.services.srusources.SruSourceService</implementationClass>
        <description>Submit SruSource By ID</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>submit</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>DeleteSruSource</name>
        <implementationClass>pt.estgp.estgweb.services.srusources.DeleteSruSourceService</implementationClass>
        <description>Delete SruSource By ID</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>

    <!-- Duarte Santos -->
    <service>
        <name>LoadSurvey</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.LoadSurveyService</implementationClass>
        <description>Load survey view</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadEditSurvey</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.LoadSurveyService</implementationClass>
        <description>Load survey view to edit</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="CanEditSurvey"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCloneSurvey</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.LoadSurveyService</implementationClass>
        <description>Load survey view to clone</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersLoadSurvey"/>
        </filterChains>
    </service>
    <service>
        <name>LoadListStatsSurvey</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.LoadSurveyService</implementationClass>
        <description>Load survey view to list stats</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="CanConsultSurveyStats"/>
        </filterChains>
    </service>
    <service>
        <name>LoadSurveys</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.LoadSurveysService</implementationClass>
        <description>Load all survey views</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>LoadOwnedSurveys</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.LoadSurveysService</implementationClass>
        <description>Load owned survey views</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadOwnedSurveys</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadSurveyResponse</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.LoadSurveyResponseService</implementationClass>
        <description>Load survey response view</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersLoadResponse"/>
        </filterChains>
    </service>
    <service>
        <name>CreateEditSurvey</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.CreateEditSurveyService</implementationClass>
        <description>Create or edit survey</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createEditSurveyService</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>ConsistSurvey</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.ConsistSurveyService</implementationClass>
        <description>Apply survey responses to new users</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>consistSurveyService</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersLoadSurvey"/>
        </filterChains>
    </service>
    <service>
        <name>InsertSurveyAnswers</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.InsertSurveyAnswersService</implementationClass>
        <description>Insert survey answers</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersLoadResponse"/>
        </filterChains>
    </service>
    <service>
        <name>GenerateSurveyStats</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.GenerateSurveyStatsService</implementationClass>
        <description>Generate all survey stats</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>generateStatsService</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersLoadSurvey"/>
        </filterChains>
    </service>
    <service>
    <name>GenerateSurveyStatsCsv</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.GenerateSurveyStatsCsvService</implementationClass>
        <description>Generate all survey stats on a csv file</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersLoadSurvey"/>
        </filterChains>
    </service>
    <service>
        <name>LoadSurveyNodeGraphs</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.LoadSurveyNodeGraphsService</implementationClass>
        <description>Load survey graphics of a node</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="CanConsultSurveyStats"/>
        </filterChains>
    </service>
    <service>
        <name>LoadConsultStatsSurveys</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.LoadConsultStatsSurveysService</implementationClass>
        <description>Load surveys views which user can consult stats</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <!-- Duarte Santos -->



     <!--Filipe Matos-->
    <!--Assessments-->
    <service>
        <name>CreateEditAssessment</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.CreateEditAssessmentService</implementationClass>
        <description>Create or edit assessment</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createEditAssessmentService</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Teachers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadAssessment</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.LoadAssessmentService</implementationClass>
        <description>Load assessment view</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadOwnedAssessments</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.LoadAssessmentsService</implementationClass>
        <description>Load owned assessments</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadOwnedAssessments</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadOwnedResponses</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.LoadAssessmentResponsesService</implementationClass>
        <description>Load owned assessments</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadOwnedResponses</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadEditAssessment</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.LoadAssessmentService</implementationClass>
        <description>Load assessment to edit</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="CanEditAssessment"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCloneAssessment</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.LoadAssessmentService</implementationClass>
        <description>Load assessment view to clone</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersLoadAssessment"/>
        </filterChains>
    </service>
    <service>
        <name>LoadScheduleAssessment</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.LoadAssessmentService</implementationClass>
        <description>Load assessment view to clone</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersLoadAssessment"/>
        </filterChains>
    </service>
    <service>
        <name>ScheduleAssessment</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.ScheduleAssessmentService</implementationClass>
        <description>Schedule assessment</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>scheduleAssessmentService</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="OwnersLoadAssessment"/>-->
        </filterChains>
    </service>
    <service>
        <name>LoadAssessmentResponse</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.LoadAssessmentResponseService</implementationClass>
        <description>Load assessment response view</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersLoadAssessmentResponse"/>
        </filterChains>
    </service>
    <service>
        <name>LoadAssessmentResponses</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.LoadAssessmentResponsesService</implementationClass>
        <description>Load assessment response view</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadAssessmentResponses</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="OwnersLoadAssessmentResponse"/>-->
        </filterChains>
    </service>
    <service>
        <name>LoadQuestionsResponses</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.LoadAssessmentResponsesService</implementationClass>
        <description>Load assessment response view</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadQuestionsResponses</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="OwnersLoadAssessmentResponse"/>-->
        </filterChains>
    </service>
    <service>
        <name>LoadQuestionResponses</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.LoadAssessmentResponsesService</implementationClass>
        <description>Load assessment response view</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadQuestionResponses</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="OwnersLoadAssessmentResponse"/>-->
        </filterChains>
    </service>
    <service>
        <name>InsertAssessmentAnswers</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.InsertAssessmentAnswersService</implementationClass>
        <description>Insert assessments answers</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersLoadAssessmentResponse"/>
        </filterChains>
    </service>
    <service>
        <name>EvaluateAssessmentResponse</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.EvaluateAssessmentsService</implementationClass>
        <description>Insert assessments answers</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>evaluateAssessmentResponse</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="OwnersLoadAssessmentResponse"/>-->
        </filterChains>
    </service>
    <service>
        <name>EvaluateQuestionResponses</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.EvaluateAssessmentsService</implementationClass>
        <description>Insert assessments answers</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>evaluateQuestionResponses</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="OwnersLoadAssessmentResponse"/>-->
        </filterChains>
    </service>
    <service>
        <name>GenerateEvaluationsPdf</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.GeneratePdfService</implementationClass>
        <description>Insert assessments answers</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>generateEvaluationsPdf</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="OwnersLoadAssessmentResponse"/>-->
        </filterChains>
    </service>
    <service>
        <name>GenerateAssessmentPdf</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.GeneratePdfService</implementationClass>
        <description>Insert assessments answers</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>generateAssessmentPdf</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="OwnersLoadAssessment"/>-->
        </filterChains>
    </service>



    <service>
        <name>LoadUnitOtherYearsWithProgram</name>
        <implementationClass>pt.estgp.estgweb.services.sigesimports.SincronizeLastYearCourseUnitProgramsService</implementationClass>
        <description>Loads units with program from diferent year parameters (Long unitId)</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>findOtherUnitsWithProgram</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>

    <service>
        <name>CloneCourseUnitProgram</name>
        <implementationClass>pt.estgp.estgweb.services.sigesimports.SincronizeLastYearCourseUnitProgramsService</implementationClass>
        <description>Clone unit program from a unit into another unit parameters (long fromUnitId, long intoUnitId) </description>
        <isTransactional>true</isTransactional>
        <defaultMethod>cloneProgram</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>



    <!--PROCESSOS-->
    <service>
        <name>CreateNewProcess</name>
        <implementationClass>pt.estgp.estgweb.services.processes.ProcessesService</implementationClass>
        <description>Create a new instance of Process and transitates it </description>
        <isTransactional>true</isTransactional>
        <defaultMethod>submitNew</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>


    <!--Atention this method should be used with carefully because loads an object inconditionally without checking permissions-->
    <service>
        <name>LoadObjectService</name>
        <implementationClass>pt.estgp.estgweb.services.common.LoadObjectService</implementationClass>
        <description>Loads an object from Object Repository</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>load</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>


    <!--DIRECTORIES-->

    <service>
        <name>LoadDirectoryService</name>
        <implementationClass>pt.estgp.estgweb.services.directories.DirectoryService</implementationClass>
        <description>Loads a Directory</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadDirectory</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ServicesOrAdmin"/>
        </filterChains>
    </service>
    <service>
        <name>LoadDirectoryConfiguration</name>
        <implementationClass>pt.estgp.estgweb.services.directories.DirectoryService</implementationClass>
        <description>Loads a Directory</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadDirectoryConfiguration</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ServicesOrAdmin"/>
        </filterChains>
    </service>
    <service>
        <name>LoadDirectoryConfigurationCached</name>
        <implementationClass>pt.estgp.estgweb.services.directories.DirectoryService</implementationClass>
        <description>Loads a Directory</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadDirectoryConfigurationCached</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>LoadDirectoryServiceXml</name>
        <implementationClass>pt.estgp.estgweb.services.directories.DirectoryService</implementationClass>
        <description>Loads a Directory</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadDirectoryXml</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>LoadDirectoryServiceHtml</name>
        <implementationClass>pt.estgp.estgweb.services.directories.DirectoryService</implementationClass>
        <description>Loads a Directory and style it with XSL</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadDirectoryHtml</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>SaveDirectoryService</name>
        <implementationClass>pt.estgp.estgweb.services.directories.DirectoryService</implementationClass>
        <description>Save a Directory Object</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>saveDirectory</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>

    <service>
        <name>LoadJobServiceTaskSchedullers</name>
        <implementationClass>pt.estgp.estgweb.services.jobs.JobServiceInterfaces</implementationClass>
        <description>Save a Directory Object</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadJobServiceTaskSchedullers</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>

    <service>
        <name>LoadJobServiceTask</name>
        <implementationClass>pt.estgp.estgweb.services.jobs.JobServiceInterfaces</implementationClass>
        <description>Save a Directory Object</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadJobServiceTask</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ServicesOrAdmin"/>
        </filterChains>
    </service>

    <service>
        <name>LoadJobServiceTaskScheduler</name>
        <implementationClass>pt.estgp.estgweb.services.jobs.JobServiceInterfaces</implementationClass>
        <description>Save a Directory Object</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadJobServiceTaskScheduler</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>

    <service>
        <name>RunNowJobServiceTaskScheduller</name>
        <implementationClass>pt.estgp.estgweb.services.jobs.JobScheduleService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>runNow</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>ToggleActiveJobServiceTaskScheduller</name>
        <implementationClass>pt.estgp.estgweb.services.jobs.JobScheduleService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>toggleActive</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>DeleteJobServiceTaskScheduller</name>
        <implementationClass>pt.estgp.estgweb.services.jobs.JobScheduleService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>delete</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>

    <service>
        <name>SaveJobServiceTaskScheduler</name>
        <implementationClass>pt.estgp.estgweb.services.jobs.JobScheduleService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>save</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>



    <service>
        <name>TryDeleteCourseUnitService</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.DeleteCourseUnitService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>tryDelete</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>

    <service>
        <name>LoadCandidatesDeleteCourseUnitService</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.DeleteCourseUnitService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadDeleteCandidates</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>

    <service>
        <name>DeleteAllNoWarnCourseUnitService</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.DeleteCourseUnitService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>deleteCandidatesNoWarn</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>DeleteAllCourseUnitService</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.DeleteCourseUnitService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>deleteCandidatesAll</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>


    <!--UserRole Services-->
    <service>
        <name>LoadRoleTranslationsIfDirty</name>
        <implementationClass>pt.estgp.estgweb.services.users.UserRoleConfigService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadRolesIfDirty</defaultMethod>
        <filterChains>
            <!--<chain name="Logger"/>-->
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>RefreshNewStandardRoles</name>
        <implementationClass>pt.estgp.estgweb.services.users.UserRoleConfigService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>checkIfAreNewStandardRoles</defaultMethod>
        <filterChains>
            <!--<chain name="Logger"/>-->
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>

    <service>
        <name>AddUpdateDirtyRolesTranslation</name>
        <implementationClass>pt.estgp.estgweb.services.users.UserRoleConfigService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>addUpdateDirtRolesTranslation</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>

    <service>
        <name>AddUpdateRoleTranslation</name>
        <implementationClass>pt.estgp.estgweb.services.users.UserRoleConfigService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>addUpdateRole</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>


    <!--PageContents security is done in service by checking clearances-->
    <service>
        <name>loadPage</name>
        <implementationClass>pt.estgp.estgweb.services.pageContent.PageContentService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadPage</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>loadPageSection</name>
        <implementationClass>pt.estgp.estgweb.services.pageContent.PageContentService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadPageSection</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>



    <!--Questionarios New-->
    <service>
        <name>loadQuestionarioAdmin</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadQuestionario</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>

    <service>
        <name>NewQuestionarioForm</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>newQuestionarioForm</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="AdminsOrQuestionarioAdmins"/>
        </filterChains>
    </service>
    <service>
        <name>saveQuestionarioForm</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>saveQuestionarioForm</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="QuestionarioClearancesPreSave"/>
        </filterChains>
    </service>

    <service>
        <name>setAnoSemestre</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>setAnoSemestre</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>

    <service>
        <name>SetQuestionarioAssignDetailsState</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
        <description>Altera o estado para afetacoes</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>setAssignDetailsState</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>

    <service>
        <name>DeleteQuestionario</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>deleteQuestionario</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>


    <service>
        <name>RunJobSelectCourses</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>runJobSelectCourses</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>

    <service>
        <name>QuestionarioRevertAllAssignmentsPedagogico</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>revertAllAssignments</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="AdminsOrQuestionarioAdmins"/>
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>

    <service>
        <name>QuestionarioUpdateTipologiasPedagogico</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>updateTipologiasPedagogico</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="AdminsOrQuestionarioUsers"/>
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>


    <service>
        <name>QuestionarioUpdateCheckVarPedagogico</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>updateCheckVarPedagogico</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="AdminsOrQuestionarioUsers"/>
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>





</serviceDefinitions>