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
