public Level UpdateLevel(Level level) { _Trace.TraceEvent(TraceEventType.Verbose, -1, "UpdateLevel"); CriticalResultsEntityManager manager = new CriticalResultsEntityManager(); LevelEntity entity = manager.UpdateLevel(level.Uuid, level.Name, level.Description, level.ShortDescription, level.ColorValue, level.EscalationTimeout, level.DueTimeout, level.DirectContactRequired); if (level.Transports != null) { List<TransportLevelEntity> transportsToRemove = new List<TransportLevelEntity>(); transportsToRemove.AddRange(entity.TransportLevels); foreach(TransportLevelEntity tle in transportsToRemove) { if (!tle.TransportReference.IsLoaded) { tle.TransportReference.Load(); } manager.RemoveTransportFromLevel(level.Uuid, tle.Transport.Name); } foreach (Transport t in level.Transports) { bool mandatory = false; foreach (Transport mT in level.MandatoryTransports) { if (t.Name == mT.Name) { mandatory = true; } } manager.CreateTransportLevelEntity(level.Uuid, t.Name, mandatory); } } return new Level(entity); }