public void AddOrUpdateLine(DataLine dataLine, int stamp)
        {
            try
            {
                Node source = modelDatabase.GetNode(dataLine.Source);

                if (!TryGetTarget(dataLine, out Node target))
                {
                    return;
                }

                if (TryGetLine(source, target, out Line line))
                {
                    // Already added link
                    line.Stamp = stamp;

                    if (dataLine.Points == null)
                    {
                        if (modelDatabase.TryGetSavedLine(source.Name, target.Name, out DataLine savedLine))
                        {
                            line.View.Points.InsertRange(1, savedLine.Points);
                        }
                    }

                    return;
                }

                AddLine(source, target, dataLine.LinkCount, dataLine.Points);
            }
            catch (Exception e)
            {
                Log.Exception(e, $"Failed to update link {dataLine}");
                throw;
            }
        }