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); }
public void RollbackTransaction(RDBTransaction transaction) { transaction.Transaction.Rollback(); transaction.Connection.Close(); transaction.Connection.Dispose(); }
public void CommitTransaction(RDBTransaction transaction) { transaction.Transaction.Commit(); transaction.Connection.Close(); transaction.Connection.Dispose(); }