Ejemplo n.º 1
0
        public async Task <bool> Sync()
        {
            using var context = DataContextHandler.CreateContext();

            context.Attach(this);

            foreach (var propertyName in _modifiedProperties)
            {
                context
                .Entry(this)
                .Property(propertyName)
                .IsModified = true;
            }

            var result = await context
                         .SaveChangesAsync()
                         .ConfigureAwait(false);

            if (result > 0)
            {
                MarkAllPropertiesUnmodified();
                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 2
0
        public static IRepository <TPoco> GetRepository <TPoco>(string connectionID, bool useSharedDataContext = true) where TPoco : class
        {
            CheckInitializationNeeded();

            var ctxType = DataContextHandler.GetDataContextTypeForPOCOType(typeof(TPoco));

            return(DataContextHandler.GetRepository <TPoco>(GetDataContext(ctxType, connectionID, useSharedDataContext)));
        }
Ejemplo n.º 3
0
        public static void DisposeDataContexts(bool commitChanges)
        {
            CheckInitializationNeeded();
            var contexts = new List <object>(_threadLocalObjects.Value.Values);

            DataContextHandler.DisposeDataContexts(contexts, commitChanges);
            contexts.Clear();
            contexts = null;
            _threadLocalObjects.Value.Clear();
        }
Ejemplo n.º 4
0
        public async Task <bool> RemoveFromDataStore(T item)
        {
            using var context = DataContextHandler.CreateContext();
            context.Remove(item);

            var result = await context
                         .SaveChangesAsync()
                         .ConfigureAwait(false);

            return(result > 0);
        }
        void TestSettingAndCreatingOfContext()
        {
            // 1. CreateContext throws if not initialized
            Assert.Throws <InvalidOperationException>(() => DataContextHandler.CreateContext());

            // 2. Setting context works
            DataContextHandler.SetContext <TestContext1>();
            Assert.IsType <TestContext1>(DataContextHandler.CreateContext());

            // 3. Changing context works
            DataContextHandler.SetContext <TestContext2>();
            Assert.IsType <TestContext2>(DataContextHandler.CreateContext());
        }
Ejemplo n.º 6
0
        public static object GetDataContext(Type dataContextType, string connectionID, bool useSharedDataContext = true)
        {
            CheckInitializationNeeded();

            if (!useSharedDataContext)
            {
                return(DataContextHandler.GetDataContextOfType(dataContextType, DatabaseConnectionManager.GetConfiguration(connectionID)));
            }
            else
            {
                if (!_threadLocalObjects.Value.ContainsKey(connectionID))
                {
                    var contexto = DataContextHandler.GetDataContextOfType(dataContextType, DatabaseConnectionManager.GetConfiguration(connectionID));
                    _threadLocalObjects.Value.Add(connectionID, contexto);
                }

                return(_threadLocalObjects.Value[connectionID]);
            }
        }