Example #1
0
        internal static IObservable <object> Connect(this XafApplication application, Type sequenceStorageType = null)
        {
            sequenceStorageType ??= typeof(SequenceStorage);
            Guard.TypeArgumentIs(typeof(ISequenceStorage), sequenceStorageType, nameof(sequenceStorageType));
            var objectSpaceProvider = application.ObjectSpaceProvider == null?application.WhenSetupComplete()
                                      .Select(_ => application.ObjectSpaceProvider) : application.ObjectSpaceProvider.ReturnObservable();

            return(objectSpaceProvider.SelectMany(provider => provider.SequenceGeneratorDatalayer()
                                                  .SelectMany(dataLayer => application.WhenObjectSpaceCreated().GenerateSequences(dataLayer, sequenceStorageType)
                                                              .Merge(application.Security.AddAnonymousType(sequenceStorageType).ToObservable())))
                   .Merge(application.ConfigureDetailViewSequenceStorage()));
        }