From 5d1c34515a6530c2780ff210cdb067ebd2121edb Mon Sep 17 00:00:00 2001
From: Fredrik Friis <fred-fri@dsv.su.se>
Date: Thu, 12 Apr 2012 13:46:28 +0900
Subject: [PATCH] added service methods

---
 .../serviceimpls/ChecklistServiceImpl.java    | 21 +++++++++++++++++++
 .../springdata/services/ChecklistService.java |  7 +++++--
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ChecklistServiceImpl.java b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ChecklistServiceImpl.java
index df5718698f..b1d5fc0de3 100644
--- a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ChecklistServiceImpl.java
+++ b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ChecklistServiceImpl.java
@@ -5,10 +5,14 @@ import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import se.su.dsv.scipro.data.dataobjects.CheckList;
+import se.su.dsv.scipro.data.dataobjects.CheckListAnswer;
+import se.su.dsv.scipro.data.dataobjects.CheckListQuestion;
+import se.su.dsv.scipro.data.dataobjects.User;
 import se.su.dsv.scipro.springdata.repos.ChecklistRepo;
 import se.su.dsv.scipro.springdata.services.ChecklistService;
 
 import javax.annotation.Resource;
+import java.util.Date;
 
 /**
  * @author: fred-fri
@@ -28,5 +32,22 @@ public class ChecklistServiceImpl extends AbstractQueryService<CheckList, Long>
 		super(checklistRepo, checklistRepo);
 		System.out.println("BLA BLA");
 	}
+    
+    @Override
+    public CheckList updateUserLastOpenDate(CheckList checklist, User user) {
+        checklist.getUserLastOpenDate().put(user, new Date());
+        return checklistRepo.save(checklist);
+    }
 
+    @Override
+    public boolean hasChangedSinceUserLastOpenDate(CheckList checklist, User user) {
+        for (CheckListQuestion clq : checklist.getQuestions()){
+            for (CheckListAnswer cla : clq.getAnswers()){
+                if (cla.getLastModified().after(checklist.getUserLastOpenDate().get(user))){
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
 }
diff --git a/src/main/java/se/su/dsv/scipro/springdata/services/ChecklistService.java b/src/main/java/se/su/dsv/scipro/springdata/services/ChecklistService.java
index 6fd17981eb..9213a4ef15 100644
--- a/src/main/java/se/su/dsv/scipro/springdata/services/ChecklistService.java
+++ b/src/main/java/se/su/dsv/scipro/springdata/services/ChecklistService.java
@@ -1,6 +1,7 @@
 package se.su.dsv.scipro.springdata.services;
 
 import se.su.dsv.scipro.data.dataobjects.CheckList;
+import se.su.dsv.scipro.data.dataobjects.User;
 
 /**
  * @author: fred-fri
@@ -8,6 +9,8 @@ import se.su.dsv.scipro.data.dataobjects.CheckList;
  */
 public interface ChecklistService extends CrudService<CheckList, Long>, QueryService<CheckList, Long> {
 
-    //nothing here yet
-
+    public CheckList updateUserLastOpenDate(CheckList checklist, User user);
+    
+    public boolean hasChangedSinceUserLastOpenDate(CheckList checklist, User user);
+    
 }