Horizon – Blame information for rev 5

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 using System.ComponentModel;
2 using System.Runtime.CompilerServices;
3 using System.Xml.Serialization;
4 using TrackedFolders.Properties;
5 using TrackedFolders.Utilities;
6  
7 namespace TrackedFolders
8 {
9 [XmlRoot(Namespace = "urn:horizon-tracked-folders-schema", ElementName = "TrackedFolders")]
10 public class TrackedFolders : INotifyPropertyChanged
11 {
12 #region Private Delegates, Events, Enums, Properties, Indexers and Fields
13  
14 private BindingListWithCollectionChanged<Folder> _folder = new BindingListWithCollectionChanged<Folder>();
15  
16 #endregion
17  
5 office 18 #region Constructors
19  
20 [UsedImplicitly]
21 public TrackedFolders()
22 {
23  
24 }
25  
26 #endregion
27  
1 office 28 #region Public Enums, Properties and Fields
29  
30 public BindingListWithCollectionChanged<Folder> Folder
31 {
32 get => _folder;
33 set
34 {
35 if (Equals(value, _folder))
36 {
37 return;
38 }
39  
40 _folder = value;
41 OnPropertyChanged();
42 }
43 }
44  
45 #endregion
46  
47 #region Interface
48  
49 public event PropertyChangedEventHandler PropertyChanged;
50  
51 #endregion
52  
53 #region Private Methods
54  
55 [NotifyPropertyChangedInvocator]
56 protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
57 {
58 PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
59 }
60  
61 #endregion
62  
63 #region Public Methods
64  
65 public bool TryGet(string path, out Folder folder)
66 {
67 foreach (var tracked in Folder)
68 {
69 if (!path.IsPathEqual(tracked.Path) &&
70 !path.IsSubPathOf(tracked.Path))
71 {
72 continue;
73 }
74  
75 folder = tracked;
76  
77 return true;
78 }
79  
80 folder = null;
81  
82 return false;
83 }
84  
85 #endregion
86 }
87 }