Exemplo n.º 1
0
        private List <T> GetAndAddDbValues <T>(RDBTransaction tnx, List <string> values, string tablename, Func <T, bool> comparein, Func <T, string, bool> compare, Func <string, T> data) where T : class
        {
            var dbroles = _inMemoryCacheService.Get <List <T> >($"{cacheprefix}-{tablename}");
            Func <List <T>, IEnumerable <T> > loadRoles = (lstdata) =>
            {
                return(GetDBValueAddToCache <T>(tablename, lstdata, new JObject()
                {
                    ["is_enabled"] = true
                }));
            };

            if (dbroles == null)
            {
                dbroles = loadRoles(null).ToList();
            }

            Func <List <T> > loadmyroles = () =>
            {
                var dbmytoles = new List <T>();
                if (dbroles != null && dbroles.Any())
                {
                    dbmytoles.AddRange(dbroles.Where(f => comparein(f)).Select(f => f));
                }
                return(dbmytoles);
            };
            var finalroles = loadmyroles();

            if (!finalroles.Any() || finalroles.Count != values.Count)
            {
                dbroles    = loadRoles(null).ToList();
                finalroles = loadmyroles();
            }
            if (!finalroles.Any() || finalroles.Count != values.Count)
            {
                var dbvalues = new List <T>();
                foreach (var r in values)
                {
                    if (!finalroles.Where(f => compare(f, r)).Any())
                    {
                        T   d        = data(r);
                        var response = _rdBService.WriteData <T>(d, tnx);
                        dbvalues.Add(d);
                    }
                }
                dbroles    = loadRoles(dbvalues).ToList();
                finalroles = loadmyroles();
            }
            if (finalroles.Count != values.Count)
            {
                throw new Exception("Error while loading roles ");
            }
            return(finalroles);
        }
Exemplo n.º 2
0
 public void RollbackTransaction(RDBTransaction transaction)
 {
     transaction.Transaction.Rollback();
     transaction.Connection.Close();
     transaction.Connection.Dispose();
 }
Exemplo n.º 3
0
 public void CommitTransaction(RDBTransaction transaction)
 {
     transaction.Transaction.Commit();
     transaction.Connection.Close();
     transaction.Connection.Dispose();
 }