Skip to content

Instantly share code, notes, and snippets.

@mrasityilmaz
Created September 21, 2022 20:30
Show Gist options
  • Save mrasityilmaz/5747e8ab3aaa67e390a2aa393f680bef to your computer and use it in GitHub Desktop.
Save mrasityilmaz/5747e8ab3aaa67e390a2aa393f680bef to your computer and use it in GitHub Desktop.
void main() {
List<Object> eventList = [
Event(
eventTime: DateTime(1961, 05, 12),
),
[
Event(
eventTime: DateTime(1963, 05, 12),
),
Event(
eventTime: DateTime(1963, 05, 12),
),
Event(
eventTime: DateTime(1963, 05, 12),
),
],
Event(
eventTime: DateTime(1964, 05, 12),
),
];
eventList = addNewEvent(
Event(
eventTime: DateTime(1964, 05, 12),
),
eventList);
print(eventList);
}
List<Object> addNewEvent(Event newEvent, List<Object> eventList) {
List<Object> newList = eventList;
if (eventList.any((element) {
if (element is Event) {
if (element.eventTime == newEvent.eventTime) {
return true;
}
return false;
} else {
if ((element as List<Event>)[0].eventTime == newEvent.eventTime) {
return true;
}
return false;
}
})) {
for (var i = 0; i < eventList.length; i++) {
if (eventList[i] is Event) {
if ((eventList[i] as Event).eventTime == newEvent.eventTime) {
newList[i] = [eventList[i], newEvent];
}
} else {
if ((eventList[i] as List<Event>)[0].eventTime == newEvent.eventTime) {
(newList[i] as List<Event>).add(newEvent);
}
}
}
} else {
if (eventList.isNotEmpty) {
for (var i = 0; i < eventList.length; i++) {
if (eventList[i] is Event) {
if ((eventList[i] as Event).eventTime.compareTo(newEvent.eventTime) ==
1) {
newList.insert(i, newEvent);
}
}
}
} else {
newList.add(newEvent);
}
}
return newList;
}
class Event {
DateTime eventTime;
Event({required this.eventTime});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment