@@ -113,31 +113,31 @@ public ITask ReleaseLock(string file, bool force)
113113 public void CheckLogChangedEvent ( CacheUpdateEvent cacheUpdateEvent )
114114 {
115115 var managedCache = cacheContainer . GitLogCache ;
116- var raiseEvent = managedCache . IsLastUpdatedTimeDifferent ( cacheUpdateEvent ) ;
116+ var raiseEvent = managedCache . LastUpdatedAt != cacheUpdateEvent . UpdatedTime ;
117117
118118 Logger . Trace ( "Check GitLogCache CacheUpdateEvent Current:{0} Check:{1} Result:{2}" , managedCache . LastUpdatedAt ,
119119 cacheUpdateEvent . UpdatedTimeString ?? "[NULL]" , raiseEvent ) ;
120120
121121 if ( raiseEvent )
122122 {
123123 var dateTimeOffset = managedCache . LastUpdatedAt ;
124- var updateEvent = new CacheUpdateEvent { UpdatedTimeString = dateTimeOffset . ToString ( ) } ;
124+ var updateEvent = new CacheUpdateEvent { UpdatedTime = dateTimeOffset } ;
125125 HandleGitLogCacheUpdatedEvent ( updateEvent ) ;
126126 }
127127 }
128128
129129 public void CheckStatusChangedEvent ( CacheUpdateEvent cacheUpdateEvent )
130130 {
131131 var managedCache = cacheContainer . GitStatusCache ;
132- var raiseEvent = managedCache . IsLastUpdatedTimeDifferent ( cacheUpdateEvent ) ;
132+ var raiseEvent = managedCache . LastUpdatedAt != cacheUpdateEvent . UpdatedTime ;
133133
134134 Logger . Trace ( "Check GitStatusCache CacheUpdateEvent Current:{0} Check:{1} Result:{2}" , managedCache . LastUpdatedAt ,
135135 cacheUpdateEvent . UpdatedTimeString ?? "[NULL]" , raiseEvent ) ;
136136
137137 if ( raiseEvent )
138138 {
139139 var dateTimeOffset = managedCache . LastUpdatedAt ;
140- var updateEvent = new CacheUpdateEvent { UpdatedTimeString = dateTimeOffset . ToString ( ) } ;
140+ var updateEvent = new CacheUpdateEvent { UpdatedTime = dateTimeOffset } ;
141141 HandleGitStatusCacheUpdatedEvent ( updateEvent ) ;
142142 }
143143 }
@@ -160,32 +160,31 @@ public void CheckCurrentBranchAndRemoteChangedEvent(CacheUpdateEvent cacheUpdate
160160 private void CheckRepositoryInfoCacheEvent ( CacheUpdateEvent cacheUpdateEvent )
161161 {
162162 var managedCache = cacheContainer . RepositoryInfoCache ;
163- var raiseEvent = managedCache . IsLastUpdatedTimeDifferent ( cacheUpdateEvent ) ;
163+ var raiseEvent = managedCache . LastUpdatedAt != cacheUpdateEvent . UpdatedTime ;
164164
165165 Logger . Trace ( "Check RepositoryInfoCache CacheUpdateEvent Current:{0} Check:{1} Result:{2}" , managedCache . LastUpdatedAt ,
166166 cacheUpdateEvent . UpdatedTimeString ?? "[NULL]" , raiseEvent ) ;
167167
168168 if ( raiseEvent )
169169 {
170170 var dateTimeOffset = managedCache . LastUpdatedAt ;
171- var updateEvent = new CacheUpdateEvent { UpdatedTimeString = dateTimeOffset . ToString ( ) } ;
171+ var updateEvent = new CacheUpdateEvent { UpdatedTime = dateTimeOffset } ;
172172 HandleRepositoryInfoCacheUpdatedEvent ( updateEvent ) ;
173173 }
174174 }
175175
176176 public void CheckLocksChangedEvent ( CacheUpdateEvent cacheUpdateEvent )
177177 {
178- CacheUpdateEvent cacheUpdateEvent1 = cacheUpdateEvent ;
179178 var managedCache = cacheContainer . GitLocksCache ;
180- var raiseEvent = managedCache . IsLastUpdatedTimeDifferent ( cacheUpdateEvent1 ) ;
179+ var raiseEvent = managedCache . LastUpdatedAt != cacheUpdateEvent . UpdatedTime ;
181180
182181 Logger . Trace ( "Check GitLocksCache CacheUpdateEvent Current:{0} Check:{1} Result:{2}" , managedCache . LastUpdatedAt ,
183- cacheUpdateEvent1 . UpdatedTimeString ?? "[NULL]" , raiseEvent ) ;
182+ cacheUpdateEvent . UpdatedTimeString ?? "[NULL]" , raiseEvent ) ;
184183
185184 if ( raiseEvent )
186185 {
187186 var dateTimeOffset = managedCache . LastUpdatedAt ;
188- var updateEvent = new CacheUpdateEvent { UpdatedTimeString = dateTimeOffset . ToString ( ) } ;
187+ var updateEvent = new CacheUpdateEvent { UpdatedTime = dateTimeOffset } ;
189188 HandleGitLocksCacheUpdatedEvent ( updateEvent ) ;
190189 }
191190 }
@@ -240,15 +239,15 @@ public bool Equals(IRepository other)
240239 private void CheckBranchCacheEvent ( CacheUpdateEvent cacheUpdateEvent )
241240 {
242241 var managedCache = cacheContainer . BranchCache ;
243- var raiseEvent = managedCache . IsLastUpdatedTimeDifferent ( cacheUpdateEvent ) ;
242+ var raiseEvent = managedCache . LastUpdatedAt != cacheUpdateEvent . UpdatedTime ;
244243
245244 Logger . Trace ( "Check BranchCache CacheUpdateEvent Current:{0} Check:{1} Result:{2}" , managedCache . LastUpdatedAt ,
246245 cacheUpdateEvent . UpdatedTimeString ?? "[NULL]" , raiseEvent ) ;
247246
248247 if ( raiseEvent )
249248 {
250249 var dateTimeOffset = managedCache . LastUpdatedAt ;
251- var updateEvent = new CacheUpdateEvent { UpdatedTimeString = dateTimeOffset . ToString ( ) } ;
250+ var updateEvent = new CacheUpdateEvent { UpdatedTime = dateTimeOffset } ;
252251 HandleBranchCacheUpdatedEvent ( updateEvent ) ;
253252 }
254253 }
@@ -285,7 +284,7 @@ private void CacheContainer_OnCacheInvalidated(CacheType cacheType)
285284
286285 private void CacheContainer_OnCacheUpdated ( CacheType cacheType , DateTimeOffset offset )
287286 {
288- var cacheUpdateEvent = new CacheUpdateEvent { UpdatedTimeString = offset . ToString ( ) } ;
287+ var cacheUpdateEvent = new CacheUpdateEvent { UpdatedTime = offset } ;
289288 switch ( cacheType )
290289 {
291290 case CacheType . BranchCache :
@@ -627,15 +626,15 @@ public User(ICacheContainer cacheContainer)
627626 public void CheckUserChangedEvent ( CacheUpdateEvent cacheUpdateEvent )
628627 {
629628 var managedCache = cacheContainer . GitUserCache ;
630- var raiseEvent = managedCache . IsLastUpdatedTimeDifferent ( cacheUpdateEvent ) ;
629+ var raiseEvent = managedCache . LastUpdatedAt != cacheUpdateEvent . UpdatedTime ;
631630
632631 Logger . Trace ( "Check GitUserCache CacheUpdateEvent Current:{0} Check:{1} Result:{2}" , managedCache . LastUpdatedAt ,
633632 cacheUpdateEvent . UpdatedTimeString ?? "[NULL]" , raiseEvent ) ;
634633
635634 if ( raiseEvent )
636635 {
637636 var dateTimeOffset = managedCache . LastUpdatedAt ;
638- var updateEvent = new CacheUpdateEvent { UpdatedTimeString = dateTimeOffset . ToString ( ) } ;
637+ var updateEvent = new CacheUpdateEvent { UpdatedTime = dateTimeOffset } ;
639638 HandleUserCacheUpdatedEvent ( updateEvent ) ;
640639 }
641640 }
@@ -683,7 +682,7 @@ private void GitUserCacheOnCacheUpdated(DateTimeOffset timeOffset)
683682 {
684683 HandleUserCacheUpdatedEvent ( new CacheUpdateEvent
685684 {
686- UpdatedTimeString = timeOffset . ToString ( )
685+ UpdatedTime = timeOffset
687686 } ) ;
688687 }
689688
@@ -726,6 +725,31 @@ private void UpdateUserAndEmail()
726725 [ Serializable ]
727726 public struct CacheUpdateEvent
728727 {
729- public string UpdatedTimeString ;
728+ [ NonSerialized ] private DateTimeOffset ? updatedTimeValue ;
729+ private string updatedTimeString ;
730+
731+ public DateTimeOffset UpdatedTime
732+ {
733+ get
734+ {
735+ if ( ! updatedTimeValue . HasValue )
736+ {
737+ UpdatedTime = DateTimeOffset . MinValue ;
738+ }
739+
740+ return updatedTimeValue . Value ;
741+ }
742+ set
743+ {
744+ updatedTimeValue = value ;
745+ UpdatedTimeString = value . ToString ( Constants . Iso8601Format ) ;
746+ }
747+ }
748+
749+ public string UpdatedTimeString
750+ {
751+ get { return updatedTimeString ; }
752+ private set { updatedTimeString = value ; }
753+ }
730754 }
731755}
0 commit comments