Skip to content

Commit 129fac1

Browse files
committed
Use the released XAF PdfViewerPropertyEditor
1 parent abdf13f commit 129fac1

File tree

10 files changed

+107
-172
lines changed

10 files changed

+107
-172
lines changed

CS/OutlookInspired.Blazor.Server/Editors/PdfViewer/PdfViewerModel.cs

Lines changed: 0 additions & 26 deletions
This file was deleted.

CS/OutlookInspired.Blazor.Server/Editors/PdfViewer/PdfViewerPropertyEditor.cs

Lines changed: 0 additions & 26 deletions
This file was deleted.

CS/OutlookInspired.Blazor.Server/Features/WelcomeController.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
using DevExpress.ExpressApp;
2-
using OutlookInspired.Blazor.Server.Editors.PdfViewer;
2+
using DevExpress.ExpressApp.Office.Blazor.Editors;
33
using OutlookInspired.Module.BusinessObjects;
44

55
namespace OutlookInspired.Blazor.Server.Features {
@@ -12,4 +12,4 @@ protected override void OnActivated() {
1212
});
1313
}
1414
}
15-
}
15+
}

CS/OutlookInspired.Module/BusinessObjects/Order.cs

Lines changed: 40 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -3,81 +3,81 @@
33
using System.ComponentModel.DataAnnotations;
44
using System.ComponentModel.DataAnnotations.Schema;
55
using System.Text.Json.Serialization;
6-
using DevExpress.ExpressApp;
76
using DevExpress.ExpressApp.DC;
87
using DevExpress.ExpressApp.Utils;
98
using DevExpress.Persistent.Base;
109
using OutlookInspired.Module.Attributes;
1110
using OutlookInspired.Module.Features;
1211
using OutlookInspired.Module.Features.CloneView;
1312
using OutlookInspired.Module.Features.Maps;
13+
using BaseEditorAliases = DevExpress.ExpressApp.Editors.EditorAliases;
1414

