Skip to content

Commit 35dc1f2

Browse files
author
Rafal Maciag
committed
Fixes
1 parent a0c10ee commit 35dc1f2

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

src/EventPi.Abstractions/VideoIdentifier.cs

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,11 @@ namespace EventPi.Abstractions;
99

1010
public interface IVideoRecordingLocator
1111
{
12-
bool Exists(in VideoRecordingIdentifier recording);
12+
VideoRecordingIdentifier.FileNamingConvention? Resolve(in VideoRecordingIdentifier recording);
13+
bool Exists(in VideoRecordingIdentifier recording, VideoRecordingIdentifier.FileNamingConvention? convention=null);
1314
bool Exists(in FrameId frameId);
14-
RecordingPath GetPath(in VideoRecordingIdentifier recording);
15-
string GetFolderFullPath(in VideoRecordingIdentifier recording);
15+
RecordingPath GetPath(in VideoRecordingIdentifier recording, VideoRecordingIdentifier.FileNamingConvention? convention);
16+
string GetFolderFullPath(in VideoRecordingIdentifier recording, VideoRecordingIdentifier.FileNamingConvention? convention);
1617
IEnumerable<VideoRecordingIdentifier> Recording();
1718
}
1819

@@ -54,6 +55,7 @@ public static void Configure()
5455
}
5556

5657

58+
5759
[JsonConverter(typeof(JsonParsableConverter<VideoRecordingIdentifier>))]
5860
[ProtoContract]
5961
public readonly record struct VideoRecordingIdentifier : IParsable<VideoRecordingIdentifier>
@@ -109,10 +111,22 @@ public static VideoRecordingIdentifier Parse(string s, IFormatProvider? provider
109111
return new VideoRecordingIdentifier(hostName, cameraId, createdTime);
110112
}
111113
}
112-
public string ToStringFileName()
114+
115+
public enum FileNamingConvention
116+
{
117+
Iso8601,
118+
ZoneOffset
119+
}
120+
121+
[JsonIgnore]
122+
public FileNamingConvention Convention
123+
{
124+
get => CreatedTime.Offset == TimeSpan.Zero ? FileNamingConvention.Iso8601 : FileNamingConvention.ZoneOffset;
125+
}
126+
public string ToStringFileName(FileNamingConvention? convention = null)
113127
{
114128
// Convert to filename-safe ISO 8601
115-
if (CreatedTime.Offset == TimeSpan.Zero)
129+
if ((convention == null && CreatedTime.Offset == TimeSpan.Zero) || convention == FileNamingConvention.Iso8601)
116130
{
117131
// Use Z for UTC
118132
var utcStr = CreatedTime.UtcDateTime.ToString("yyyyMMddTHHmmss.ffffff") + "Z";

0 commit comments

Comments
 (0)