Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit 92b65da

Browse files
More fixes revolving around DateTimeOffset serialization
CacheUpdateEvent does not deserailize itself properly Application cache objects have their initial time strings set improperly # Conflicts: # src/UnityExtension/Assets/Editor/GitHub.Unity/ApplicationCache.cs
1 parent 4ac0f04 commit 92b65da

File tree

2 files changed

+38
-30
lines changed

2 files changed

+38
-30
lines changed

src/GitHub.Api/Git/Repository.cs

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ public void CheckLogChangedEvent(CacheUpdateEvent cacheUpdateEvent)
114114
var raiseEvent = managedCache.LastUpdatedAt != cacheUpdateEvent.UpdatedTime;
115115

116116
Logger.Trace("Check GitLogCache CacheUpdateEvent Current:{0} Check:{1} Result:{2}", managedCache.LastUpdatedAt,
117-
cacheUpdateEvent.UpdatedTimeString ?? "[NULL]", raiseEvent);
117+
cacheUpdateEvent.UpdatedTime, raiseEvent);
118118

119119
if (raiseEvent)
120120
{
@@ -130,7 +130,7 @@ public void CheckStatusChangedEvent(CacheUpdateEvent cacheUpdateEvent)
130130
var raiseEvent = managedCache.LastUpdatedAt != cacheUpdateEvent.UpdatedTime;
131131

132132
Logger.Trace("Check GitStatusCache CacheUpdateEvent Current:{0} Check:{1} Result:{2}", managedCache.LastUpdatedAt,
133-
cacheUpdateEvent.UpdatedTimeString ?? "[NULL]", raiseEvent);
133+
cacheUpdateEvent.UpdatedTime, raiseEvent);
134134

135135
if (raiseEvent)
136136
{
@@ -161,7 +161,7 @@ private void CheckRepositoryInfoCacheEvent(CacheUpdateEvent cacheUpdateEvent)
161161
var raiseEvent = managedCache.LastUpdatedAt != cacheUpdateEvent.UpdatedTime;
162162

163163
Logger.Trace("Check RepositoryInfoCache CacheUpdateEvent Current:{0} Check:{1} Result:{2}", managedCache.LastUpdatedAt,
164-
cacheUpdateEvent.UpdatedTimeString ?? "[NULL]", raiseEvent);
164+
cacheUpdateEvent.UpdatedTime, raiseEvent);
165165

166166
if (raiseEvent)
167167
{
@@ -177,7 +177,7 @@ public void CheckLocksChangedEvent(CacheUpdateEvent cacheUpdateEvent)
177177
var raiseEvent = managedCache.LastUpdatedAt != cacheUpdateEvent.UpdatedTime;
178178

179179
Logger.Trace("Check GitLocksCache CacheUpdateEvent Current:{0} Check:{1} Result:{2}", managedCache.LastUpdatedAt,
180-
cacheUpdateEvent.UpdatedTimeString ?? "[NULL]", raiseEvent);
180+
cacheUpdateEvent.UpdatedTime, raiseEvent);
181181

182182
if (raiseEvent)
183183
{
@@ -240,7 +240,7 @@ private void CheckBranchCacheEvent(CacheUpdateEvent cacheUpdateEvent)
240240
var raiseEvent = managedCache.LastUpdatedAt != cacheUpdateEvent.UpdatedTime;
241241

242242
Logger.Trace("Check BranchCache CacheUpdateEvent Current:{0} Check:{1} Result:{2}", managedCache.LastUpdatedAt,
243-
cacheUpdateEvent.UpdatedTimeString ?? "[NULL]", raiseEvent);
243+
cacheUpdateEvent.UpdatedTime, raiseEvent);
244244

245245
if (raiseEvent)
246246
{
@@ -589,7 +589,7 @@ public void CheckUserChangedEvent(CacheUpdateEvent cacheUpdateEvent)
589589
var raiseEvent = managedCache.LastUpdatedAt != cacheUpdateEvent.UpdatedTime;
590590

591591
Logger.Trace("Check GitUserCache CacheUpdateEvent Current:{0} Check:{1} Result:{2}", managedCache.LastUpdatedAt,
592-
cacheUpdateEvent.UpdatedTimeString ?? "[NULL]", raiseEvent);
592+
cacheUpdateEvent.UpdatedTime, raiseEvent);
593593

