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 <[email protected]>
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

Reply via email to