Skip to content

Commit 88c1e9b

Browse files
committed
updated to cm-management v1.3 -> full updates for triggers
1 parent cfb7232 commit 88c1e9b

File tree

7 files changed

+154
-13
lines changed

7 files changed

+154
-13
lines changed

source/Jobbr.Server.nuspec

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<dependency id="Jobbr.ComponentModel.ArtefactStorage" version="[1,1.1)" />
1616
<dependency id="Jobbr.ComponentModel.Execution" version="[1,1.1)" />
1717
<dependency id="Jobbr.ComponentModel.JobStorage" version="[1.2,1.3)" />
18-
<dependency id="Jobbr.ComponentModel.Management" version="[1.2,1.3)" />
18+
<dependency id="Jobbr.ComponentModel.Management" version="[1.3,1.4)" />
1919
<dependency id="Jobbr.ComponentModel.Registration" version="[1,1.1)" />
2020
</dependencies>
2121
</metadata>

source/Jobbr.Server/ComponentServices/Management/JobManagementService.cs

+21
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,13 @@ public void AddJob(Job job)
3636
job.Id = newJOb.Id;
3737
}
3838

39+
public void UpdateJob(Job job)
40+
{
41+
var model = this.mapper.Map<JobModel>(job);
42+
43+
this.jobService.Update(model);
44+
}
45+
3946
public void DeleteJob(long jobId)
4047
{
4148
// TODO: implement :)
@@ -94,6 +101,20 @@ public void UpdateTriggerDefinition(long jobId, long triggerId, string definitio
94101
this.triggerService.Update(jobId, triggerId, definition);
95102
}
96103

104+
public void Update(RecurringTrigger trigger)
105+
{
106+
var triggerModel = this.mapper.Map<RecurringTriggerModel>(trigger);
107+
108+
this.triggerService.Update(triggerModel);
109+
}
110+
111+
public void Update(ScheduledTrigger trigger)
112+
{
113+
var triggerModel = this.mapper.Map<ScheduledTriggerModel>(trigger);
114+
115+
this.triggerService.Update(triggerModel);
116+
}
117+
97118
public void UpdateTriggerStartTime(long jobId, long triggerId, DateTime startDateTimeUtc)
98119
{
99120
this.triggerService.Update(jobId, triggerId, startDateTimeUtc);

source/Jobbr.Server/Core/JobService.cs

+15-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using AutoMapper;
1+
using System;
2+
using AutoMapper;
23
using Jobbr.ComponentModel.JobStorage.Model;
34
using Jobbr.Server.Core.Models;
45
using Jobbr.Server.Storage;
@@ -25,5 +26,18 @@ public JobModel Add(JobModel model)
2526

2627
return model;
2728
}
29+
30+
public void Update(JobModel model)
31+
{
32+
var entity = this.mapper.Map<Job>(model);
33+
34+
var fromDb = this.repository.GetJob(model.Id);
35+
36+
fromDb.Parameters = entity.Parameters;
37+
fromDb.Title = entity.Title;
38+
fromDb.UpdatedDateTimeUtc = DateTime.UtcNow;
39+
40+
throw new NotImplementedException();
41+
}
2842
}
2943
}

source/Jobbr.Server/Core/TriggerService.cs

+45-4
Original file line numberDiff line numberDiff line change
@@ -90,19 +90,61 @@ internal void Update(long jobId, long triggerId, string definition)
9090

9191
recurringTrigger.Definition = definition;
9292

93-
bool hadChanges;
94-
this.jobbrRepository.SaveUpdateTrigger(jobId, trigger, out hadChanges);
93+
this.jobbrRepository.SaveUpdateTrigger(jobId, trigger, out var hadChanges);
9594

9695
if (hadChanges)
9796
{
9897
this.messengerHub.PublishAsync(new TriggerUpdatedMessage(this, new TriggerKey { JobId = jobId, TriggerId = triggerId }));
9998
}
10099
}
101100

