-
-
Notifications
You must be signed in to change notification settings - Fork 42
Office.Cloud.Microsoft.Todo
This package integrates with the Office365 Todo cloud service.
Credits: to Brokero that sponsor the initial implementation of this module.
This is a platform agnostic
module that authenticates against Azure using the Xpand.XAF.Modules.Microsoft package, for details head to it's wiki page.
The Xpand.XAF.Modules.Office.Cloud.Microsoft.Todo
provides a configurable one way synchronization between the ITask
Domain Components and the Microsoft.Graph.OutlookTask
entity.
All CRUD
operations will execute the cloud api after a successful XAF transaction.
-
To
configure
the subjectViews
and the target containerTask list
you can use the model.
-
To
configure
which CRUD operation will be propagated use theSynchronizationType
attribute.
The package can operate without any configuration by executing a predefined map
between the ITask
and OutlookTask
objects on Update and on Insert.
To customize the predefined map you can use a query like the next one which suffix the OutlookTask subject with the current date:
TodoService.CustomizeSynchronization
.Do(e => {
if (e.Instance.mapAction != MapAction.Delete){
e.Instance.cloud.Subject = $"{e.Instance.local.Subject} - {DateTime.Now}";
e.Handled = true;
}
})
.Subscribe();
Possible future improvements:
- Bi-Directional synchronization.
- Any other need you may have.
Let me know if you want me to implement them for you.
In the next screencast you can see all CRUD
operations on the Task BO and how they synchronize with the Office365
cloud, for both Win
and Web
. At the bottom the Reactive.Logger.Client.Win is reporting as the module is used.
-
First you need the nuget package so issue this command to the
VS Nuget package console
Install-Package Xpand.XAF.Modules.Office.Cloud.Microsoft.Todo
.The above only references the dependencies and nexts steps are mandatory.
-
Ways to Register a Module or simply add the next call to your module constructor
RequiredModuleTypes.Add(typeof(Xpand.XAF.Modules.Office.Cloud.Microsoft.TodoModule));
The module is not bound to DevExpress versioning, which means you can use the latest version with your old DevExpress projects Read more.
The module follows the Nuget Version Basics.
.NetFramework: net461
DevExpress.Persistent.Base | Any |
DevExpress.ExpressApp | Any |
DevExpress.ExpressApp.Xpo | Any |
Fasterflect.Xpand | 2.0.7 |
JetBrains.Annotations | 2020.1.0 |
Microsoft.Graph.Beta | 0.18.0-preview |
Microsoft.Graph.Core | 1.19.0 |
Microsoft.Identity.Client | 4.13.0 |
Newtonsoft.Json | 12.0.3 |
System.Reactive | 4.4.1 |
System.ValueTuple | 4.5.0 |
Xpand.Extensions | 2.202.57 |
Xpand.Extensions.Office.Cloud | 2.202.58 |
Xpand.Extensions.Reactive | 2.202.58 |
Xpand.Extensions.XAF | 2.202.58 |
Xpand.Extensions.XAF.Xpo | 2.202.54 |
Xpand.XAF.Modules.Office.Cloud.Microsoft | 2.202.59 |
Xpand.XAF.Modules.Reactive | 2.202.58 |
Xpand.VersionConverter | 2.202.10 |
To Step in the source code
you need to enable Source Server support
in your Visual Studio/Tools/Options/Debugging/Enable Source Server Support. See also How to boost your DevExpress Debugging Experience.
If the package is installed in a way that you do not have access to uninstall it, then you can unload
it with the next call at the constructor of your module.
Xpand.XAF.Modules.Reactive.ReactiveModuleBase.Unload(typeof(Xpand.XAF.Modules.Office.Cloud.Microsoft.Todo.Office.Office.Cloud.Microsoft.TodoModule))
The module is tested on Azure for each build with these tests. All Tests run as per our Compatibility Matrix