Beispiel #1
0
        public bool TryRegiseringUser(IResourceUser user, bool throwExceptions = false)
        {
            if (_resourceUsers.ContainsKey(user.InstanceId))
            {
                if (throwExceptions)
                {
                    throw new Exception("Attempted to register dupicate producers");
                }
                return(false);
            }

            var unregisteredResources = user.AllResourceIds.Where(x => !_resources.ContainsKey(x));

            if (unregisteredResources.Any())
            {
                foreach (var unres in unregisteredResources)
                {
                    TryRegisterNewResource(unres);
                }
            }

            _resourceUsers.Add(user.InstanceId, user);

            return(true);
        }
        private static void TestAutomaticManagerAspect()
        {
            var proxyGenerator = new ProxyGenerator();

            var fakeResource = new FakeResource();

            IResourceUser resourceUser =
                (IResourceUser)
                proxyGenerator.CreateInterfaceProxyWithTarget(
                    typeof(IResourceUser),
                    fakeResource,
                    new AutomaticManagerAspect(fakeResource, TimeSpan.FromMilliseconds(500)));

            resourceUser.QuerySomeData();

            Thread.Sleep(400);

            resourceUser.QuerySomeData();

            Thread.Sleep(600);

            resourceUser.QuerySomeData();

            Console.WriteLine("Done");

            Console.ReadLine();
        }