Beispiel #1
0
        public object Any(ClearCache request)
        {
            Cache.FlushAll();
            PostServicesBase.PeriodicUpdateTableCaches(Db);
            PostServicesBase.ClearOrganizationCache();
            Cache.FlushAll();

            return("OK");
        }
Beispiel #2
0
        public void Run(BatchModes batchMode = BatchModes.All)
        {
            var tempBatchMode = (batchMode == BatchModes.Correct || batchMode == BatchModes.Fast || batchMode == BatchModes.None) ? BatchModes.All : batchMode;

            foreach (Problem problem in ProblemsToSolve[tempBatchMode])
            {
                Run(problem, RunModes.Solution, batchMode);
                ClearCache.Clear();
                Console.WriteLine();
            }
            StatisticsWriter.Dump(batchMode);
        }
Beispiel #3
0
        public void Clear()
        {
            var oldMemoryCache = MemoryCache;

            MemoryCache = new MemoryCache(nameof(AsyncCache) + Interlocked.Increment(ref _clearCount), new NameValueCollection {
                { "PollingInterval", "00:00:01" }
            });

            if (oldMemoryCache != null)
            {
                // Disposing of MemoryCache can be a CPU intensive task and should therefore not block the current thread.
                Task.Run(() => oldMemoryCache.Dispose());
                ClearCache.Increment();
            }
        }
Beispiel #4
0
 public TCMExecutor(TELauncher newTel)
 {
     InitializeComponent();
     if (!Directory.Exists(Program.tempPath + "\\" + Program.cacheFolder) || !File.Exists(Program.cacheXmlPath))
     {
         string cachePath = Program.tempPath + "\\" + Program.cacheFolder;
         Directory.CreateDirectory(Program.tempPath + "\\" + Program.cacheFolder);
         FileInfo   fi      = new FileInfo(Program.cacheXmlPath);
         FileStream fStream = fi.Create();
         fStream.Close();
         Logger.WriteIntoCacheXML(XML.EnterIntoCacheXML(), Program.cacheXmlPath);
     }
     if (Program.isCached == false)
     {
         ClearCache.Hide();
     }
     tel = newTel;
     tel.TeLWait.Show();
     tel.Text = "please wait while the app loads ...";
 }
Beispiel #5
0
        /// <summary>
        /// Save the Features.General settings to the settings file
        /// </summary>
        /// <param name="administrationNode">XML-node for the General.Administration settings</param>
        public void Save(XmlNode featuresGeneralNode)
        {
            string xpath;

            xpath = "./chartsEnabled";
            SettingsHelper.SetSettingValue(xpath, featuresGeneralNode, ChartsEnabled.ToString());
            xpath = "./apiEnabled";
            SettingsHelper.SetSettingValue(xpath, featuresGeneralNode, ApiEnabled.ToString());
            xpath = "./saveQueryEnabled";
            SettingsHelper.SetSettingValue(xpath, featuresGeneralNode, SavedQueryEnabled.ToString());
            xpath = "./userFriendlyUrlsEnabled";
            SettingsHelper.SetSettingValue(xpath, featuresGeneralNode, UserFriendlyUrlsEnabled.ToString());
            xpath = "./userStatisticsEnabled";
            SettingsHelper.SetSettingValue(xpath, featuresGeneralNode, UserStatisticsEnabled.ToString());
            xpath = "./searchEnabled";
            SettingsHelper.SetSettingValue(xpath, featuresGeneralNode, SearchEnabled.ToString());
            xpath = "./backgroundWorkerEnabled";
            SettingsHelper.SetSettingValue(xpath, featuresGeneralNode, BackgroundWorkerEnabled.ToString());
            xpath = "./clearCache";
            SettingsHelper.SetSettingValue(xpath, featuresGeneralNode, ClearCache.ToString());
        }
 public static void Clear() => ClearCache?.Invoke(null, EventArgs.Empty);
