Browse Source

Extra WPF Converters
Added some Logikal Elevation Options

frankvandenbos 2 months ago
parent
commit
8ac020ed87

+ 47 - 2
InABox.Integration.Logikal/Requests/Elevation/LogikalElevationDetailRequest.cs

@@ -2,17 +2,62 @@
 
 namespace InABox.Integration.Logikal
 {
+
+    public enum LogikalDrawingFormat
+    {
+        DXF,
+        PNG
+    }
+    
+    public enum LogikalDrawingView
+    {
+        Interior,
+        Exterior
+    }
+    
+    public enum LogikalDrawingType
+    {
+        Explosion,
+        Section,
+        Elevation,
+        ElevationWithSectionLines,
+        SectionLine,
+    }
+    
     public class LogikalElevationDetailRequest : AbstractLogikalPartsRequest
     {
 
         public override LogikalMethod Method() => LogikalMethod.ElevationDetail;
 
-        public Guid[] IDs { get; private set; }
+        public Guid[] IDs { get; set; }
+        
+        public LogikalDrawingFormat DrawingFormat { get; set; }
+        
+        public LogikalDrawingView DrawingView { get; set; }
+        
+        public LogikalDrawingType DrawingType { get; set; }
 
-        public LogikalElevationDetailRequest(Guid projectid, Guid[] ids, string finishQuery, string profileQuery, string gasketQuery, string componentQuery, string glassQuery, string labourQuery, bool includeExcelData, bool includeSqliteData)
+        public LogikalElevationDetailRequest(
+            Guid projectid, 
+            Guid[] ids, 
+            string finishQuery, 
+            string profileQuery, 
+            string gasketQuery, 
+            string componentQuery, 
+            string glassQuery, 
+            string labourQuery, 
+            bool includeExcelData, 
+            bool includeSqliteData,
+            LogikalDrawingFormat format,
+            LogikalDrawingView view,
+            LogikalDrawingType drawingType
+            )
         : base(projectid, finishQuery, profileQuery, gasketQuery, componentQuery, glassQuery, labourQuery, includeExcelData, includeSqliteData)
         {
             IDs = ids;
+            DrawingFormat = format;
+            DrawingView = view;
+            DrawingType = drawingType;
         }
     }
 

+ 20 - 0
inabox.wpf/Converters/EnumerableToBooleanConverter.cs

@@ -0,0 +1,20 @@
+using System.Collections;
+using System.Linq;
+
+namespace InABox.WPF;
+
+public class EnumerableToBooleanConverter : AbstractConverter<IEnumerable?, bool>
+{
+
+    public bool Value { get; set; } = true;
+    
+    public override bool Convert(IEnumerable? value)
+    {
+        if (value == null)
+            return !Value;
+        var enumerable = value as object[] ?? value.Cast<object>().ToArray();
+        if (!enumerable.GetEnumerator().MoveNext())
+            return !Value;
+        return Value;
+    }
+}

+ 22 - 0
inabox.wpf/Converters/EnumerableToVisibilityConverter.cs

@@ -0,0 +1,22 @@
+using System.Collections;
+using System.Linq;
+using System.Windows;
+
+namespace InABox.WPF;
+
+public class EnumerableToVisibilityConverter : AbstractConverter<IEnumerable?, Visibility>
+{
+    
+    public Visibility Empty { get; set; } = Visibility.Collapsed;
+    public Visibility NotEmpty { get; set; } = Visibility.Visible;
+    
+    public override Visibility Convert(IEnumerable? value)
+    {
+        if (value == null)
+            return Empty;
+        var enumerable = value as object[] ?? value.Cast<object>().ToArray();
+        if (!enumerable.GetEnumerator().MoveNext())
+            return Empty;
+        return NotEmpty;
+    }
+}