public TimeDiagram CreateDiagram <T>(IGraphicsFactory <T, IGraph> factory, out InteractiveDiagram interactiveDiagram) where T : InteractiveDiagram { List <string> labels = new List <string>(Parameters.ChannelCount + Parameters.QueueCapacity + 3); labels.Add("Заявки"); for (int i = 0; i < Parameters.ChannelCount; i++) { labels.Add($"Канал { Parameters.ChannelCount - i }"); } for (int i = 0; i < Parameters.QueueCapacity; i++) { labels.Add($"Место { Parameters.QueueCapacity - i }"); } labels.Add("Обслужено"); labels.Add("Отказ"); T idg = factory.CreateEmptyDiagram(labels); TimeDiagram diagram = new TimeDiagram(Parameters.ChannelCount, Parameters.QueueCapacity, idg); FillDiagram(diagram); interactiveDiagram = idg; return(diagram); }