You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by aw...@apache.org on 2019/04/30 08:25:00 UTC

[fineract-cn-group] 26/40: adding UpdateGroupdefinition in Group aggregate

This is an automated email from the ASF dual-hosted git repository.

awasum pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract-cn-group.git

commit 57e94d31668c0e23ead4921409af7441995bae28
Author: kengneruphine <ru...@gmail.com>
AuthorDate: Thu Jun 28 11:17:56 2018 +0100

    adding UpdateGroupdefinition in Group aggregate
---
 .../fineract/cn/group/api/v1/EventConstants.java   |  2 ++
 .../internal/command/handler/GroupAggregate.java   | 41 ++++++++++++++++++++++
 2 files changed, 43 insertions(+)

diff --git a/api/src/main/java/org/apache/fineract/cn/group/api/v1/EventConstants.java b/api/src/main/java/org/apache/fineract/cn/group/api/v1/EventConstants.java
index 435ac6d..99c5feb 100644
--- a/api/src/main/java/org/apache/fineract/cn/group/api/v1/EventConstants.java
+++ b/api/src/main/java/org/apache/fineract/cn/group/api/v1/EventConstants.java
@@ -29,6 +29,8 @@ public interface EventConstants {
 
   String POST_GROUP_DEFINITION = "post-group-definition";
   String SELECTOR_POST_GROUP_DEFINITION = SELECTOR_NAME + " = '" + POST_GROUP_DEFINITION + "'";
+  String PUT_GROUP_DEFINITION = "put-group-definition";
+  String SELECTOR_PUT_GROUP_DEFINITION = SELECTOR_NAME + " = '" + PUT_GROUP_DEFINITION + "'";
 
   String POST_GROUP = "post-group";
   String SELECTOR_POST_GROUP = SELECTOR_NAME + " = '" + POST_GROUP + "'";
diff --git a/service/src/main/java/org/apache/fineract/cn/group/internal/command/handler/GroupAggregate.java b/service/src/main/java/org/apache/fineract/cn/group/internal/command/handler/GroupAggregate.java
index 2ddf42f..9402729 100644
--- a/service/src/main/java/org/apache/fineract/cn/group/internal/command/handler/GroupAggregate.java
+++ b/service/src/main/java/org/apache/fineract/cn/group/internal/command/handler/GroupAggregate.java
@@ -29,6 +29,7 @@ import org.apache.fineract.cn.group.internal.command.ActivateGroupCommand;
 import org.apache.fineract.cn.group.internal.command.CloseGroupCommand;
 import org.apache.fineract.cn.group.internal.command.CreateGroupCommand;
 import org.apache.fineract.cn.group.internal.command.CreateGroupDefinitionCommand;
+import org.apache.fineract.cn.group.internal.command.UpdateGroupDefinitionCommand;
 import org.apache.fineract.cn.group.internal.command.ReopenGroupCommand;
 import org.apache.fineract.cn.group.internal.command.SignOffMeetingCommand;
 import org.apache.fineract.cn.group.internal.command.UpdateAssignedEmployeeCommand;
@@ -53,6 +54,7 @@ import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.temporal.ChronoField;
 import java.util.List;
+import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 import org.apache.fineract.cn.api.util.UserContextHolder;
@@ -112,6 +114,45 @@ public class GroupAggregate {
 
     return groupDefinition.getIdentifier();
   }
+//
+//    @Transactional
+//    @CommandHandler
+//    @EventEmitter(selectorName = EventConstants.SELECTOR_NAME, selectorValue = EventConstants.PUT_GROUP_DEFINITION)
+//    public String updateDefinition1(final UpdateGroupDefinitionCommand updateGroupDefinitionCommand) {
+//      final GroupDefinition updatedGroupDefinition = updateGroupDefinitionCommand.groupDefinition();
+//
+//        final Optional<GroupDefinitionEntity> groupDefinitionEntity = this.groupDefinitionRepository.findByIdentifier(updateGroupDefinitionCommand.identifier());
+//      groupDefinitionEntity.setDescription(updatedGroupDefinition.getDescription());
+//        groupDefinitionEntity.setMinimalSize(updatedGroupDefinition.getMinimalSize());
+//        groupDefinitionEntity.setMaximalSize(updatedGroupDefinition.getMaximalSize());
+//        final Cycle cycle = updatedGroupDefinition.getCycle();
+//        groupDefinitionEntity.setNumberOfMeetings(cycle.getNumberOfMeetings());
+//        groupDefinitionEntity.setFrequency(cycle.getFrequency());
+//        groupDefinitionEntity.setAdjustment(cycle.getAdjustment());
+//
+//        this.groupDefinitionRepository.save(groupDefinitionEntity);
+//
+//        return updatedGroupDefinition.getIdentifier();
+//    }
+
+  @Transactional
+  @CommandHandler
+  @EventEmitter(selectorName = EventConstants.SELECTOR_NAME, selectorValue = EventConstants.PUT_GROUP)
+  public String updateDefinition(final UpdateGroupDefinitionCommand updateGroupDefinitionCommand) {
+    final GroupDefinition updatedGroupDefinition = updateGroupDefinitionCommand.groupDefinition();
+    final Cycle cycle = updatedGroupDefinition.getCycle();
+    this.groupDefinitionRepository.findByIdentifier(updateGroupDefinitionCommand.identifier())
+            .ifPresent(groupDefinitionEntity -> {
+              groupDefinitionEntity.setDescription(updatedGroupDefinition.getDescription());
+              groupDefinitionEntity.setMinimalSize(updatedGroupDefinition.getMinimalSize());
+              groupDefinitionEntity.setMaximalSize(updatedGroupDefinition.getMaximalSize());
+              groupDefinitionEntity.setNumberOfMeetings(cycle.getNumberOfMeetings());
+              groupDefinitionEntity.setFrequency(cycle.getFrequency());
+              groupDefinitionEntity.setAdjustment(cycle.getAdjustment());
+              this.groupDefinitionRepository.save(groupDefinitionEntity);
+            });
+    return updateGroupDefinitionCommand.identifier();
+  }
 
   @Transactional
   @CommandHandler