15-
16-
namespace OutlookInspired.Module.BusinessObjects{
15+
namespace OutlookInspired.Module.BusinessObjects {
1716
[XafDefaultProperty(nameof(InvoiceNumber))]
1817
[CloneView(CloneViewType.DetailView, ChildDetailView)]
1918
[CloneView(CloneViewType.DetailView, MapsDetailView)]
2019
[CloneView(CloneViewType.DetailView, InvoiceDetailView)]
2120
[CloneView(CloneViewType.ListView, ListViewDetail)]
22-
[ImageName("BO_Order")][VisibleInReports(true)]
23-
public class Order :OutlookInspiredBaseObject, IViewFilter,IRouteMapsMarker{
21+
[ImageName("BO_Order")]
22+
[VisibleInReports(true)]
23+
public class Order : OutlookInspiredBaseObject, IViewFilter, IRouteMapsMarker {
2424
public const string MapsDetailView = "Order_DetailView_Maps";
2525
public const string InvoiceDetailView = "Order_Invoice_DetailView";
2626
public const string ChildDetailView = "Order_DetailView_Child";
2727
public const string ListViewDetail = "Order_ListView_Detail";
28-
28+
2929
[XafDisplayName("Invoice #")]
30-
[FontSizeDelta(4)][MaxLength(100)]
31-
public virtual string InvoiceNumber { get; set; }
32-
30+
[FontSizeDelta(4)]
31+
[MaxLength(100)]
32+
public virtual string InvoiceNumber { get; set; }
33+
3334
public virtual Customer Customer { get; set; }
3435
public virtual CustomerStore Store { get; set; }
3536
[MaxLength(100)]
36-
public virtual string PONumber { get; set; }
37+
public virtual string PONumber { get; set; }
3738
public virtual Employee Employee { get; set; }
38-
public virtual DateOnly OrderDate { get; set; }
39+
public virtual DateOnly OrderDate { get; set; }
3940
[Column(TypeName = CurrencyType)]
40-
public virtual decimal SaleAmount { get; set; }
41+
public virtual decimal SaleAmount { get; set; }
4142
[Column(TypeName = CurrencyType)]
42-
public virtual decimal ShippingAmount { get; set; }
43+
public virtual decimal ShippingAmount { get; set; }
4344
[Column(TypeName = CurrencyType)]
44-
public virtual decimal TotalAmount { get; set; }
45+
public virtual decimal TotalAmount { get; set; }
4546

4647
[Browsable(false)]
4748
public virtual int Year => OrderDate.Year;
48-
public virtual DateTime? ShipDate { get; set; }
49-
public virtual OrderShipMethod ShipMethod { get; set; }
49+
public virtual DateTime? ShipDate { get; set; }
50+
public virtual OrderShipMethod ShipMethod { get; set; }
5051
[EditorAlias(EditorAliases.DxHtmlPropertyEditor)]
51-
public virtual byte[] OrderTerms { get; set; }
52+
public virtual byte[] OrderTerms { get; set; }
5253
[Aggregated]
53-
public virtual ObservableCollection<OrderItem> OrderItems{ get; set; } = new();
54-
public virtual ShipmentCourier ShipmentCourier { get; set; }
54+
public virtual ObservableCollection<OrderItem> OrderItems { get; set; } = new();
55+
public virtual ShipmentCourier ShipmentCourier { get; set; }
5556
[EditorAlias(EditorAliases.EnumImageOnlyEditor)]
56-
public virtual ShipmentStatus ShipmentStatus { get; set; }
57+
public virtual ShipmentStatus ShipmentStatus { get; set; }
5758

5859
[HideInUI(HideInUI.DetailView)]
5960
[XafDisplayName(nameof(ShipmentStatus))]
6061
[ImageEditor(ListViewImageEditorMode = ImageEditorMode.PictureEdit,
61-
DetailViewImageEditorMode = ImageEditorMode.PictureEdit,ImageSizeMode = ImageSizeMode.Zoom)]
62+
DetailViewImageEditorMode = ImageEditorMode.PictureEdit, ImageSizeMode = ImageSizeMode.Zoom)]
6263
public virtual byte[] ShipmentStatusImage => ImageLoader.Instance.GetEnumValueImageInfo(@ShipmentStatus).ImageBytes;
6364

64-
[EditorAlias(EditorAliases.PdfViewerEditor)]
65+
[EditorAlias(BaseEditorAliases.PdfViewerPropertyEditor)]
6566
[HideInUI(HideInUI.DetailView)]
6667
[NotMapped]
67-
public virtual byte[] ShipmentDetail{ get; set; } = [];
68-
69-
70-
[EditorAlias(EditorAliases.PdfViewerEditor)]
68+
public virtual byte[] ShipmentDetail { get; set; } = [];
69+
70+
[EditorAlias(BaseEditorAliases.PdfViewerPropertyEditor)]
7171
// [HideInUI(HideInUI.DetailView)]
7272
[VisibleInDetailView(false)]
7373
[NotMapped]
74-
public virtual byte[] InvoiceDocument{ get; set; } = [];
74+
public virtual byte[] InvoiceDocument { get; set; } = [];
7575
[EditorAlias(EditorAliases.DxHtmlPropertyEditor)]
76-
public virtual byte[] Comments { get; set; }
76+
public virtual byte[] Comments { get; set; }
7777
[Column(TypeName = CurrencyType)]
78-
public virtual decimal RefundTotal { get; set; }
78+
public virtual decimal RefundTotal { get; set; }
7979
[Column(TypeName = CurrencyType)]
80-
public virtual decimal PaymentTotal { get; set; }
80+
public virtual decimal PaymentTotal { get; set; }
8181

8282
[HideInUI(HideInUI.ListView)]
8383
[PersistentAlias("[<TaxRate>][State = ^.Customer.BillingAddressState].Single(Rate) * TotalAmount")]
@@ -86,29 +86,27 @@ public class Order :OutlookInspiredBaseObject, IViewFilter,IRouteMapsMarker{
8686
[PersistentAlias("Iif(" + nameof(PaymentTotal) + "=0 AND " + nameof(RefundTotal) + "=0,0,Iif(" +
8787
nameof(RefundTotal) + "=" + nameof(TotalAmount) + ",3,Iif(" + nameof(PaymentTotal) + "=" +
8888
nameof(TotalAmount) + ",1,2)))")]
89-
public PaymentStatus PaymentStatus
89+
public PaymentStatus PaymentStatus
9090
=> Enum.TryParse(EvaluateAlias() as string, out PaymentStatus result) ? result : PaymentStatus.Other;
9191

9292
[HideInUI(HideInUI.DetailView)]
9393
[XafDisplayName(nameof(ShipmentStatus))]
9494
[ImageEditor(ListViewImageEditorMode = ImageEditorMode.PictureEdit,
95-
DetailViewImageEditorMode = ImageEditorMode.PictureEdit,ImageSizeMode = ImageSizeMode.Zoom)]
95+
DetailViewImageEditorMode = ImageEditorMode.PictureEdit, ImageSizeMode = ImageSizeMode.Zoom)]
9696
public byte[] PaymentStatusImage => ImageLoader.Instance.GetEnumValueImageInfo(PaymentStatus).ImageBytes;
97-
98-
public double ActualWeight
97+
public double ActualWeight
9998
=> OrderItems == null ? 0 : OrderItems.Where(item => item.Product != null)
10099
.Sum(item => item.Product.Weight * item.ProductUnits);
101100

102101
[EditorAlias(EditorAliases.MapHomeOfficePropertyEditor)]
103-
public Location Location => new(){Latitude = ((IBaseMapsMarker)this).Latitude, Longitude = ((IBaseMapsMarker)this).Longitude };
102+
public Location Location => new() { Latitude = ((IBaseMapsMarker)this).Latitude, Longitude = ((IBaseMapsMarker)this).Longitude };
104103
string IBaseMapsMarker.Title => Store?.Customer.Name;
105104

106-
double IBaseMapsMarker.Latitude => Store?.Latitude??0;
107-
108-
double IBaseMapsMarker.Longitude => Store?.Longitude??0;
105+
double IBaseMapsMarker.Latitude => Store?.Latitude ?? 0;
109106

107+
double IBaseMapsMarker.Longitude => Store?.Longitude ?? 0;
110108
}
111-
109+
112110
[JsonConverter(typeof(JsonStringEnumConverter))]
113111
public enum OrderShipMethod {
114112
Ground, Air
@@ -129,11 +127,11 @@ public enum ShipmentStatus {
129127
[JsonConverter(typeof(JsonStringEnumConverter))]
130128
public enum PaymentStatus {
131129
[ImageName("PaymentUnPaid")]
132-
Unpaid,
130+
Unpaid,
133131
[ImageName("PaymentPaid")]
134-
PaidInFull,
132+
PaidInFull,
135133
[ImageName("PaymentRefund")]
136134
RefundInFull,
137135
Other
138136
}
139-
}
137+
}

