package org.ovirt.engine.core.bll;
import java.util.ArrayList;
import java.util.List;
import org.ovirt.engine.core.common.businessentities.event_subscriber;
import org.ovirt.engine.core.common.queries.GetEventSubscribersBySubscriberIdParameters;
import org.ovirt.engine.core.compat.StringHelper;
import org.ovirt.engine.core.dal.dbbroker.DbFacade;
public class GetEventSubscribersBySubscriberIdGroupedQuery<P extends GetEventSubscribersBySubscriberIdParameters>
extends QueriesCommandBase<P> {
public GetEventSubscribersBySubscriberIdGroupedQuery(P parameters) {
super(parameters);
}
@Override
protected void executeQueryCommand() {
List<event_subscriber> list = DbFacade
.getInstance()
.getEventDAO()
.getAllForSubscriber(
getParameters().getSubscriberId());
if (list.size() > 0) {
java.util.HashMap<String, event_subscriber> dic = new java.util.HashMap<String, event_subscriber>();
for (event_subscriber ev : list) {
// event_subscriber foundEv = groupedList.FirstOrDefault(a =>
// a.event_up_name == ev.event_up_name);
if (dic.containsKey(ev.getevent_up_name())) {
dic.get(ev.getevent_up_name()).settag_name(
dic.get(ev.getevent_up_name()).gettag_name() + ", " + ev.gettag_name());
} else {
dic.put(ev.getevent_up_name(), ev);
}
}
java.util.ArrayList<event_subscriber> groupedList = new ArrayList<event_subscriber>(dic.values());
for (event_subscriber event : groupedList) {
event.settag_name(StringHelper.trim(event.gettag_name(), new char[] { ',', ' ' }));
}
getQueryReturnValue().setReturnValue(groupedList);
} else {
getQueryReturnValue().setReturnValue(list);
}
}
}