594594
if (raiseEvent)
595595
{
@@ -653,7 +653,7 @@ private void GitUserCacheOnCacheInvalidated()
653653

654654
private void HandleUserCacheUpdatedEvent(CacheUpdateEvent cacheUpdateEvent)
655655
{
656-
Logger.Trace("GitUserCache Updated {0}", cacheUpdateEvent.UpdatedTimeString);
656+
Logger.Trace("GitUserCache Updated {0}", cacheUpdateEvent.UpdatedTime);
657657
Changed?.Invoke(cacheUpdateEvent);
658658
}
659659

@@ -682,15 +682,23 @@ private void UpdateUserAndEmail()
682682
public struct CacheUpdateEvent
683683
{
684684
[NonSerialized] private DateTimeOffset? updatedTimeValue;
685-
private string updatedTimeString;
685+
public string updatedTimeString;
686686

687687
public DateTimeOffset UpdatedTime
688688
{
689689
get
690690
{
691691
if (!updatedTimeValue.HasValue)
692692
{
693-
UpdatedTime = DateTimeOffset.MinValue;
693+
DateTimeOffset result;
694+
if (DateTimeOffset.TryParseExact(updatedTimeString, Constants.Iso8601Format, CultureInfo.InvariantCulture, DateTimeStyles.None, out result))
695+
{
696+
updatedTimeValue = result;
697+
}
698+
else
699+
{
700+
UpdatedTime = DateTimeOffset.MinValue;
701+
}
694702
}
695703

696704
return updatedTimeValue.Value;

src/UnityExtension/Assets/Editor/GitHub.Unity/ApplicationCache.cs

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ public DateTimeOffset LastUpdatedAt
210210
}
211211
else
212212
{
213-
lastUpdatedAtValue = DateTimeOffset.MinValue;
213+
LastUpdatedAt = DateTimeOffset.MinValue;
214214
}
215215
}
216216

@@ -238,7 +238,7 @@ public DateTimeOffset LastVerifiedAt
238238
}
239239
else
240240
{
241-
lastVerifiedAtValue = DateTimeOffset.MinValue;
241+
LastVerifiedAt = DateTimeOffset.MinValue;
242242
}
243243
}
244244

@@ -264,7 +264,7 @@ public DateTimeOffset InitializedAt
264264
}
265265
else
266266
{
267-
initializedAtValue = DateTimeOffset.MinValue;
267+
InitializedAt = DateTimeOffset.MinValue;
268268
}
269269
}
270270

