surfaces ConvertPlansBack(PlansConfiguration plansConfiguration, DeviceConfiguration deviceConfiguration) { surfaces result = new surfaces(); var innerPlans = new List<surfacesSurface>(); foreach (var plan in plansConfiguration.AllPlans) { var innerPlan = new surfacesSurface(); innerPlans.Add(innerPlan); innerPlan.caption = plan.Caption; innerPlan.height = (plan.Height / 10).ToString(); innerPlan.width = (plan.Width / 10).ToString(); var layers = new List<surfacesSurfaceLayer>(); var layer = new surfacesSurfaceLayer(); layer.name = "Зоны"; layers.Add(layer); innerPlan.layer = layers.ToArray(); var elements = new List<surfacesSurfaceLayerElementsElement>(); foreach (var elementRectangle in plan.ElementRectangles) { var element = new surfacesSurfaceLayerElementsElement(); elements.Add(element); element.@class = "TSCDeRectangle"; element.rect = new surfacesSurfaceLayerElementsElementRect[1]{new surfacesSurfaceLayerElementsElementRect()}; element.rect[0].left = elementRectangle.Left.ToString(); element.rect[0].top = elementRectangle.Top.ToString(); element.rect[0].bottom = (elementRectangle.Top + elementRectangle.Height).ToString(); element.rect[0].right = (elementRectangle.Left + elementRectangle.Width).ToString(); element.rect[0].left = elementRectangle.Top.ToString(); } layer.elements = elements.ToArray(); } result.surface = innerPlans.ToArray(); return result; }
surfaces ConvertPlansBack(PlansConfiguration plansConfiguration, DeviceConfiguration deviceConfiguration) { var innerPlansConfiguration = new surfaces(); var innerPlans = new List<surfacesSurface>(); foreach (var plan in plansConfiguration.Plans.OfType<Plan>()) { surfacesSurface innerPlan = new surfacesSurface() { caption = plan.Caption, height = (plan.Height / 10).ToString(), width = (plan.Width / 10).ToString() }; innerPlans.Add(innerPlan); var mainLayer = new surfacesSurfaceLayer() { name = "План" }; var mainLayerElements = new List<surfacesSurfaceLayerElementsElement>(); foreach (var elementRectangle in plan.ElementRectangles) { var innerRectangle = new surfacesSurfaceLayerElementsElement() { @class = "TSCDeRectangle", rect = new surfacesSurfaceLayerElementsElementRect[] { GetRect(elementRectangle) } }; mainLayerElements.Add(innerRectangle); } foreach (var elementEllipse in plan.ElementEllipses) { var innerEllipse = new surfacesSurfaceLayerElementsElement() { @class = "TSCDeEllipse", rect = new surfacesSurfaceLayerElementsElementRect[] { GetRect(elementEllipse) } }; mainLayerElements.Add(innerEllipse); } foreach (var elementTextBlock in plan.ElementTextBlocks) { var innerLable = new surfacesSurfaceLayerElementsElement() { @class = "TSCDeLabel", rect = new surfacesSurfaceLayerElementsElementRect[] { GetRect(elementTextBlock) }, caption = elementTextBlock.Text }; innerLable.pen = new surfacesSurfaceLayerElementsElementPen[1]; innerLable.pen[0] = new surfacesSurfaceLayerElementsElementPen() { color = "cl" + elementTextBlock.ForegroundColor.ToString() }; innerLable.brush = new surfacesSurfaceLayerElementsElementBrush[1]; innerLable.brush[0] = new surfacesSurfaceLayerElementsElementBrush() { color = "cl" + elementTextBlock.BackgroundColor.ToString() }; mainLayerElements.Add(innerLable); } foreach (var elementPolyline in plan.ElementPolylines) { var innerPolyline = new surfacesSurfaceLayerElementsElement() { @class = "TSCDePolyLine", }; var innerPointsCollection = new List<surfacesSurfaceLayerElementsElementPointsPoint>(); foreach (var point in elementPolyline.Points) { innerPointsCollection.Add(new surfacesSurfaceLayerElementsElementPointsPoint() { x = point.X.ToString(), y = point.Y.ToString() }); } innerPolyline.points = innerPointsCollection.ToArray(); mainLayerElements.Add(innerPolyline); } foreach (var elementPolygon in plan.ElementPolygons) { var innerPolyline = new surfacesSurfaceLayerElementsElement() { @class = "TSCDePolygon", }; var innerPointsCollection = new List<surfacesSurfaceLayerElementsElementPointsPoint>(); foreach (var point in elementPolygon.Points) { innerPointsCollection.Add(new surfacesSurfaceLayerElementsElementPointsPoint() { x = point.X.ToString(), y = point.Y.ToString() }); } innerPolyline.points = innerPointsCollection.ToArray(); mainLayerElements.Add(innerPolyline); } mainLayer.elements = mainLayerElements.ToArray(); var devicesLayer = new surfacesSurfaceLayer() { name = "Устройства" }; var innerDeviceElements = new List<surfacesSurfaceLayerElementsElement>(); foreach (var elementDevice in plan.ElementDevices) { var innerDeviceElement = new surfacesSurfaceLayerElementsElement(); var innerRect = new surfacesSurfaceLayerElementsElementRect() { left = elementDevice.Left.ToString(), top = elementDevice.Top.ToString(), bottom = (elementDevice.Top + 10).ToString(), right = (elementDevice.Left + 10).ToString() }; innerDeviceElement.rect = new surfacesSurfaceLayerElementsElementRect[] { innerRect }; var device = deviceConfiguration.Devices.FirstOrDefault(x => x.UID == elementDevice.UID); if (device != null) { innerDeviceElement.id = device.ShapeIds.FirstOrDefault(); } innerDeviceElements.Add(innerDeviceElement); } devicesLayer.elements = innerDeviceElements.ToArray(); var zonesLayer = new surfacesSurfaceLayer() { name = "Зоны" }; var zoneLayerElements = new List<surfacesSurfaceLayerElementsElement>(); foreach (var elementRectangleZone in plan.ElementRectangleZones) { var innerRectangleZone = new surfacesSurfaceLayerElementsElement() { @class = "TFS_ZoneShape", rect = new surfacesSurfaceLayerElementsElementRect[] { GetRect(elementRectangleZone) } }; var zone = deviceConfiguration.Zones.FirstOrDefault(x => x.UID == elementRectangleZone.UID); if (zone != null) { innerRectangleZone.id = zone.ShapeIds.FirstOrDefault(); } zoneLayerElements.Add(innerRectangleZone); } foreach (var elementPolygonZone in plan.ElementPolygonZones) { var innerPolygonZone = new surfacesSurfaceLayerElementsElement() { @class = "TFS_PolyZoneShape", }; var innerPointsCollection = new List<surfacesSurfaceLayerElementsElementPointsPoint>(); foreach (var point in elementPolygonZone.Points) { innerPointsCollection.Add(new surfacesSurfaceLayerElementsElementPointsPoint() { x = point.X.ToString(), y = point.Y.ToString() }); } innerPolygonZone.points = innerPointsCollection.ToArray(); var zone = deviceConfiguration.Zones.FirstOrDefault(x => x.UID == elementPolygonZone.UID); if (zone != null) { innerPolygonZone.id = zone.ShapeIds.FirstOrDefault(); } zoneLayerElements.Add(innerPolygonZone); } zonesLayer.elements = innerDeviceElements.ToArray(); var innerLayers = new List<surfacesSurfaceLayer>(); innerLayers.Add(mainLayer); innerLayers.Add(devicesLayer); innerLayers.Add(zonesLayer); innerPlan.layer = innerLayers.ToArray(); } innerPlansConfiguration.surface = innerPlans.ToArray(); return innerPlansConfiguration; }