forked from equinor/flotilla
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMissionDefinitionResponse.cs
More file actions
116 lines (92 loc) · 4.18 KB
/
MissionDefinitionResponse.cs
File metadata and controls
116 lines (92 loc) · 4.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#nullable enable
using System.Text.Json.Serialization;
using Api.Database.Models;
using Api.Services;
namespace Api.Controllers.Models
{
public class MissionDefinitionResponse
{
[JsonPropertyName("id")]
public string Id { get; set; } = string.Empty;
[JsonPropertyName("name")]
public string Name { get; set; } = string.Empty;
[JsonPropertyName("installationCode")]
public string InstallationCode { get; set; } = string.Empty;
[JsonPropertyName("comment")]
public string? Comment { get; set; }
[JsonPropertyName("inspectionFrequency")]
public TimeSpan? InspectionFrequency { get; set; }
[JsonPropertyName("autoScheduleFrequency")]
public AutoScheduleFrequency? AutoScheduleFrequency { get; set; }
[JsonPropertyName("lastSuccessfulRun")]
public virtual MissionRun? LastSuccessfulRun { get; set; }
[JsonPropertyName("inspectionArea")]
public InspectionAreaResponse? InspectionArea { get; set; }
[JsonPropertyName("isDeprecated")]
public bool IsDeprecated { get; set; }
[JsonPropertyName("sourceId")]
public string SourceId { get; set; } = string.Empty;
[JsonPropertyName("map")]
public MapMetadata? Map { get; set; }
[JsonConstructor]
public MissionDefinitionResponse() { }
public MissionDefinitionResponse(MissionDefinition missionDefinition)
{
Id = missionDefinition.Id;
Name = missionDefinition.Name;
InstallationCode = missionDefinition.InstallationCode;
Comment = missionDefinition.Comment;
InspectionFrequency = missionDefinition.InspectionFrequency;
AutoScheduleFrequency =
(
missionDefinition.AutoScheduleFrequency is not null
&& missionDefinition.AutoScheduleFrequency.HasValidValue()
)
? missionDefinition.AutoScheduleFrequency
: null;
InspectionArea =
missionDefinition.InspectionArea != null
? new InspectionAreaResponse(missionDefinition.InspectionArea)
: null;
LastSuccessfulRun = missionDefinition.LastSuccessfulRun;
IsDeprecated = missionDefinition.IsDeprecated;
SourceId = missionDefinition.Source.SourceId;
Map = missionDefinition.Map;
}
}
public class MissionDefinitionWithTasksResponse(
IMissionDefinitionService service,
MissionDefinition missionDefinition
)
{
[JsonPropertyName("id")]
public string Id { get; } = missionDefinition.Id;
[JsonPropertyName("tasks")]
public List<MissionTask> Tasks { get; } =
service.GetTasksFromSource(missionDefinition.Source).Result!;
[JsonPropertyName("name")]
public string Name { get; } = missionDefinition.Name;
[JsonPropertyName("installationCode")]
public string InstallationCode { get; } = missionDefinition.InstallationCode;
[JsonPropertyName("comment")]
public string? Comment { get; } = missionDefinition.Comment;
[JsonPropertyName("inspectionFrequency")]
public TimeSpan? InspectionFrequency { get; } = missionDefinition.InspectionFrequency;
[JsonPropertyName("autoScheduleFrequency")]
public AutoScheduleFrequency? AutoScheduleFrequency { get; } =
(
missionDefinition.AutoScheduleFrequency is not null
&& missionDefinition.AutoScheduleFrequency.HasValidValue()
)
? missionDefinition.AutoScheduleFrequency
: null;
[JsonPropertyName("lastSuccessfulRun")]
public virtual MissionRun? LastSuccessfulRun { get; } = missionDefinition.LastSuccessfulRun;
[JsonPropertyName("inspectionArea")]
public InspectionArea? InspectionArea { get; } = missionDefinition.InspectionArea;
[JsonPropertyName("isDeprecated")]
public bool IsDeprecated { get; } = missionDefinition.IsDeprecated;
[JsonPropertyName("map")]
public MapMetadata? Map { get; } = missionDefinition.Map;
}
}