@@ -111,31 +111,31 @@ public ITask ReleaseLock(string file, bool force)
111111 public void CheckLogChangedEvent ( CacheUpdateEvent cacheUpdateEvent )
112112 {
113113 var managedCache = cacheContainer . GitLogCache ;
114- var raiseEvent = managedCache . IsLastUpdatedTimeDifferent ( cacheUpdateEvent ) ;
114+ var raiseEvent = managedCache . LastUpdatedAt != cacheUpdateEvent . UpdatedTime ;
115115
116116 Logger . Trace ( "Check GitLogCache CacheUpdateEvent Current:{0} Check:{1} Result:{2}" , managedCache . LastUpdatedAt ,
117117 cacheUpdateEvent . UpdatedTimeString ?? "[NULL]" , raiseEvent ) ;
118118
119119 if ( raiseEvent )
120120 {
121121 var dateTimeOffset = managedCache . LastUpdatedAt ;
122- var updateEvent = new CacheUpdateEvent { UpdatedTimeString = dateTimeOffset . ToString ( ) } ;
122+ var updateEvent = new CacheUpdateEvent { UpdatedTime = dateTimeOffset } ;
123123 HandleGitLogCacheUpdatedEvent ( updateEvent ) ;
124124 }
125125 }
126126
127127 public void CheckStatusChangedEvent ( CacheUpdateEvent cacheUpdateEvent )
128128 {
129129 var managedCache = cacheContainer . GitStatusCache ;
130- var raiseEvent = managedCache . IsLastUpdatedTimeDifferent ( cacheUpdateEvent ) ;
130+ var raiseEvent = managedCache . LastUpdatedAt != cacheUpdateEvent . UpdatedTime ;
131131
132132 Logger . Trace ( "Check GitStatusCache CacheUpdateEvent Current:{0} Check:{1} Result:{2}" , managedCache . LastUpdatedAt ,
133133 cacheUpdateEvent . UpdatedTimeString ?? "[NULL]" , raiseEvent ) ;
134134
135135 if ( raiseEvent )
136136 {
137137 var dateTimeOffset = managedCache . LastUpdatedAt ;
138- var updateEvent = new CacheUpdateEvent { UpdatedTimeString = dateTimeOffset . ToString ( ) } ;
138+ var updateEvent = new CacheUpdateEvent { UpdatedTime = dateTimeOffset } ;
139139 HandleGitStatusCacheUpdatedEvent ( updateEvent ) ;
140140 }
141141 }
@@ -158,32 +158,31 @@ public void CheckCurrentBranchAndRemoteChangedEvent(CacheUpdateEvent cacheUpdate
158158 private void CheckRepositoryInfoCacheEvent ( CacheUpdateEvent cacheUpdateEvent )
159159 {
160160 var managedCache = cacheContainer . RepositoryInfoCache ;
161- var raiseEvent = managedCache . IsLastUpdatedTimeDifferent ( cacheUpdateEvent ) ;
161+ var raiseEvent = managedCache . LastUpdatedAt != cacheUpdateEvent . UpdatedTime ;
162162
163163 Logger . Trace ( "Check RepositoryInfoCache CacheUpdateEvent Current:{0} Check:{1} Result:{2}" , managedCache . LastUpdatedAt ,
164164 cacheUpdateEvent . UpdatedTimeString ?? "[NULL]" , raiseEvent ) ;
165165
166166 if ( raiseEvent )
167167 {
168168 var dateTimeOffset = managedCache . LastUpdatedAt ;
169- var updateEvent = new CacheUpdateEvent { UpdatedTimeString = dateTimeOffset . ToString ( ) } ;
169+ var updateEvent = new CacheUpdateEvent { UpdatedTime = dateTimeOffset } ;
170170 HandleRepositoryInfoCacheUpdatedEvent ( updateEvent ) ;
171171 }
172172 }
173173
174174 public void CheckLocksChangedEvent ( CacheUpdateEvent cacheUpdateEvent )
175175 {
176- CacheUpdateEvent cacheUpdateEvent1 = cacheUpdateEvent ;
177176 var managedCache = cacheContainer . GitLocksCache ;
178- var raiseEvent = managedCache . IsLastUpdatedTimeDifferent ( cacheUpdateEvent1 ) ;
177+ var raiseEvent = managedCache . LastUpdatedAt != cacheUpdateEvent . UpdatedTime ;
179178
180179 Logger . Trace ( "Check GitLocksCache CacheUpdateEvent Current:{0} Check:{1} Result:{2}" , managedCache . LastUpdatedAt ,
181- cacheUpdateEvent1 . UpdatedTimeString ?? "[NULL]" , raiseEvent ) ;
180+ cacheUpdateEvent . UpdatedTimeString ?? "[NULL]" , raiseEvent ) ;
182181
183182 if ( raiseEvent )
184183 {
185184 var dateTimeOffset = managedCache . LastUpdatedAt ;
186- var updateEvent = new CacheUpdateEvent { UpdatedTimeString = dateTimeOffset . ToString ( ) } ;
185+ var updateEvent = new CacheUpdateEvent { UpdatedTime = dateTimeOffset } ;
187186 HandleGitLocksCacheUpdatedEvent ( updateEvent ) ;
188187 }
189188 }
@@ -238,15 +237,15 @@ public bool Equals(IRepository other)
238237 private void CheckBranchCacheEvent ( CacheUpdateEvent cacheUpdateEvent )
239238 {
240239 var managedCache = cacheContainer . BranchCache ;
241- var raiseEvent = managedCache . IsLastUpdatedTimeDifferent ( cacheUpdateEvent ) ;
240+ var raiseEvent = managedCache . LastUpdatedAt != cacheUpdateEvent . UpdatedTime ;
242241
243242 Logger . Trace ( "Check BranchCache CacheUpdateEvent Current:{0} Check:{1} Result:{2}" , managedCache . LastUpdatedAt ,
244243 cacheUpdateEvent . UpdatedTimeString ?? "[NULL]" , raiseEvent ) ;
245244
246245 if ( raiseEvent )
247246 {
248247 var dateTimeOffset = managedCache . LastUpdatedAt ;
249- var updateEvent = new CacheUpdateEvent { UpdatedTimeString = dateTimeOffset . ToString ( ) } ;
248+ var updateEvent = new CacheUpdateEvent { UpdatedTime = dateTimeOffset } ;
250249 HandleBranchCacheUpdatedEvent ( updateEvent ) ;
251250 }
252251 }
@@ -283,7 +282,7 @@ private void CacheContainer_OnCacheInvalidated(CacheType cacheType)
283282
284283 private void CacheContainer_OnCacheUpdated ( CacheType cacheType , DateTimeOffset offset )
285284 {
286- var cacheUpdateEvent = new CacheUpdateEvent { UpdatedTimeString = offset . ToString ( ) } ;
285+ var cacheUpdateEvent = new CacheUpdateEvent { UpdatedTime = offset } ;
287286 switch ( cacheType )
288287 {
289288 case CacheType . BranchCache :
@@ -587,15 +586,15 @@ public User(ICacheContainer cacheContainer)
587586 public void CheckUserChangedEvent ( CacheUpdateEvent cacheUpdateEvent )
588587 {
589588 var managedCache = cacheContainer . GitUserCache ;
590- var raiseEvent = managedCache . IsLastUpdatedTimeDifferent ( cacheUpdateEvent ) ;
589+ var raiseEvent = managedCache . LastUpdatedAt != cacheUpdateEvent . UpdatedTime ;
591590
592591 Logger . Trace ( "Check GitUserCache CacheUpdateEvent Current:{0} Check:{1} Result:{2}" , managedCache . LastUpdatedAt ,
593592 cacheUpdateEvent . UpdatedTimeString ?? "[NULL]" , raiseEvent ) ;
594593
595594 if ( raiseEvent )
596595 {
597596 var dateTimeOffset = managedCache . LastUpdatedAt ;
598- var updateEvent = new CacheUpdateEvent { UpdatedTimeString = dateTimeOffset . ToString ( ) } ;
597+ var updateEvent = new CacheUpdateEvent { UpdatedTime = dateTimeOffset } ;
599598 HandleUserCacheUpdatedEvent ( updateEvent ) ;
600599 }
601600 }
@@ -642,7 +641,7 @@ private void GitUserCacheOnCacheUpdated(DateTimeOffset timeOffset)
642641 {
643642 HandleUserCacheUpdatedEvent ( new CacheUpdateEvent
644643 {
645- UpdatedTimeString = timeOffset . ToString ( )
644+ UpdatedTime = timeOffset
646645 } ) ;
647646 }
648647
@@ -682,6 +681,31 @@ private void UpdateUserAndEmail()
682681 [ Serializable ]
683682 public struct CacheUpdateEvent
684683 {
685- public string UpdatedTimeString ;
684+ [ NonSerialized ] private DateTimeOffset ? updatedTimeValue ;
685+ private string updatedTimeString ;
686+
687+ public DateTimeOffset UpdatedTime
688+ {
689+ get
690+ {
691+ if ( ! updatedTimeValue . HasValue )
692+ {
693+ UpdatedTime = DateTimeOffset . MinValue ;
694+ }
695+
696+ return updatedTimeValue . Value ;
697+ }
698+ set
699+ {
700+ updatedTimeValue = value ;
701+ UpdatedTimeString = value . ToString ( Constants . Iso8601Format ) ;
702+ }
703+ }
704+
705+ public string UpdatedTimeString
706+ {
707+ get { return updatedTimeString ; }
708+ private set { updatedTimeString = value ; }
709+ }
686710 }
687711}
0 commit comments