101+
internal void Update(RecurringTriggerModel trigger)
102+
{
103+
var triggerEntity = this.mapper.Map<RecurringTrigger>(trigger);
104+
105+
// ReSharper disable once UsePatternMatching
106+
var fromDb = this.jobbrRepository.GetTriggerById(trigger.JobId, trigger.Id) as RecurringTrigger;
107+
108+
if (fromDb == null)
109+
{
110+
Logger.Warn($"Unable to update RecurringTrigger with id '{trigger.Id}' (JobId '{trigger.JobId}'): Trigger not found!");
111+
return;
112+
}
113+
114+
this.jobbrRepository.SaveUpdateTrigger(trigger.JobId, triggerEntity, out var hadChanges);
115+
116+
if (hadChanges)
117+
{
118+
this.messengerHub.PublishAsync(new TriggerUpdatedMessage(this, new TriggerKey { JobId = trigger.JobId, TriggerId = trigger.Id }));
119+
}
120+
}
121+
122+
internal void Update(ScheduledTriggerModel trigger)
123+
{
124+
var triggerEntity = this.mapper.Map<ScheduledTrigger>(trigger);
125+
126+
// ReSharper disable once UsePatternMatching
127+
var fromDb = this.jobbrRepository.GetTriggerById(trigger.JobId, trigger.Id) as ScheduledTrigger;
128+
129+
if (fromDb == null)
130+
{
131+
Logger.Warn($"Unable to update ScheduledTrigger with id '{trigger.Id}' (JobId '{trigger.JobId}'): Trigger not found!");
132+
return;
133+
}
134+
135+
this.jobbrRepository.SaveUpdateTrigger(trigger.JobId, triggerEntity, out var hadChanges);
136+
137+
if (hadChanges)
138+
{
139+
this.messengerHub.PublishAsync(new TriggerUpdatedMessage(this, new TriggerKey { JobId = trigger.JobId, TriggerId = trigger.Id }));
140+
}
141+
}
142+
102143
internal void Update(long jobId, long triggerId, DateTime startDateTimeUtc)
103144
{
104145
var trigger = this.jobbrRepository.GetTriggerById(jobId, triggerId);
105146

147+
// ReSharper disable once UsePatternMatching
106148
var recurringTrigger = trigger as ScheduledTrigger;
107149

108150
if (recurringTrigger == null)
@@ -113,8 +155,7 @@ internal void Update(long jobId, long triggerId, DateTime startDateTimeUtc)
113155

114156
recurringTrigger.StartDateTimeUtc = startDateTimeUtc;
115157

116-
bool hadChanges;
117-
this.jobbrRepository.SaveUpdateTrigger(jobId, trigger, out hadChanges);
158+
this.jobbrRepository.SaveUpdateTrigger(jobId, trigger, out var hadChanges);
118159

119160
if (hadChanges)
120161
{

source/Jobbr.Server/Jobbr.Server.csproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@
4848
<Reference Include="Jobbr.ComponentModel.JobStorage, Version=1.2.0.0, Culture=neutral, processorArchitecture=MSIL">
4949
<HintPath>..\packages\Jobbr.ComponentModel.JobStorage.1.2.0\lib\net462\Jobbr.ComponentModel.JobStorage.dll</HintPath>
5050
</Reference>
51-
<Reference Include="Jobbr.ComponentModel.Management, Version=1.2.0.0, Culture=neutral, processorArchitecture=MSIL">
52-
<HintPath>..\packages\Jobbr.ComponentModel.Management.1.2.0\lib\net462\Jobbr.ComponentModel.Management.dll</HintPath>
51+
<Reference Include="Jobbr.ComponentModel.Management, Version=1.3.0.0, Culture=neutral, processorArchitecture=MSIL">
52+
<HintPath>..\packages\Jobbr.ComponentModel.Management.1.3.0\lib\net462\Jobbr.ComponentModel.Management.dll</HintPath>
5353
</Reference>
5454
<Reference Include="Jobbr.ComponentModel.Registration, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
5555
<HintPath>..\packages\Jobbr.ComponentModel.Registration.1.0.1\lib\net462\Jobbr.ComponentModel.Registration.dll</HintPath>

source/Jobbr.Server/Storage/JobbrRepository.cs

+69-4
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,8 @@ public JobTriggerBase SaveUpdateTrigger(long jobId, JobTriggerBase trigger, out
127127

128128
if (hadChanges)
129129
{
130+
trigger.CreatedDateTimeUtc = triggerFromDb.CreatedDateTimeUtc;
131+
130132
if (trigger is InstantTrigger)
131133
{
132134
this.storageProvider.Update(jobId, trigger as InstantTrigger);
@@ -289,25 +291,88 @@ public IEnumerable<JobRun> GetJobRunsByStateRange(JobRunStates minState, JobRunS
289291

290292
private bool ApplyOtherChanges(RecurringTrigger fromDb, RecurringTrigger updatedOne)
291293
{
294+
bool hadChanges = false;
295+
292296
if (!string.Equals(fromDb.Definition, updatedOne.Definition, StringComparison.OrdinalIgnoreCase))
293297
{
294298
fromDb.Definition = updatedOne.Definition;
295-
return true;
299+
hadChanges = true;
296300
}
297301

298-
return false;
302+
if (fromDb.NoParallelExecution != updatedOne.NoParallelExecution)
303+
{
304+
fromDb.NoParallelExecution = updatedOne.NoParallelExecution;
305+
hadChanges = true;
306+
}
307+
308+
if (fromDb.StartDateTimeUtc != updatedOne.StartDateTimeUtc)
309+
{
310+
fromDb.StartDateTimeUtc = updatedOne.StartDateTimeUtc;
311+
hadChanges = true;
312+
}
313+
314+
if (fromDb.EndDateTimeUtc != updatedOne.EndDateTimeUtc)
315+
{
316+
fromDb.EndDateTimeUtc = updatedOne.EndDateTimeUtc;
317+
hadChanges = true;
318+
}
319+
320+
if (this.ApplyBaseChanges(fromDb, updatedOne))
321+
{
322+
hadChanges = true;
323+
}
324+
325+
return hadChanges;
299326
}
300327

301328
private bool ApplyOtherChanges(ScheduledTrigger fromDb, ScheduledTrigger updatedOne)
302329
{
330+
bool hadChanges = false;
331+
303332
if (fromDb.StartDateTimeUtc != updatedOne.StartDateTimeUtc)
304333
{
305334
fromDb.StartDateTimeUtc = updatedOne.StartDateTimeUtc;
306335

307-
return true;
336+
hadChanges = true;
308337
}
309338

310-
return false;
339+
if (this.ApplyBaseChanges(fromDb, updatedOne))
340+
{
341+
hadChanges = true;
342+
}
343+
344+
return hadChanges;
345+
}
346+
347+
private bool ApplyBaseChanges(JobTriggerBase fromDb, JobTriggerBase updatedOne)
348+
{
349+
bool hadChanges = false;
350+
351+
if (string.Equals(fromDb.Comment, updatedOne.Comment, StringComparison.Ordinal) == false)
352+
{
353+
fromDb.Comment = updatedOne.Comment;
354+
hadChanges = true;
355+
}
356+
357+
if (string.Equals(fromDb.UserId, updatedOne.UserId, StringComparison.Ordinal) == false)
358+
{
359+
fromDb.UserId = updatedOne.UserId;
360+
hadChanges = true;
361+
}
362+
363+
if (string.Equals(fromDb.UserDisplayName, updatedOne.UserDisplayName, StringComparison.Ordinal) == false)
364+
{
365+
fromDb.UserDisplayName = updatedOne.UserDisplayName;
366+
hadChanges = true;
367+
}
368+
369+
if (string.Equals(fromDb.Parameters, updatedOne.Parameters, StringComparison.Ordinal) == false)
370+
{
371+
fromDb.Parameters = updatedOne.Parameters;
372+
hadChanges = true;
373+
}
374+
375+
return hadChanges;
311376
}
312377

313378
private bool ApplyOtherChanges(InstantTrigger fromDb, InstantTrigger updatedOne)

source/Jobbr.Server/packages.config

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<package id="Jobbr.ComponentModel.ArtefactStorage" version="1.0.1" targetFramework="net462" />
66
<package id="Jobbr.ComponentModel.Execution" version="1.0.1" targetFramework="net462" />
77
<package id="Jobbr.ComponentModel.JobStorage" version="1.2.0" targetFramework="net462" />
8-
<package id="Jobbr.ComponentModel.Management" version="1.2.0" targetFramework="net462" />
8+
<package id="Jobbr.ComponentModel.Management" version="1.3.0" targetFramework="net462" />
99
<package id="Jobbr.ComponentModel.Registration" version="1.0.1" targetFramework="net462" />
1010
<package id="LibLog" version="3.1.0" targetFramework="net462" developmentDependency="true" />
1111
<package id="Microsoft.AnalyzerPowerPack" version="1.1.0" targetFramework="net462" />

0 commit comments

Comments
 (0)