Skip to content

Commit

Permalink
updated to cm-management v1.3 -> full updates for triggers
Browse files Browse the repository at this point in the history
  • Loading branch information
olibanjoli committed Oct 5, 2018
1 parent cfb7232 commit 88c1e9b
Show file tree
Hide file tree
Showing 7 changed files with 154 additions and 13 deletions.
2 changes: 1 addition & 1 deletion source/Jobbr.Server.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
<dependency id="Jobbr.ComponentModel.ArtefactStorage" version="[1,1.1)" />
<dependency id="Jobbr.ComponentModel.Execution" version="[1,1.1)" />
<dependency id="Jobbr.ComponentModel.JobStorage" version="[1.2,1.3)" />
<dependency id="Jobbr.ComponentModel.Management" version="[1.2,1.3)" />
<dependency id="Jobbr.ComponentModel.Management" version="[1.3,1.4)" />
<dependency id="Jobbr.ComponentModel.Registration" version="[1,1.1)" />
</dependencies>
</metadata>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,13 @@ public void AddJob(Job job)
job.Id = newJOb.Id;
}

public void UpdateJob(Job job)
{
var model = this.mapper.Map<JobModel>(job);

this.jobService.Update(model);
}

public void DeleteJob(long jobId)
{
// TODO: implement :)
Expand Down Expand Up @@ -94,6 +101,20 @@ public void UpdateTriggerDefinition(long jobId, long triggerId, string definitio
this.triggerService.Update(jobId, triggerId, definition);
}

public void Update(RecurringTrigger trigger)
{
var triggerModel = this.mapper.Map<RecurringTriggerModel>(trigger);

this.triggerService.Update(triggerModel);
}

public void Update(ScheduledTrigger trigger)
{
var triggerModel = this.mapper.Map<ScheduledTriggerModel>(trigger);

this.triggerService.Update(triggerModel);
}

public void UpdateTriggerStartTime(long jobId, long triggerId, DateTime startDateTimeUtc)
{
this.triggerService.Update(jobId, triggerId, startDateTimeUtc);
Expand Down
16 changes: 15 additions & 1 deletion source/Jobbr.Server/Core/JobService.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using AutoMapper;
using System;
using AutoMapper;
using Jobbr.ComponentModel.JobStorage.Model;
using Jobbr.Server.Core.Models;
using Jobbr.Server.Storage;
Expand All @@ -25,5 +26,18 @@ public JobModel Add(JobModel model)

return model;
}

public void Update(JobModel model)
{
var entity = this.mapper.Map<Job>(model);

var fromDb = this.repository.GetJob(model.Id);

fromDb.Parameters = entity.Parameters;
fromDb.Title = entity.Title;
fromDb.UpdatedDateTimeUtc = DateTime.UtcNow;

throw new NotImplementedException();
}
}
}
49 changes: 45 additions & 4 deletions source/Jobbr.Server/Core/TriggerService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -90,19 +90,61 @@ internal void Update(long jobId, long triggerId, string definition)

recurringTrigger.Definition = definition;

bool hadChanges;
this.jobbrRepository.SaveUpdateTrigger(jobId, trigger, out hadChanges);
this.jobbrRepository.SaveUpdateTrigger(jobId, trigger, out var hadChanges);

if (hadChanges)
{
this.messengerHub.PublishAsync(new TriggerUpdatedMessage(this, new TriggerKey { JobId = jobId, TriggerId = triggerId }));
}
}

internal void Update(RecurringTriggerModel trigger)
{
var triggerEntity = this.mapper.Map<RecurringTrigger>(trigger);

// ReSharper disable once UsePatternMatching
var fromDb = this.jobbrRepository.GetTriggerById(trigger.JobId, trigger.Id) as RecurringTrigger;

if (fromDb == null)
{
Logger.Warn($"Unable to update RecurringTrigger with id '{trigger.Id}' (JobId '{trigger.JobId}'): Trigger not found!");
return;
}

this.jobbrRepository.SaveUpdateTrigger(trigger.JobId, triggerEntity, out var hadChanges);

if (hadChanges)
{
this.messengerHub.PublishAsync(new TriggerUpdatedMessage(this, new TriggerKey { JobId = trigger.JobId, TriggerId = trigger.Id }));
}
}

internal void Update(ScheduledTriggerModel trigger)
{
var triggerEntity = this.mapper.Map<ScheduledTrigger>(trigger);

// ReSharper disable once UsePatternMatching
var fromDb = this.jobbrRepository.GetTriggerById(trigger.JobId, trigger.Id) as ScheduledTrigger;

if (fromDb == null)
{
Logger.Warn($"Unable to update ScheduledTrigger with id '{trigger.Id}' (JobId '{trigger.JobId}'): Trigger not found!");
return;
}

this.jobbrRepository.SaveUpdateTrigger(trigger.JobId, triggerEntity, out var hadChanges);

if (hadChanges)
{
this.messengerHub.PublishAsync(new TriggerUpdatedMessage(this, new TriggerKey { JobId = trigger.JobId, TriggerId = trigger.Id }));
}
}