Beispiel #7
0
        protected override void StartLoop(NativeActivityContext context)
        {
            WindowsCacheExtension ext = context.GetExtension <WindowsCacheExtension>();
            var sw = new Stopwatch();

            sw.Start();
            Log.Selector(string.Format("Windows.GetElement::begin {0:mm\\:ss\\.fff}", sw.Elapsed));

            UIElement[] elements = null;
            var         selector = Selector.Get(context);

            selector = OpenRPA.Interfaces.Selector.Selector.ReplaceVariables(selector, context.DataContext);
            var sel        = new WindowsSelector(selector);
            var timeout    = Timeout.Get(context);
            var maxresults = MaxResults.Get(context);
            var minresults = MinResults.Get(context);

            if (maxresults < 1)
            {
                maxresults = 1;
            }
            var interactive = Interactive.Get(context);
            var from        = From.Get(context);
            int failcounter = 0;

            do
            {
                if (ClearCache != null && ClearCache.Get(context))
                {
                    Log.Selector(string.Format("Windows.GetElement::Clearing windows element cache {0:mm\\:ss\\.fff}", sw.Elapsed));
                    WindowsSelectorItem.ClearCache();
                }
                if (PluginConfig.get_elements_in_different_thread)
                {
                    elements = OpenRPA.AutomationHelper.RunSTAThread <UIElement[]>(() =>
                    {
                        try
                        {
                            Log.Selector(string.Format("Windows.GetElement::GetElementsWithuiSelector in non UI thread {0:mm\\:ss\\.fff}", sw.Elapsed));
                            return(WindowsSelector.GetElementsWithuiSelector(sel, from, maxresults, ext));
                        }
                        catch (System.Threading.ThreadAbortException)
                        {
                        }
                        catch (Exception ex)
                        {
                            Log.Error(ex.ToString());
                        }
                        return(new UIElement[] { });
                    }, PluginConfig.search_timeout).Result;
                }
                else
                {
                    Log.Selector(string.Format("Windows.GetElement::GetElementsWithuiSelector using UI thread {0:mm\\:ss\\.fff}", sw.Elapsed));
                    elements = WindowsSelector.GetElementsWithuiSelector(sel, from, maxresults, ext);
                    if (elements == null || elements.Length == 0)
                    {
                        elements = WindowsSelector.GetElementsWithuiSelector(sel, from, maxresults, ext);
                    }
                }
                //elements = WindowsSelector.GetElementsWithuiSelector(sel, from, maxresults);
                if (elements == null)
                {
                    elements = new UIElement[] { };
                }
                if (elements.Length == 0)
                {
                    Log.Selector(string.Format("Windows.GetElement::Found no elements {0:mm\\:ss\\.fff}", sw.Elapsed));
                    failcounter++;
                }
                if (failcounter > 2)
                {
                    WindowsSelectorItem.ClearCache();
                }
            } while (elements != null && elements.Length == 0 && sw.Elapsed < timeout);
            if (PluginConfig.get_elements_in_different_thread && elements.Length > 0)
            {
                // Get them again, we need the COM objects to be loaded in the UI thread
                elements = WindowsSelector.GetElementsWithuiSelector(sel, from, maxresults, ext);
            }
            context.SetValue(Elements, elements);

            var lastelements = context.GetValue(_lastelements);

            if (lastelements == null)
            {
                lastelements = new UIElement[] { }
            }
            ;
            context.SetValue(_lastelements, elements);
            if ((elements.Length + lastelements.Length) < minresults)
            {
                Log.Selector(string.Format("Windows.GetElement::Failed locating " + minresults + " item(s) {0:mm\\:ss\\.fff}", sw.Elapsed));
                throw new ElementNotFoundException("Failed locating " + minresults + " item(s)");
            }
            IEnumerator <UIElement> _enum = elements.ToList().GetEnumerator();
            bool more = _enum.MoveNext();

            if (lastelements.Length == elements.Length && lastelements.Length > 0)
            {
                more = !System.Collections.StructuralComparisons.StructuralEqualityComparer.Equals(lastelements, elements);
            }
            if (more)
            {
                if (interactive)
                {
                    var testelement = _enum.Current;
                    Wait.UntilResponsive(testelement.RawElement, PluginConfig.search_timeout);
                }
                context.SetValue(_elements, _enum);
                context.SetValue(_sw, sw);
                Log.Selector(string.Format("Windows.GetElement::end:: call ScheduleAction: {0:mm\\:ss\\.fff}", sw.Elapsed));
                IncIndex(context);
                SetTotal(context, elements.Length);
                context.ScheduleAction <UIElement>(Body, _enum.Current, OnBodyComplete);
            }
            else
            {
                Log.Selector(string.Format("Windows.GetElement:end {0:mm\\:ss\\.fff}", sw.Elapsed));
            }
        }