1
Files
lecture-professional-softwa…/src/main/java/mops/gruppen2/entities/Gruppe.java
Christoph 05feef8356 Merge remote-tracking branch 'origin/Services' into Services
# Conflicts:
#	src/main/java/mops/gruppen2/entities/Gruppe.java
#	src/main/java/mops/gruppen2/services/GruppenService.java
2020-03-06 16:03:21 +01:00

70 lines
1.9 KiB
Java

package mops.gruppen2.entities;
import lombok.Data;
import lombok.EqualsAndHashCode;
import mops.gruppen2.events.*;
import mops.gruppen2.events.AddUser;
import mops.gruppen2.events.CreateGroupEvent;
import mops.gruppen2.events.UpdateGroupDescriptionEvent;
import mops.gruppen2.events.UpdateGroupTitleEvent;
import mops.gruppen2.events.DeleteUserEvent;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@EqualsAndHashCode(callSuper = true)
@Data
public class Gruppe extends Aggregat {
long id;
String titel;
String beschreibung;
List<Teilnehmer> teilnehmersList;
Map<Teilnehmer, Rolle> rollenList;
public void applyEvent(CreateGroupEvent event){
this.id = event.getId();
this.titel = event.getTitel();
this.beschreibung = event.getBeschreibung();
this.teilnehmersList = new ArrayList<>();
this.rollenList = new HashMap<>();
}
public void applyEvent(UpdateRoleEvent event) {
teilnehmersList.stream()
.filter(teilnehmer -> teilnehmer.getId().equals(event.getUser_id()))
.findFirst()
.ifPresentOrElse(teilnehmer -> rollenList.put(teilnehmer, event.getRole()),
() -> System.out.println("UserNotFoundException"));
}
public void applyEvent(AddUser event){
Teilnehmer teilnehmer = new Teilnehmer();
teilnehmer.setId(event.getUser_id());
teilnehmer.setVorname(event.getVorname());
teilnehmer.setNachname(event.getNachname());
teilnehmer.setEmail(event.getEmail());
this.teilnehmersList.add(teilnehmer);
}
public void applyEvent(UpdateGroupTitleEvent event) {
this.titel = event.getTitel();
}
public void applyEvent(UpdateGroupDescriptionEvent event) {
this.beschreibung = event.getBeschreibung();
}
public void applyEvent(DeleteUserEvent event) {
for (Teilnehmer teilnehmer: teilnehmersList) {
if (teilnehmer.getId().equals(event.getUser_id())) {
this.teilnehmersList.remove(teilnehmer);
break;
}
}
}
}