Skip to content

Office.Cloud.Google.Tasks

apobekiaris edited this page Oct 17, 2020 · 13 revisions

GitHub issues GitHub close issues

About

This package integrates with the Google Tasks cloud service.

Details


Credits: to Brokero that sponsor the initial implementation of this module.


This is a platform agnostic module that authenticates against the Google Task service using the Xpand.XAF.Modules.Google package, for details head to it's wiki page.

The Xpand.XAF.Modules.Office.Cloud.Google.Tasks provides a configurable one way synchronization between the ITask Domain Components and the Google.Apis.Tasks.v1.Data.Task entity. All CRUD operations will execute the cloud api after a successful XAF transaction.

  • To configure the subject Views and the target container Task list you can use the model.
    image

  • To configure which CRUD operation will be propagated use the SynchronizationType attribute.
    image

The package can operate without any configuration by executing a predefined map between the ITask and Google.Apis.Tasks.v1.Data.Task objects on Update and on Insert.

To customize the predefined map you can use a query like the next one which suffix the Google.Apis.Tasks.v1.Data.Task subject with the current date:

GoogleTasksService.CustomizeSynchronization
    .Do(e => {
        if (e.Instance.mapAction != MapAction.Delete){
            e.Instance.cloud.Title = $"{e.Instance.local.Subject} - {DateTime.Now}";
            e.Handled = true;
        }
    })
    .Subscribe();

Possible future improvements:

  1. Bi-Directional synchronization.
  2. Any other need you may have.

Let me know if you want me to implement them for you.


Examples

In the next screencast you can see all CRUD operations on the Task BO and how they synchronize with the Google cloud, for both Win and Web. At the bottom the Reactive.Logger.Client.Win is reporting as the module is used.

Xpand XAF Modules Office Cloud Google Tasks

image

Installation

  1. First you need the nuget package so issue this command to the VS Nuget package console

    Install-Package Xpand.XAF.Modules.Office.Cloud.Google.Tasks.

    The above only references the dependencies and nexts steps are mandatory.

  2. Ways to Register a Module or simply add the next call to your module constructor

    RequiredModuleTypes.Add(typeof(Xpand.XAF.Modules.Office.Cloud.Google.TasksModule));

Versioning

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.

Dependencies

.NetFramework: net461

DevExpress.Persistent.Base Any
DevExpress.ExpressApp Any
DevExpress.ExpressApp.Xpo Any
Fasterflect.Xpand 2.0.7
Google.Apis.Auth 1.49.0
Google.Apis.Tasks.v1 1.49.0.2049
JetBrains.Annotations 2020.1.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.Google 2.202.19
Xpand.XAF.Modules.Reactive 2.202.58
Xpand.VersionConverter 2.202.10

Issues-Debugging-Troubleshooting

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.Google.Tasks.Office.Office.Cloud.Google.TasksModule))

Tests

The module is tested on Azure for each build with these tests. All Tests run as per our Compatibility Matrix

image

image


Custom badge

Star the project if you think it deserves it.

GitHub stars

Fork the project to extend and contribute.

GitHub forks

Clone this wiki locally