CS/OutlookInspired.Module/BusinessObjects/Product.cs

Lines changed: 38 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -10,84 +10,84 @@
1010
using OutlookInspired.Module.Features;
1111
using OutlookInspired.Module.Features.CloneView;
1212
using OutlookInspired.Module.Features.Maps;
13+
using BaseEditorAliases = DevExpress.ExpressApp.Editors.EditorAliases;
1314

14-
15-
16-
namespace OutlookInspired.Module.BusinessObjects{
15+
namespace OutlookInspired.Module.BusinessObjects {
1716
[ImageName("BO_Product")]
1817
[CloneView(CloneViewType.DetailView, BrochureDetailView)]
1918
[CloneView(CloneViewType.ListView, LayoutViewListView)]
2019
[CloneView(CloneViewType.DetailView, MapsDetailView)]
21-
[Appearance("UnAvailable",AppearanceItemType.ViewItem, "!"+nameof(Available),TargetItems = "*",FontStyle = DevExpress.Drawing.DXFontStyle.Strikeout)]
20+
[Appearance("UnAvailable", AppearanceItemType.ViewItem, "!" + nameof(Available), TargetItems = "*", FontStyle = DevExpress.Drawing.DXFontStyle.Strikeout)]
2221
[XafDefaultProperty(nameof(Name))]
23-
public class Product :OutlookInspiredBaseObject, IViewFilter,ISalesMapsMarker{
22+
public class Product : OutlookInspiredBaseObject, IViewFilter, ISalesMapsMarker {
2423
private static readonly RichEditDocumentServer RichEditDocumentServer = new();
2524
public const string LayoutViewListView = "ProductLayoutView_ListView";
2625
public const string BrochureDetailView = "Product_Brochure_DetailView";
2726
public const string MapsDetailView = "Product_DetailView_Maps";
28-
29-
[FontSizeDelta(8)][MaxLength(100)]
30-
public virtual string Name { get; set; }
27+
28+
[FontSizeDelta(8)]
29+
[MaxLength(100)]
30+
public virtual string Name { get; set; }
3131
[EditorAlias(EditorAliases.DxHtmlPropertyEditor)]
32-
public virtual byte[] Description { get; set; }
32+
public virtual byte[] Description { get; set; }
3333

34-
3534
[HideInUI(HideInUI.All)]
36-
public virtual string DescriptionString{
37-
get{
38-
RichEditDocumentServer.LoadDocument(Description,DocumentFormat.OpenXml);
35+
public virtual string DescriptionString {
36+
get {
37+
RichEditDocumentServer.LoadDocument(Description, DocumentFormat.OpenXml);
3938
return RichEditDocumentServer.Text;
4039
}
4140
}
4241

43-
public virtual DateTime ProductionStart { get; set; }
44-
public virtual bool Available { get; set; }
42+
public virtual DateTime ProductionStart { get; set; }
43+
public virtual bool Available { get; set; }
4544
[ImageEditor(ListViewImageEditorMode = ImageEditorMode.PictureEdit,
46-
DetailViewImageEditorMode = ImageEditorMode.PictureEdit,ImageSizeMode = ImageSizeMode.Zoom)]
47-
public virtual byte[] Image { get; set; }
45+
DetailViewImageEditorMode = ImageEditorMode.PictureEdit, ImageSizeMode = ImageSizeMode.Zoom)]
46+
public virtual byte[] Image { get; set; }
4847
public virtual Employee Support { get; set; }
4948
public virtual Employee Engineer { get; set; }
5049
[Browsable(false)]
5150
public virtual Guid? EngineerId { get; set; }
5251
[XafDisplayName("Inventory")]
53-
public virtual int? CurrentInventory { get; set; }
54-
public virtual int Backorder { get; set; }
55-
public virtual int Manufacturing { get; set; }
52+
public virtual int? CurrentInventory { get; set; }
53+
public virtual int Backorder { get; set; }
54+
public virtual int Manufacturing { get; set; }
5655

5756
[NotMapped]
5857
public ObservableCollection<MapItem> Sales { get; set; } = new();
5958

60-
[NotMapped][HideInUI(HideInUI.DetailView)]
61-
public virtual ObservableCollection<MapItem> CitySales{ get; set; } = new();
59+
[NotMapped]
60+
[HideInUI(HideInUI.DetailView)]
61+
public virtual ObservableCollection<MapItem> CitySales { get; set; } = new();
6262
public virtual Picture PrimaryImage { get; set; }
6363
[Column(TypeName = CurrencyType)]
64-
public virtual decimal Cost { get; set; }
64+
public virtual decimal Cost { get; set; }
6565
[Column(TypeName = CurrencyType)]
66-
public virtual decimal SalePrice { get; set; }
66+
public virtual decimal SalePrice { get; set; }
6767
[Column(TypeName = CurrencyType)]
68-
public virtual decimal RetailPrice { get; set; }
69-
public virtual double Weight { get; set; }
70-
public virtual double ConsumerRating { get; set; }
71-
public virtual ProductCategory Category { get; set; }
68+
public virtual decimal RetailPrice { get; set; }
69+
public virtual double Weight { get; set; }
70+
public virtual double ConsumerRating { get; set; }
71+
public virtual ProductCategory Category { get; set; }
7272

73-
[InverseProperty(nameof(ProductCatalog.Product))][Aggregated]
74-
public virtual ObservableCollection<ProductCatalog> Catalogs{ get; set; } = new();
75-
73+
[InverseProperty(nameof(ProductCatalog.Product))]
74+
[Aggregated]
75+
public virtual ObservableCollection<ProductCatalog> Catalogs { get; set; } = new();
7676

7777
[Aggregated]
78-
public virtual ObservableCollection<ProductImage> Images{ get; set; } = new();
78+
public virtual ObservableCollection<ProductImage> Images { get; set; } = new();
7979

8080
[Aggregated]
81-
public virtual ObservableCollection<QuoteItem> QuoteItems{ get; set; } = new();
82-
[EditorAlias(EditorAliases.PdfViewerEditor)]
81+
public virtual ObservableCollection<QuoteItem> QuoteItems { get; set; } = new();
82+
[EditorAlias(BaseEditorAliases.PdfViewerPropertyEditor)]
8383
public byte[] Brochure => Catalogs.Select(catalog => catalog.PDF).FirstOrDefault();
8484
string IBaseMapsMarker.Title => Name;
8585
double IBaseMapsMarker.Latitude => throw new NotImplementedException();
8686
double IBaseMapsMarker.Longitude => throw new NotImplementedException();
87-
[InverseProperty(nameof(OrderItem.Product))][Aggregated]
88-
89-
public virtual ObservableCollection<OrderItem> OrderItems{ get; set; } = new();
87+
[InverseProperty(nameof(OrderItem.Product))]
88+
[Aggregated]
9089

90+
public virtual ObservableCollection<OrderItem> OrderItems { get; set; } = new();
9191

9292
IEnumerable<Order> ISalesMapsMarker.Orders => OrderItems.Select(item => item.Order).Distinct();
9393
}
@@ -104,5 +104,4 @@ public enum ProductCategory {
104104
[ImageName(nameof(VideoPlayers))]
105105
VideoPlayers
106106
}
107-
108-
}
107+
}

CS/OutlookInspired.Module/BusinessObjects/Quote.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,4 +50,4 @@ public class Quote :OutlookInspiredBaseObject, IViewFilter,IMapsMarker{
5050

5151

5252

53-
}
53+
}

0 commit comments

Comments
 (0)