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

Commit 1840178

Browse files
Merge pull request #501 from github-for-unity/fixes/application-cache-initial-times
More fixes revolving around DateTimeOffset serialization
2 parents c0012ba + b3fd943 commit 1840178

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
@@ -116,7 +116,7 @@ public void CheckLogChangedEvent(CacheUpdateEvent cacheUpdateEvent)
116116
var raiseEvent = managedCache.LastUpdatedAt != cacheUpdateEvent.UpdatedTime;
117117

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

121121
if (raiseEvent)
122122
{
@@ -132,7 +132,7 @@ public void CheckStatusChangedEvent(CacheUpdateEvent cacheUpdateEvent)
132132
var raiseEvent = managedCache.LastUpdatedAt != cacheUpdateEvent.UpdatedTime;
133133

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

137137
if (raiseEvent)
138138
{
@@ -163,7 +163,7 @@ private void CheckRepositoryInfoCacheEvent(CacheUpdateEvent cacheUpdateEvent)
163163
var raiseEvent = managedCache.LastUpdatedAt != cacheUpdateEvent.UpdatedTime;
164164

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

168168
if (raiseEvent)
169169
{
@@ -179,7 +179,7 @@ public void CheckLocksChangedEvent(CacheUpdateEvent cacheUpdateEvent)
179179
var raiseEvent = managedCache.LastUpdatedAt != cacheUpdateEvent.UpdatedTime;
180180

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

184184
if (raiseEvent)
185185
{
@@ -242,7 +242,7 @@ private void CheckBranchCacheEvent(CacheUpdateEvent cacheUpdateEvent)
242242
var raiseEvent = managedCache.LastUpdatedAt != cacheUpdateEvent.UpdatedTime;
243243

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

247247
if (raiseEvent)
248248
{
@@ -629,7 +629,7 @@ public void CheckUserChangedEvent(CacheUpdateEvent cacheUpdateEvent)
629629
var raiseEvent = managedCache.LastUpdatedAt != cacheUpdateEvent.UpdatedTime;
630630

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

634634
if (raiseEvent)
635635
{
@@ -694,7 +694,7 @@ private void GitUserCacheOnCacheInvalidated()
694694

695695
private void HandleUserCacheUpdatedEvent(CacheUpdateEvent cacheUpdateEvent)
696696
{
697-
Logger.Trace("GitUserCache Updated {0}", cacheUpdateEvent.UpdatedTimeString);
697+
Logger.Trace("GitUserCache Updated {0}", cacheUpdateEvent.UpdatedTime);
698698
Changed?.Invoke(cacheUpdateEvent);
699699
}
700700

@@ -726,15 +726,23 @@ private void UpdateUserAndEmail()
726726
public struct CacheUpdateEvent
727727
{
728728
[NonSerialized] private DateTimeOffset? updatedTimeValue;
729-
private string updatedTimeString;
729+
public string updatedTimeString;
730730

731731
public DateTimeOffset UpdatedTime
732732
{
733733
get
734734
{
735735
if (!updatedTimeValue.HasValue)
736736
{
737-
UpdatedTime = DateTimeOffset.MinValue;
737+
DateTimeOffset result;
738+
if (DateTimeOffset.TryParseExact(updatedTimeString, Constants.Iso8601Format, CultureInfo.InvariantCulture, DateTimeStyles.None, out result))
739+
{
740+
updatedTimeValue = result;
741+
}
742+
else
743+
{
744+
UpdatedTime = DateTimeOffset.MinValue;
745+
}
738746
}
739747

740748
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
@@ -211,7 +211,7 @@ public DateTimeOffset LastUpdatedAt
211211
}
212212
else
213213
{
214-
lastUpdatedAtValue = DateTimeOffset.MinValue;
214+
LastUpdatedAt = DateTimeOffset.MinValue;
215215
}
216216
}
217217

@@ -239,7 +239,7 @@ public DateTimeOffset LastVerifiedAt
239239
}
240240
else
241241
{
242-
lastVerifiedAtValue = DateTimeOffset.MinValue;
242+
LastVerifiedAt = DateTimeOffset.MinValue;
243243
}
244244
}
245245

@@ -265,7 +265,7 @@ public DateTimeOffset InitializedAt
265265
}
266266
else
267267
{
268-
initializedAtValue = DateTimeOffset.MinValue;
268+
InitializedAt = DateTimeOffset.MinValue;
269269
}
270270
}
271271

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

@@ -499,9 +499,9 @@ public override TimeSpan DataTimeout
499499
[Location("cache/branches.yaml", LocationAttribute.Location.LibraryFolder)]
500500
sealed class BranchCache : ManagedCacheBase<BranchCache>, IBranchCache
501501
{
502-
[SerializeField] private string lastUpdatedAtString = DateTimeOffset.MinValue.ToString();
503-
[SerializeField] private string lastVerifiedAtString = DateTimeOffset.MinValue.ToString();
504-
[SerializeField] private string initializedAtString = DateTimeOffset.MinValue.ToString();
502+
[SerializeField] private string lastUpdatedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
503+
[SerializeField] private string lastVerifiedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
504+
[SerializeField] private string initializedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
505505

506506
[SerializeField] private ConfigBranch gitConfigBranch;
507507
[SerializeField] private ConfigRemote gitConfigRemote;
@@ -772,9 +772,9 @@ public override TimeSpan DataTimeout
772772
[Location("cache/gitlog.yaml", LocationAttribute.Location.LibraryFolder)]
773773
sealed class GitLogCache : ManagedCacheBase<GitLogCache>, IGitLogCache
774774
{
775-
[SerializeField] private string lastUpdatedAtString = DateTimeOffset.MinValue.ToString();
776-
[SerializeField] private string lastVerifiedAtString = DateTimeOffset.MinValue.ToString();
777-
[SerializeField] private string initializedAtString = DateTimeOffset.MinValue.ToString();
775+
[SerializeField] private string lastUpdatedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
776+
[SerializeField] private string lastVerifiedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
777+
[SerializeField] private string initializedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
778778
[SerializeField] private List<GitLogEntry> log = new List<GitLogEntry>();
779779

780780
public GitLogCache() : base(true)
@@ -831,9 +831,9 @@ public override TimeSpan DataTimeout
831831
[Location("cache/gitstatus.yaml", LocationAttribute.Location.LibraryFolder)]
832832
sealed class GitStatusCache : ManagedCacheBase<GitStatusCache>, IGitStatusCache
833833
{
834-
[SerializeField] private string lastUpdatedAtString = DateTimeOffset.MinValue.ToString();
835-
[SerializeField] private string lastVerifiedAtString = DateTimeOffset.MinValue.ToString();
836-
[SerializeField] private string initializedAtString = DateTimeOffset.MinValue.ToString();
834+
[SerializeField] private string lastUpdatedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
835+
[SerializeField] private string lastVerifiedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
836+
[SerializeField] private string initializedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
837837
[SerializeField] private int ahead;
838838
[SerializeField] private int behind;
839839
[SerializeField] private List<GitStatusEntry> entries = new List<GitStatusEntry>();
@@ -940,9 +940,9 @@ public override TimeSpan DataTimeout
940940
[Location("cache/gitlocks.yaml", LocationAttribute.Location.LibraryFolder)]
941941
sealed class GitLocksCache : ManagedCacheBase<GitLocksCache>, IGitLocksCache
942942
{
943-
[SerializeField] private string lastUpdatedAtString = DateTimeOffset.MinValue.ToString();
944-
[SerializeField] private string lastVerifiedAtString = DateTimeOffset.MinValue.ToString();
945-
[SerializeField] private string initializedAtString = DateTimeOffset.MinValue.ToString();
943+
[SerializeField] private string lastUpdatedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
944+
[SerializeField] private string lastVerifiedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
945+
[SerializeField] private string initializedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
946946
[SerializeField] private List<GitLock> gitLocks = new List<GitLock>();
947947

948948
public GitLocksCache() : base(true)
@@ -999,9 +999,9 @@ public override TimeSpan DataTimeout
999999
[Location("cache/gituser.yaml", LocationAttribute.Location.LibraryFolder)]
10001000
sealed class GitUserCache : ManagedCacheBase<GitUserCache>, IGitUserCache
10011001
{
1002-
[SerializeField] private string lastUpdatedAtString = DateTimeOffset.MinValue.ToString();
1003-
[SerializeField] private string lastVerifiedAtString = DateTimeOffset.MinValue.ToString();
1004-
[SerializeField] private string initializedAtString = DateTimeOffset.MinValue.ToString();
1002+
[SerializeField] private string lastUpdatedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
1003+
[SerializeField] private string lastVerifiedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
1004+
[SerializeField] private string initializedAtString = DateTimeOffset.MinValue.ToString(Constants.Iso8601Format);
10051005
[SerializeField] private string gitName;
10061006
[SerializeField] private string gitEmail;
10071007

0 commit comments

Comments
 (0)