branch feature/7458-topiaServices updated (7466965 -> 00f7dd6)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7458-topiaServices in repository observe. See http://git.codelutin.com/observe.git from 7466965 add referenceDtoTypes (refs #7458). new 00f7dd6 implantation SetSeineServiceTopia (refs #7458). The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 00f7dd67e26d2d2061f7192835f480d29c001ff9 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 26 15:15:42 2015 +0200 implantation SetSeineServiceTopia (refs #7458). Summary of changes: .../services/service/seine/SetSeineService.java | 7 +- .../service/seine/SetSeineServiceTopia.java | 116 +++++++++++++++++++++ 2 files changed, 118 insertions(+), 5 deletions(-) create mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/SetSeineServiceTopia.java -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7458-topiaServices in repository observe. See http://git.codelutin.com/observe.git commit 00f7dd67e26d2d2061f7192835f480d29c001ff9 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 26 15:15:42 2015 +0200 implantation SetSeineServiceTopia (refs #7458). --- .../services/service/seine/SetSeineService.java | 7 +- .../service/seine/SetSeineServiceTopia.java | 116 +++++++++++++++++++++ 2 files changed, 118 insertions(+), 5 deletions(-) diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SetSeineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SetSeineService.java index 34665f7..7b22313 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SetSeineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SetSeineService.java @@ -2,7 +2,6 @@ package fr.ird.observe.services.service.seine; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; -import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.seine.SetSeineDto; import fr.ird.observe.services.spi.Write; @@ -11,16 +10,14 @@ import fr.ird.observe.services.spi.Write; */ public interface SetSeineService extends ObserveService { - ReferenceDto<SetSeineDto> getSetSeineByActivitySeine(String activitySeineId); - FormDto<SetSeineDto> loadToRead(String setSeineId); FormDto<SetSeineDto> loadToEdit(String setSeineId); - FormDto<SetSeineDto> preCreate(String activitySeineId); + FormDto<SetSeineDto> preCreate(String routeId, String activitySeineId); @Write - String save(FormDto<SetSeineDto> form); + String save(String activitySeineId, FormDto<SetSeineDto> form); @Write void delete(String activitySeineId, String setSeineId); diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/SetSeineServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/SetSeineServiceTopia.java new file mode 100644 index 0000000..aedd910 --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/SetSeineServiceTopia.java @@ -0,0 +1,116 @@ +package fr.ird.observe.services.service.seine; + +import fr.ird.observe.entities.constants.seine.SchoolType; +import fr.ird.observe.entities.seine.ActivitySeine; +import fr.ird.observe.entities.seine.Route; +import fr.ird.observe.entities.seine.SetSeine; +import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.seine.ActivitySeineDto; +import fr.ird.observe.services.dto.seine.RouteDto; +import fr.ird.observe.services.dto.seine.SetSeineDto; +import fr.ird.observe.services.service.DataNotFoundException; +import org.nuiton.util.DateUtil; + +import java.util.Date; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class SetSeineServiceTopia extends ObserveServiceTopia implements SetSeineService { + + @Override + public FormDto<SetSeineDto> loadToRead(String setSeineId) { + + SetSeine setSeine = loadEntity(SetSeineDto.class, SetSeine.class, setSeineId); + + FormDto<SetSeineDto> form = entityToReadFormDto(SetSeineDto.class, SetSeine.class, setSeine); + + return form; + } + + @Override + public FormDto<SetSeineDto> loadToEdit(String setSeineId) { + + SetSeine setSeine = loadEntity(SetSeineDto.class, SetSeine.class, setSeineId); + + FormDto<SetSeineDto> form = entityToEditFormDto(SetSeineDto.class, SetSeine.class, setSeine); + + return form; + } + + @Override + public FormDto<SetSeineDto> preCreate(String routeId, String activitySeineId) { + + Route route = loadEntity(RouteDto.class, Route.class, routeId); + + ActivitySeine activitySeine = loadEntity(ActivitySeineDto.class, ActivitySeine.class, activitySeineId); + + if (! route.containsActivitySeine(activitySeine)) { + throw new DataNotFoundException(ActivitySeineDto.class, activitySeineId); + } + + + // on utilise l'heure de l'activité comme début de calée + Date date = DateUtil.getTime(activitySeine.getTime(), false, false); + + SetSeine preCreated = newEntity(SetSeine.class); + + preCreated.setStartTime(date); + + // pour les dates de fin on utilise la date de la route + Date routeDate = route.getDate(); + + preCreated.setEndSetTimeStamp(date); + preCreated.setEndPursingTimeStamp(date); + + preCreated.setEndSetDate(routeDate); + preCreated.setEndPursingDate(routeDate); + + // recuperation du type de set a partir de l'activity + SchoolType schoolType = activitySeine.getSchoolType(); + preCreated.setSchoolType(schoolType); + + FormDto<SetSeineDto> form = entityToEditFormDto(SetSeineDto.class, SetSeine.class, preCreated); + + return form; + + } + + @Override + public String save(String activitySeineId, FormDto<SetSeineDto> form) { + + ActivitySeine activitySeine = loadEntity(ActivitySeineDto.class, ActivitySeine.class, activitySeineId); + + SetSeineDto setSeineDto = form.getForm(); + + SetSeine setSeine = dtoToEntity(SetSeineDto.class, SetSeine.class, setSeineDto); + + setSeine = saveEntity(SetSeine.class, setSeine); + + if (setSeineDto.isNotPersisted()) { + + activitySeine.setSetSeine(setSeine); + + saveEntity(ActivitySeine.class, activitySeine); + + } + + return setSeine.getTopiaId(); + } + + @Override + public void delete(String activitySeineId, String setSeineId) { + + ActivitySeine activitySeine = loadEntity(ActivitySeineDto.class, ActivitySeine.class, activitySeineId); + + SetSeine setSeine = loadEntity(SetSeineDto.class, SetSeine.class, setSeineId); + + if (!activitySeine.getSetSeine().equals(setSeine)) { + throw new DataNotFoundException(SetSeineDto.class, setSeineId); + } + + activitySeine.setSetSeine(null); + + } +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm