public DataTable GetProdutos(string connection, ABUtil.ABCommandArgs AbArgs) { try { DataTable Produtos = cache["Produtos"] as DataTable; WriteLog.Log(System.Diagnostics.TraceLevel.Info, LogTypeName.TAT2Request, "GetProdutos - TB196 ", AbArgs.USERNT, AbArgs.SN_HOSTNAME); //Vai lêr à tabela if (Produtos == null) { OdbcConnection con = new OdbcConnection(connection); DataSet ds = new DataSet(); try { OdbcDataAdapter ad = new OdbcDataAdapter("SELECT CELEMTAB1, GELEM30, NELEMC01, NELEMC02 FROM TB196 where NELEMC01 != '' AND NELEMC13 = 'S' order by NELEMC01", con); //Tabela geral TB196 ad.Fill(ds); } finally { con.Close(); } WriteLog.Log(System.Diagnostics.TraceLevel.Verbose, LogTypeName.TAT2Request, "Setting cache for [Produtos]", AbArgs.USERNT, AbArgs.SN_HOSTNAME); //Set Cache System.Runtime.Caching.CacheItemPolicy policy = new System.Runtime.Caching.CacheItemPolicy(); policy.AbsoluteExpiration = DateTimeOffset.Now.AddDays(1); cache.Set("Produtos", ds.Tables[0], policy); WriteLog.Log(System.Diagnostics.TraceLevel.Verbose, LogTypeName.TAT2Request, "Retun value count: " + ds.Tables[0].Rows.Count, AbArgs.USERNT, AbArgs.SN_HOSTNAME); return(ds.Tables[0]); } //Devolver valor em cache else { WriteLog.Log(System.Diagnostics.TraceLevel.Verbose, LogTypeName.TAT2Request, "Cache found for [Produtos] : " + Produtos.Rows.Count, AbArgs.USERNT, AbArgs.SN_HOSTNAME); return(Produtos); } } catch (Exception ex) { WriteLog.Log(System.Diagnostics.TraceLevel.Error, MultilinhasObjects.LogTypeName.TAT2Request, ex, AbArgs.USERNT, AbArgs.SN_HOSTNAME); DataTable dt = new DataTable(); return(dt); } }
public static Dictionary <string, string>[] GetRows(bool useCache = true) { System.Runtime.Caching.ObjectCache cache = MemoryCache.Default; CacheItemPolicy policy = new CacheItemPolicy(); policy.AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(1); if (useCache && cache["FWK_ConfigSettings"] != null) { return(cache["FWK_ConfigSettings"] as Dictionary <string, string>[]); } var result = new List <Dictionary <string, string> >(); using (var conn = new SqlConnection(Jics)) { const string scmd = "select * from [dbo].FWK_ConfigSettings;"; using (var cmd = new SqlCommand(scmd, conn)) { conn.Open(); var r = cmd.ExecuteReader(); if (!r.HasRows) { throw new Exception("No data from FWK_ConfigSettings"); } while (r.Read()) { var row = new Dictionary <string, string>(); for (var i = 0; i < r.FieldCount; ++i) { row[r.GetName(i)] = r[i] as string; } result.Add(row); } } } cache.Set("FWK_ConfigSettings", result.ToArray(), policy); return(cache["FWK_ConfigSettings"] as Dictionary <string, string>[]); }