فهرست منبع

Fixed issue with Entity Initialisation and UserProperties
Added duplicate checks for DynamicGrid hidden columns
Fixed an issue with MultiSelectDialogs
Report Preview Window now shows errors if found and launches designer to allow fixing

frogsoftware 1 سال پیش
والد
کامیت
2450b9ba47

+ 1 - 1
InABox.Core/DatabaseSchema/DatabaseSchema.cs

@@ -309,7 +309,7 @@ namespace InABox.Core
         {
             entity.UserProperties.Load(Properties(entity.GetType())
                 .Where(x => x is CustomProperty)
-                .Select(x => new KeyValuePair<string, object?>(x.Name, x.PropertyType)));
+                .Select(x => new KeyValuePair<string, object?>(x.Name, DefaultValue(x.PropertyType))));
         }
     }
 }

+ 7 - 13
inabox.wpf/DynamicGrid/BaseDynamicGrid.cs

@@ -160,20 +160,17 @@ namespace InABox.DynamicGrid
 
             public IEnumerable<string> ColumnNames => Columns;
 
-            public void Add(Expression<Func<T, object?>> column)
-            {
-                Columns.Add(CoreUtils.GetFullPropertyName(column, "."));
-            }
+            public void Add(Expression<Func<T, object?>> column) => Add(CoreUtils.GetFullPropertyName(column, "."));
 
-            public void Add(IColumn column)
-            {
-                Columns.Add(column.Property);
-            }
+            public void Add(IColumn column) => Add(column.Property);
 
             public void Add(string column)
             {
-                Columns.Add(column);
+                if (!Contains(column))
+                    Columns.Add(column);
             }
+
+            public bool Contains(string column) => Columns.Contains(column);
         }
 
         public HiddenColumnsList HiddenColumns { get; }
@@ -218,10 +215,7 @@ namespace InABox.DynamicGrid
         public virtual double HeaderHeight { get; set; }
         public new virtual double FontSize { get; set; }
 
-        public void AddHiddenColumn(string column)
-        {
-            HiddenColumns.Add(column);
-        }
+        public void AddHiddenColumn(string column) => HiddenColumns.Add(column);
 
         public abstract int DesiredWidth();
 

+ 1 - 1
inabox.wpf/DynamicGrid/MultiSelectDialog.cs

@@ -163,7 +163,7 @@ namespace InABox.DynamicGrid
             result.Columns.Add(new CoreColumn { ColumnName = "ID", DataType = typeof(Guid) });
             if(_columns is not null)
             {
-                foreach (var column in _columns.Items)
+                foreach (var column in _columns.Items.Where(x=>!String.Equals(x.Property,"ID")))
                     result.Columns.Add(new CoreColumn { ColumnName = column.Property, DataType = column.Type });
             }
 

+ 14 - 3
inabox.wpf/Reports/PreviewWindow.xaml.cs

@@ -26,6 +26,7 @@ using System.Linq;
 using System.Threading.Tasks;
 using System.Windows.Threading;
 using FastReport.Design;
+using Syncfusion.Windows.Controls.RichTextBoxAdv;
 
 namespace InABox.Wpf.Reports
 {
@@ -189,9 +190,19 @@ namespace InABox.Wpf.Reports
                     {
                         Dispatcher.BeginInvoke(() =>
                         {
-                            Designer.Report ??= _report;
-                            action();
-                            CloseLoading();
+                            try
+                            {
+                                Designer.Report ??= _report;
+                                action();
+                                CloseLoading();
+                            }
+                            catch (Exception e)
+                            {
+                                MessageWindow.ShowMessage(e.Message,"Error in Report");
+                                CloseLoading();
+                                ShowDesigner();
+                            }
+   
                         });
                     }
                     else