/// <summary>
        ///
        /// </summary>
        /// <param name="locationAreaIdentifier"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task <ILocationDataProvider> GetLocationDataAsync(
            Guid locationAreaIdentifier,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            if (locationAreaIdentifier == Guid.Empty ||
                locationAreaIdentifier == LocationServiceConstants.SelfReferenceIdentifier)
            {
                return(LocalDataProvider);
            }
            else
            {
                // These methods might make a server call but generally it will be accessing cached data
                Guid instanceId = await LocalDataProvider.GetInstanceIdAsync(cancellationToken).ConfigureAwait(false);

                Guid instanceType = await LocalDataProvider.GetInstanceTypeAsync(cancellationToken).ConfigureAwait(false);

                if (locationAreaIdentifier == instanceId ||
                    locationAreaIdentifier == instanceType ||
                    instanceType == ServiceInstanceTypes.TFSOnPremises)
                {
                    // Never do location traversal for OnPrem
                    return(LocalDataProvider);
                }
                else
                {
                    return(await ResolveLocationDataAsync(locationAreaIdentifier, cancellationToken).ConfigureAwait(false));
                }
            }
        }
Exemplo n.º 2
0
        public void MyTestInitialize()
        {
            probeResultFactory = new ProbeResultFactory();
            dataprovider       = new LocalDataProvider();
            MockRepository mocks = new MockRepository();

            provider = mocks.StrictMock <IDataProvider>();
            Expect.Call(provider.GetSession()).Repeat.Any().Return(dataprovider.GetSession());
            mocks.ReplayAll();
        }
Exemplo n.º 3
0
        private IEnumerable <CollectExecutionLog> GetExecutionLogs()
        {
            LocalDataProvider provider       = new LocalDataProvider();
            IDocumentSession  fakeSession    = provider.GetSession();
            CollectRequest    collectRequest = new CollectRequestFactory().CreateCollectRequestCompleteAfterCollect(fakeSession);

            fakeSession.SaveChanges();
            IEnumerable <CollectExecutionLog> executionLogs = collectRequest.GetExecutionLog(fakeSession);

            return(executionLogs);
        }
Exemplo n.º 4
0
        static Configurer()
        {
            var builder = new ContainerBuilder();

            IDataProvider repository = null;

            if (ConfigurationManager.AppSettings["DataSource"] == "Local")
            {
                repository = new LocalDataProvider(ConfigurationManager.AppSettings["LocalStoragePath"]);
            }

            builder.RegisterInstance <IDataProvider>(repository);
            builder.RegisterType <Repositories.Repository>().As <IRepository>();

            Container = builder.Build();
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="locationAreaIdentifier"></param>
        /// <param name="currentProvider"></param>
        /// <returns></returns>
        private async Task <ILocationDataProvider> ResolveLocationDataAsync(
            Guid locationAreaIdentifier,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            ILocationDataProvider locationData   = null;
            ProviderCache         providerLookup = m_providerLookup;

            if (providerLookup == null)
            {
                providerLookup = new ProviderCache();

                // Create and seed the cache with the local url
                String location = await LocalDataProvider.LocationForCurrentConnectionAsync(
                    ServiceInterfaces.LocationService2,
                    LocationServiceConstants.SelfReferenceIdentifier,
                    cancellationToken).ConfigureAwait(false);

                if (location != null)
                {
                    providerLookup.GetOrAdd(location, LocalDataProvider);
                }

                ProviderCache actualProvider = Interlocked.CompareExchange(ref m_providerLookup, providerLookup, null);

                // Did we lose the race? Pick the winner
                if (actualProvider != null)
                {
                    providerLookup = actualProvider;
                }
            }

            if (!providerLookup.TryGetValue(locationAreaIdentifier, out locationData))
            {
                // First, check our current provider (see if a direct pointer is registered)
                String location = await LocalDataProvider.LocationForCurrentConnectionAsync(
                    ServiceInterfaces.LocationService2,
                    locationAreaIdentifier,
                    cancellationToken).ConfigureAwait(false);

                // Next, check and see if we have a root pointer
                if (location == null &&
                    locationAreaIdentifier != LocationServiceConstants.ApplicationIdentifier &&
                    locationAreaIdentifier != LocationServiceConstants.RootIdentifier) // Don't infinitely recurse
                {
                    ILocationDataProvider rootProvider = await ResolveLocationDataAsync(
                        LocationServiceConstants.RootIdentifier,
                        cancellationToken).ConfigureAwait(false);

                    if (rootProvider != null &&
                        !Object.ReferenceEquals(rootProvider, LocalDataProvider))
                    {
                        location = await rootProvider.LocationForCurrentConnectionAsync(
                            ServiceInterfaces.LocationService2,
                            locationAreaIdentifier,
                            cancellationToken).ConfigureAwait(false);
                    }
                }

                if (location != null)
                {
                    // The caller could be asking for a serviceIdentifier which resolves to a URL
                    // for which we already have a cached provider.
                    // This is typical when serviceIdentifier is a ResourceArea guid.
                    if (!providerLookup.TryGetValue(location, out locationData))
                    {
                        locationData = await CreateDataProviderAsync(location, cancellationToken).ConfigureAwait(false);

                        locationData = providerLookup.GetOrAdd(location, locationData);
                    }

                    providerLookup[locationAreaIdentifier] = locationData;
                }
            }

            return(locationData);
        }
 /// <summary> Initializes a new instance of the <see cref="BusinessListMetadata{T}"/> class.
 /// </summary>
 public BusinessListMetadata()
 {
     DataProvider = new LocalDataProvider <IListBM <T> >();
 }
 public void MyTestInitialize()
 {
     provider = new LocalDataProvider();
     session  = provider.GetSession();
 }