//private static readonly string _webCacheKey = "CategorieNotizie"; private static ReportTipologiaItem RetrieveReportTipologiaFromReader(SqlDataReader reader) { ReportTipologiaItem retrievedReportTipologia = new ReportTipologiaItem(); retrievedReportTipologia.Tipologia = TipologiaRepository.Instance.RecuperaTipologia(reader.GetInt32(1)); retrievedReportTipologia.TotaliTipi.Add(1, reader.GetInt32(2)); retrievedReportTipologia.TotaliTipi.Add(2, reader.GetInt32(3)); retrievedReportTipologia.TotaliTipi.Add(9, reader.GetInt32(4)); return(retrievedReportTipologia); }
public ReportTipologia RecuperaReportTipologia() { ReportTipologia reportTipologia = null; List <ReportTipologiaItem> reportTipologieItems = null; MemoryCache cache = MemoryCache.Default; String cacheKey = "reportTipologia"; reportTipologia = cache[cacheKey] as ReportTipologia; if (reportTipologia == null) { lock (_lockReportTipologia) { reportTipologia = cache[cacheKey] as ReportTipologia; if (reportTipologia == null) { reportTipologia = new ReportTipologia(); //SqlConnection connection = null; //SqlCommand command = null; //SqlDataReader reader = null; SqlServerExecuteObject sseo = null; SqlDataReader reader = null; //rows = 0; sseo = new SqlServerExecuteObject(); sseo.CommandText = "dbo.SP_RecuperaReportGrafici"; sseo.CommandType = CommandType.StoredProcedure; sseo.SqlParameters.AddWithValue("@TipoReport", 1); reader = SqlProvider.ExecuteReaderObject(sseo); reportTipologieItems = new List <ReportTipologiaItem>(); while (reader.Read()) { ReportTipologiaItem retrievedReportTipologiaItem = RetrieveReportTipologiaFromReader(reader); reportTipologia.RtpItem.Add(retrievedReportTipologiaItem); } if (reader != null) { reader.Close(); reader.Dispose(); } reportTipologia.TipoProvvedimento.Add(1, TipoProvvedimentoRepository.Instance.RecuperaTipoProvvedimento(1)); reportTipologia.TipoProvvedimento.Add(2, TipoProvvedimentoRepository.Instance.RecuperaTipoProvvedimento(2)); reportTipologia.TipoProvvedimento.Add(9, TipoProvvedimentoRepository.Instance.RecuperaTipoProvvedimento(9)); foreach (ReportTipologiaItem rtp in reportTipologia.RtpItem) { if (rtp.Tipologia.Macrotipologia.ID == 1) { reportTipologia.ReportMT.MT1Via = reportTipologia.ReportMT.MT1Via + rtp.TotaliTipi[1] + rtp.TotaliTipi[1]; reportTipologia.ReportMT.MT1ViaLO = reportTipologia.ReportMT.MT1ViaLO + rtp.TotaliTipi[9]; } else if (rtp.Tipologia.Macrotipologia.ID == 2) { reportTipologia.ReportMT.MT2Via = reportTipologia.ReportMT.MT2Via + rtp.TotaliTipi[2] + rtp.TotaliTipi[2]; reportTipologia.ReportMT.MT2ViaLO = reportTipologia.ReportMT.MT2ViaLO + rtp.TotaliTipi[9]; } } CacheItemPolicy policy = new CacheItemPolicy(); policy.AbsoluteExpiration = DateTime.Now.AddMinutes(1); cache.Add(cacheKey, reportTipologia, policy); } } } return(reportTipologia); }