@@ -414,9 +414,9 @@ public ConfigRemoteDictionary(IDictionary<string, ConfigRemote> dictionary)
414414
[Location("cache/repoinfo.yaml", LocationAttribute.Location.LibraryFolder)]
415415
sealed class RepositoryInfoCache : ManagedCacheBase<RepositoryInfoCache>, IRepositoryInfoCache
416416
{
417-
[SerializeField] private string lastUpdatedAtString = DateTimeOffset.MinValue.ToString();
418-
[SerializeField] private string lastVerifiedAtString = DateTimeOffset.MinValue.ToString();
419-
[SerializeField] private string firstInitializedAtString = DateTimeOffset.MinValue.ToString();
417+
[SerializeField] private string lastUpdatedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
418+
[SerializeField] private string lastVerifiedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
419+
[SerializeField] private string firstInitializedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
420420
[SerializeField] private GitRemote gitRemote;
421421
[SerializeField] private GitBranch gitBranch;
422422

@@ -501,9 +501,9 @@ sealed class BranchCache : ManagedCacheBase<BranchCache>, IBranchCache
501501
public static readonly ConfigBranch DefaultConfigBranch = new ConfigBranch();
502502
public static readonly ConfigRemote DefaultConfigRemote = new ConfigRemote();
503503

504-
[SerializeField] private string lastUpdatedAtString = DateTimeOffset.MinValue.ToString();
505-
[SerializeField] private string lastVerifiedAtString = DateTimeOffset.MinValue.ToString();
506-
[SerializeField] private string initializedAtString = DateTimeOffset.MinValue.ToString();
504+
[SerializeField] private string lastUpdatedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
505+
[SerializeField] private string lastVerifiedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
506+
[SerializeField] private string initializedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
507507

508508
[SerializeField] private ConfigBranch gitConfigBranch;
509509
[SerializeField] private ConfigRemote gitConfigRemote;
@@ -774,9 +774,9 @@ public override TimeSpan DataTimeout
774774
[Location("cache/gitlog.yaml", LocationAttribute.Location.LibraryFolder)]
775775
sealed class GitLogCache : ManagedCacheBase<GitLogCache>, IGitLogCache
776776
{
777-
[SerializeField] private string lastUpdatedAtString = DateTimeOffset.MinValue.ToString();
778-
[SerializeField] private string lastVerifiedAtString = DateTimeOffset.MinValue.ToString();
779-
[SerializeField] private string initializedAtString = DateTimeOffset.MinValue.ToString();
777+
[SerializeField] private string lastUpdatedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
778+
[SerializeField] private string lastVerifiedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
779+
[SerializeField] private string initializedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
780780
[SerializeField] private List<GitLogEntry> log = new List<GitLogEntry>();
781781

782782
public GitLogCache() : base(true)
@@ -833,9 +833,9 @@ public override TimeSpan DataTimeout
833833
[Location("cache/gitstatus.yaml", LocationAttribute.Location.LibraryFolder)]
834834
sealed class GitStatusCache : ManagedCacheBase<GitStatusCache>, IGitStatusCache
835835
{
836-
[SerializeField] private string lastUpdatedAtString = DateTimeOffset.MinValue.ToString();
837-
[SerializeField] private string lastVerifiedAtString = DateTimeOffset.MinValue.ToString();
838-
[SerializeField] private string initializedAtString = DateTimeOffset.MinValue.ToString();
836+
[SerializeField] private string lastUpdatedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
837+
[SerializeField] private string lastVerifiedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
838+
[SerializeField] private string initializedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
839839
[SerializeField] private GitStatus status;
840840

841841
public GitStatusCache() : base(true)
@@ -892,9 +892,9 @@ public override TimeSpan DataTimeout
892892
[Location("cache/gitlocks.yaml", LocationAttribute.Location.LibraryFolder)]
893893
sealed class GitLocksCache : ManagedCacheBase<GitLocksCache>, IGitLocksCache
894894
{
895-
[SerializeField] private string lastUpdatedAtString = DateTimeOffset.MinValue.ToString();
896-
[SerializeField] private string lastVerifiedAtString = DateTimeOffset.MinValue.ToString();
897-
[SerializeField] private string initializedAtString = DateTimeOffset.MinValue.ToString();
895+
[SerializeField] private string lastUpdatedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
896+
[SerializeField] private string lastVerifiedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
897+
[SerializeField] private string initializedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
898898
[SerializeField] private List<GitLock> gitLocks = new List<GitLock>();
899899

900900
public GitLocksCache() : base(true)
@@ -951,9 +951,9 @@ public override TimeSpan DataTimeout
951951
[Location("cache/gituser.yaml", LocationAttribute.Location.LibraryFolder)]
952952
sealed class GitUserCache : ManagedCacheBase<GitUserCache>, IGitUserCache
953953
{
954-
[SerializeField] private string lastUpdatedAtString = DateTimeOffset.MinValue.ToString();
955-
[SerializeField] private string lastVerifiedAtString = DateTimeOffset.MinValue.ToString();
956-
[SerializeField] private string initializedAtString = DateTimeOffset.MinValue.ToString();
954+
[SerializeField] private string lastUpdatedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
955+
[SerializeField] private string lastVerifiedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
956+
[SerializeField] private string initializedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
957957
[SerializeField] private string gitName;
958958
[SerializeField] private string gitEmail;
959959

0 commit comments

Comments
 (0)