Как правильно изменять список одной сущности из другой? Есть какой-то профсоюз и у него есть список мероприятий, этот список может редактировать только профорги. Как правильно осуществить изменение списка мероприятий? class ProfOrg { public ProfOrg(List events) { this.events = events; } private List events; public void AddEvent(UnionEvent unionEvent) { events.Add(unionEvent); } } class Union { public Union() { events = new List(); profOrg = new ProfOrg(events); } private List events; private ProfOrg profOrg; public List Events { get { return new List(events);} } } Или же добавить методы добавления/редактирования мероприятий в сам класс профсоюза?
Можно добавить методы добавления/редактирования мероприятий в сам класс профсоюза. Например, вы можете добавить методы AddEvent и EditEvent в класс ProfOrg:
class ProfOrg { public ProfOrg(List<UnionEvent> events) { this.events = events; } private List<UnionEvent> events; public void AddEvent(UnionEvent unionEvent) { events.Add(unionEvent); } public void EditEvent(UnionEvent oldEvent, UnionEvent newEvent) { int index = events.IndexOf(oldEvent); if (index != -1) { events[index] = newEvent; } } }
Затем вы сможете вызывать эти методы из класса Union для изменения списка мероприятий:
class Union { public Union() { events = new List<UnionEvent>(); profOrg = new ProfOrg(events); } private List<UnionEvent> events; private ProfOrg profOrg; public void AddEvent(UnionEvent unionEvent) { profOrg.AddEvent(unionEvent); } public void EditEvent(UnionEvent oldEvent, UnionEvent newEvent) { profOrg.EditEvent(oldEvent, newEvent); } public List<UnionEvent> Events { get { return new List<UnionEvent>(events); } } }
Таким образом, вы сможете правильно осуществить изменение списка мероприятий через методы класса ProfOrg, которые доступны только профоргам.
Можно добавить методы добавления/редактирования мероприятий в сам класс профсоюза. Например, вы можете добавить методы AddEvent и EditEvent в класс ProfOrg:
class ProfOrg{
public ProfOrg(List<UnionEvent> events)
{
this.events = events;
}
private List<UnionEvent> events;
public void AddEvent(UnionEvent unionEvent)
{
events.Add(unionEvent);
}
public void EditEvent(UnionEvent oldEvent, UnionEvent newEvent)
{
int index = events.IndexOf(oldEvent);
if (index != -1)
{
events[index] = newEvent;
}
}
}
Затем вы сможете вызывать эти методы из класса Union для изменения списка мероприятий:
class Union{
public Union()
{
events = new List<UnionEvent>();
profOrg = new ProfOrg(events);
}
private List<UnionEvent> events;
private ProfOrg profOrg;
public void AddEvent(UnionEvent unionEvent)
{
profOrg.AddEvent(unionEvent);
}
public void EditEvent(UnionEvent oldEvent, UnionEvent newEvent)
{
profOrg.EditEvent(oldEvent, newEvent);
}
public List<UnionEvent> Events { get { return new List<UnionEvent>(events); } }
}
Таким образом, вы сможете правильно осуществить изменение списка мероприятий через методы класса ProfOrg, которые доступны только профоргам.