internal void Update(long jobId, long triggerId, DateTime startDateTimeUtc)
{
var trigger = this.jobbrRepository.GetTriggerById(jobId, triggerId);

// ReSharper disable once UsePatternMatching
var recurringTrigger = trigger as ScheduledTrigger;

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

recurringTrigger.StartDateTimeUtc = startDateTimeUtc;

bool hadChanges;
this.jobbrRepository.SaveUpdateTrigger(jobId, trigger, out hadChanges);
this.jobbrRepository.SaveUpdateTrigger(jobId, trigger, out var hadChanges);

if (hadChanges)
{
Expand Down
4 changes: 2 additions & 2 deletions source/Jobbr.Server/Jobbr.Server.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@
<Reference Include="Jobbr.ComponentModel.JobStorage, Version=1.2.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Jobbr.ComponentModel.JobStorage.1.2.0\lib\net462\Jobbr.ComponentModel.JobStorage.dll</HintPath>
</Reference>
<Reference Include="Jobbr.ComponentModel.Management, Version=1.2.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Jobbr.ComponentModel.Management.1.2.0\lib\net462\Jobbr.ComponentModel.Management.dll</HintPath>
<Reference Include="Jobbr.ComponentModel.Management, Version=1.3.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Jobbr.ComponentModel.Management.1.3.0\lib\net462\Jobbr.ComponentModel.Management.dll</HintPath>
</Reference>
<Reference Include="Jobbr.ComponentModel.Registration, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Jobbr.ComponentModel.Registration.1.0.1\lib\net462\Jobbr.ComponentModel.Registration.dll</HintPath>
Expand Down
73 changes: 69 additions & 4 deletions source/Jobbr.Server/Storage/JobbrRepository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,8 @@ public JobTriggerBase SaveUpdateTrigger(long jobId, JobTriggerBase trigger, out

if (hadChanges)
{
trigger.CreatedDateTimeUtc = triggerFromDb.CreatedDateTimeUtc;

if (trigger is InstantTrigger)
{
this.storageProvider.Update(jobId, trigger as InstantTrigger);
Expand Down Expand Up @@ -289,25 +291,88 @@ public IEnumerable<JobRun> GetJobRunsByStateRange(JobRunStates minState, JobRunS

private bool ApplyOtherChanges(RecurringTrigger fromDb, RecurringTrigger updatedOne)
{
bool hadChanges = false;

if (!string.Equals(fromDb.Definition, updatedOne.Definition, StringComparison.OrdinalIgnoreCase))
{
fromDb.Definition = updatedOne.Definition;
return true;
hadChanges = true;
}

return false;
if (fromDb.NoParallelExecution != updatedOne.NoParallelExecution)
{
fromDb.NoParallelExecution = updatedOne.NoParallelExecution;
hadChanges = true;
}

if (fromDb.StartDateTimeUtc != updatedOne.StartDateTimeUtc)
{
fromDb.StartDateTimeUtc = updatedOne.StartDateTimeUtc;
hadChanges = true;
}

if (fromDb.EndDateTimeUtc != updatedOne.EndDateTimeUtc)
{
fromDb.EndDateTimeUtc = updatedOne.EndDateTimeUtc;
hadChanges = true;
}

if (this.ApplyBaseChanges(fromDb, updatedOne))
{
hadChanges = true;
}

return hadChanges;
}

private bool ApplyOtherChanges(ScheduledTrigger fromDb, ScheduledTrigger updatedOne)
{
bool hadChanges = false;

if (fromDb.StartDateTimeUtc != updatedOne.StartDateTimeUtc)
{
fromDb.StartDateTimeUtc = updatedOne.StartDateTimeUtc;

return true;
hadChanges = true;
}

return false;
if (this.ApplyBaseChanges(fromDb, updatedOne))
{
hadChanges = true;
}

return hadChanges;
}

private bool ApplyBaseChanges(JobTriggerBase fromDb, JobTriggerBase updatedOne)
{
bool hadChanges = false;

if (string.Equals(fromDb.Comment, updatedOne.Comment, StringComparison.Ordinal) == false)
{
fromDb.Comment = updatedOne.Comment;
hadChanges = true;
}

if (string.Equals(fromDb.UserId, updatedOne.UserId, StringComparison.Ordinal) == false)
{
fromDb.UserId = updatedOne.UserId;
hadChanges = true;
}

if (string.Equals(fromDb.UserDisplayName, updatedOne.UserDisplayName, StringComparison.Ordinal) == false)
{
fromDb.UserDisplayName = updatedOne.UserDisplayName;
hadChanges = true;
}

if (string.Equals(fromDb.Parameters, updatedOne.Parameters, StringComparison.Ordinal) == false)
{
fromDb.Parameters = updatedOne.Parameters;
hadChanges = true;
}

return hadChanges;
}

private bool ApplyOtherChanges(InstantTrigger fromDb, InstantTrigger updatedOne)
Expand Down
2 changes: 1 addition & 1 deletion source/Jobbr.Server/packages.config
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<package id="Jobbr.ComponentModel.ArtefactStorage" version="1.0.1" targetFramework="net462" />
<package id="Jobbr.ComponentModel.Execution" version="1.0.1" targetFramework="net462" />
<package id="Jobbr.ComponentModel.JobStorage" version="1.2.0" targetFramework="net462" />
<package id="Jobbr.ComponentModel.Management" version="1.2.0" targetFramework="net462" />
<package id="Jobbr.ComponentModel.Management" version="1.3.0" targetFramework="net462" />
<package id="Jobbr.ComponentModel.Registration" version="1.0.1" targetFramework="net462" />
<package id="LibLog" version="3.1.0" targetFramework="net462" developmentDependency="true" />
<package id="Microsoft.AnalyzerPowerPack" version="1.1.0" targetFramework="net462" />
Expand Down

0 comments on commit 88c1e9b

Please sign in to comment.