This repository has been archived by the owner on Oct 16, 2023. It is now read-only.
/
Module.cs
45 lines (41 loc) · 2.19 KB
/
Module.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
using System;
using System.Collections.Generic;
using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Updating;
using NonPersistentDetailViewNavigationExample.Module.BusinessObjects;
using DevExpress.ExpressApp.Model;
using DevExpress.ExpressApp.DC;
using DevExpress.Data.Filtering;
namespace NonPersistentDetailViewNavigationExample.Module {
public sealed partial class NonPersistentDetailViewNavigationExampleModule : ModuleBase {
public NonPersistentDetailViewNavigationExampleModule() {
InitializeComponent();
}
public override IEnumerable<ModuleUpdater> GetModuleUpdaters(IObjectSpace objectSpace, Version versionFromDB) {
ModuleUpdater updater = new DatabaseUpdate.Updater(objectSpace, versionFromDB);
return new ModuleUpdater[] { updater };
}
public override void Setup(XafApplication application) {
base.Setup(application);
application.CustomProcessShortcut += application_CustomProcessShortcut;
}
void application_CustomProcessShortcut(object sender, CustomProcessShortcutEventArgs e) {
if(e.Shortcut.ViewId == "IssueStatistics_ListView") {
IObjectSpace nonPersistentObjectSpace = Application.CreateObjectSpace(typeof(IssueStatistics));
IssueStatistics issueStatistics = new IssueStatistics();
using(IObjectSpace objectSpace = Application.CreateObjectSpace(typeof(Issue))) {
issueStatistics.ActiveIssuesCount =
objectSpace.GetObjectsCount(typeof(Issue),
CriteriaOperator.Parse("[Status] == 'Active'"));
issueStatistics.ClosedIssuesCount =
objectSpace.GetObjectsCount(typeof(Issue),
CriteriaOperator.Parse("[Status] == 'Closed'"));
issueStatistics.TotalIssuesCount = issueStatistics.ActiveIssuesCount + issueStatistics.ClosedIssuesCount;
}
e.View = Application.CreateDetailView(nonPersistentObjectSpace, issueStatistics, true);
e.View.AllowEdit["CanEditIssueStatistics"] = false;
e.Handled = true;
}
}
}
}