private void CycleProperty(object sender, System.Windows.Input.GestureEventArgs e)
        {
            PrepDown.Begin();
            h1.DataContext = (DataContext as JournalDayVM).GetHeader(jvm.NextProperty());
            CycleDown.Begin();

            ValuesOut.Begin();
        }
        public void ProcessValues(RegistryKey key)
        {
            _values.Clear();
            Errors.Clear();

            try
            {
                foreach (var keyValue in key.Values)
                {
                    //[F00000000][T01D005C5B44B6300][O00000000]*C:\Users\eric\Desktop\aa\Out\Deduplicated.tsv

                    var segs = keyValue.ValueData.Split('*');
                    var fName = segs.Last();

                    var segs2 = segs.First().Split('[');
                    //"T01D005C5B44B6300]"

                    var rawTime = segs2[2];
                    rawTime = rawTime.Substring(1);
                    rawTime = rawTime.Substring(0, rawTime.Length - 1);
                    var time = Convert.ToInt64(rawTime, 16);

                    var firstOpen = DateTimeOffset.FromFileTime(time);

                    //  @"Software\Microsoft\Office\15.0\Word\User MRU\*\File MRU", //Software\Microsoft\Office\15.0\Word\Reading Locations
                    //Software\Microsoft\Office\15.0\Word\Reading Locations
                    //Value Name	Value Type	Data
                    //File Path   RegSz C:\ProjectWorkingFolder\GOON2\GOON2\GOON2Manual.docx

                    //jump up a few levels and check for Reading Locations
                    var readingLocKey =
                        key.Parent.Parent.Parent.SubKeys.SingleOrDefault(t => t.KeyName == "Reading Locations");

                    DateTimeOffset? lastOpen = null;

                    if (readingLocKey != null)
                    {
                        foreach (var registryKey in readingLocKey.SubKeys)
                        {
                            var readingLocVal = registryKey.Values.SingleOrDefault(t => t.ValueName == "File Path");

                            if (readingLocVal != null)
                            {
                                if (readingLocVal.ValueData == fName)
                                {
                                    lastOpen = registryKey.LastWriteTime;
                                    break;
                                }
                            }
                        }
                    }

                    var v = new ValuesOut(keyValue.ValueName, firstOpen, lastOpen, fName);

                    _values.Add(v);
                }
            }
            catch (Exception ex)
            {
                Errors.Add($"Error processing MRU key: {ex.Message}");
            }

            if (Errors.Count > 0)
            {
                AlertMessage = "Errors detected. See Errors information in lower right corner of plugin window";
            }
        }