Example #1
0
        public async Task DisableUnusedDash()
        {
            List <Task>       tasks = new List <Task>();
            List <dashMemory> localDict;

            lock (MemoryCaches.memDash)
                localDict = new List <dashMemory>(MemoryCaches.memDash);
            foreach (var item in localDict)
            {
                var DashboardId = item.dashboardId;
                var lastRequest = await RequestAPI.getAsyncLastAccessCache(LastAccessURL + "/" + DashboardId);

                TimeSpan dif;
                if (lastRequest != null)
                {
                    dif = DateTime.Now - (DateTime)lastRequest;
                    Logger.Info("->" + item.dashboardId + " : " + item.dashboard.name);
                    Logger.Info("->Tempo desde Ultimo Acesso:" + dif);

                    if (dif.TotalMinutes > MaxTimeCache)
                    {
                        if (item.active == true)
                        {
                            lock (MemoryCaches.memDash)
                            {
                                MemoryCaches.memDash.Where(x => x.dashboardId == item.dashboardId).FirstOrDefault().active = false;
                            }

                            RequestAPI.DelAsyncCache(cacheURlMain + "/" + item.dashboardId);
                        }
                    }
                    else
                    {
                        if (item.active == false)
                        {
                            lock (MemoryCaches.memDash)
                            {
                                MemoryCaches.memDash.Where(x => x.dashboardId == item.dashboardId).FirstOrDefault().active = true;
                            }
                        }
                    }
                }
            }
        }