static public void PropagiireVonScnapscusNaacMengeZuusctand <ObjektType>( Int64 ScnapscusZait, IEnumerable <ObjektIdentScnapscusType> ScnapscusMengeObjektZuusctand, ICollection <ObjektType> MengeObjektZuusctand) where ObjektType : SictZuObjektMengeScnapscusZuZaitAggr <ObjektIdentScnapscusType, SictScnapscusAlsFortsazZuuläsigType, SictZuusazInfoScnapscusType>, new() { if (null == MengeObjektZuusctand) { return; } var MengeObjektZuusctandBeraitsVersorgt = MengeObjektZuusctand.Take(0).ToList(); if (null != ScnapscusMengeObjektZuusctand) { foreach (var ScnapscusObjektZuusctand in ScnapscusMengeObjektZuusctand) { var ObjektZuusctand = MengeObjektZuusctand.FirstOrDefault((Kandidaat) => Kandidaat.PasendZuBisherige(ScnapscusObjektZuusctand)); if (null == ObjektZuusctand) { ObjektZuusctand = new ObjektType(); MengeObjektZuusctand.Add(ObjektZuusctand); } MengeObjektZuusctandBeraitsVersorgt.Add(ObjektZuusctand); ObjektZuusctand.AingangScnapscus(ScnapscusZait, ScnapscusObjektZuusctand); } } var MengeObjektOoneAusScnapscusZuusctand = MengeObjektZuusctand.Except(MengeObjektZuusctandBeraitsVersorgt); foreach (var ObjektOoneAusScnapscusZuusctand in MengeObjektOoneAusScnapscusZuusctand) { ObjektOoneAusScnapscusZuusctand.AingangScnapscusLeer(ScnapscusZait); } }
static public void ZuZaitAingangMengeObjektScnapscus <AbgelaiteteType>( Int64 Zait, IEnumerable <ObjektIdentScnapscusType> MengeObjektScnapscus, IList <AbgelaiteteType> ZiilListeObjektZuusctandAggr, bool TailmengeWelceNictInScnapscusRepräsentiirtEntferne = false, SictZuusazInfoScnapscusType ZuusazInfoScnapscus = default(SictZuusazInfoScnapscusType)) where AbgelaiteteType : SictZuObjektMengeScnapscusZuZaitAggr <ObjektIdentScnapscusType, SictScnapscusAlsFortsazZuuläsigType, SictZuusazInfoScnapscusType>, new() { if (null == ZiilListeObjektZuusctandAggr) { return; } var MengeObjektRepräsentiirtInScnapscus = new List <AbgelaiteteType>(); if (null != MengeObjektScnapscus) { foreach (var ObjektScnapscus in MengeObjektScnapscus) { var ObjektZuusctandAggr = ZiilListeObjektZuusctandAggr.FirstOrDefault((Kandidaat) => Kandidaat.PasendZuBisherige(ObjektScnapscus)); if (null == ObjektZuusctandAggr) { ObjektZuusctandAggr = new AbgelaiteteType(); ZiilListeObjektZuusctandAggr.Add(ObjektZuusctandAggr); } MengeObjektRepräsentiirtInScnapscus.Add(ObjektZuusctandAggr); ObjektZuusctandAggr.AingangScnapscus(Zait, ObjektScnapscus, ZuusazInfoScnapscus); } } var MengeObjektRepräsentiirtInScnapscusNict = ZiilListeObjektZuusctandAggr.Except(MengeObjektRepräsentiirtInScnapscus).ToArray(); foreach (var ObjektRepräsentiirtInScnapscusNict in MengeObjektRepräsentiirtInScnapscusNict) { if (TailmengeWelceNictInScnapscusRepräsentiirtEntferne) { ZiilListeObjektZuusctandAggr.Remove(ObjektRepräsentiirtInScnapscusNict); } else { if (null != ObjektRepräsentiirtInScnapscusNict) { ObjektRepräsentiirtInScnapscusNict.AingangScnapscusLeer(Zait, ZuusazInfoScnapscus); } } } // !!!! Ainbau erhaltung Ordnung }