From 45f8dd2aadc52e71c8516447049b88fd705d3efe Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Fri, 16 Dec 2022 15:59:26 +0100 Subject: [PATCH] 16-12-2022 --- ECM.JobRunner.Web/Data/DashboardResponse.cs | 7 + ECM.JobRunner.Web/Data/DashboardService.cs | 26 +--- ECM.JobRunner.Web/Data/HelperService.cs | 40 ++++++ .../Data/ImportProfileService.cs | 93 +++++++++++++ ECM.JobRunner.Web/Data/ImportService.cs | 67 --------- ECM.JobRunner.Web/Data/JobService.cs | 131 ------------------ ECM.JobRunner.Web/Data/LoggingService.cs | 3 +- ECM.JobRunner.Web/Data/WcfService.cs | 71 ++++++++-- ECM.JobRunner.Web/Pages/History.razor | 2 +- .../Pages/ImportProfile/EditProfile.razor | 2 +- .../Pages/ImportProfile/NewProfile.razor | 2 +- .../Pages/ImportProfile/ProfileForm.razor | 9 +- .../Pages/ImportProfile/ProfileIndex.razor | 6 +- .../Pages/ImportProfile/ShowProfile.razor | 12 +- .../Pages/ImportStep/EditStep.razor | 7 +- .../Pages/ImportStep/NewStep.razor | 11 +- .../Pages/ImportStep/ShowStep.razor | 6 +- .../Pages/ImportStep/StepForm.razor | 17 ++- .../Pages/ImportStep/StepIndex.razor | 2 +- ECM.JobRunner.Web/Pages/Index.razor | 1 - ECM.JobRunner.Web/Pages/Profiles.razor | 4 +- ECM.JobRunner.Web/Pages/Status.razor | 60 ++++++++ ECM.JobRunner.Web/Pages/_Layout.cshtml | 2 + ECM.JobRunner.Web/Program.cs | 5 +- ECM.JobRunner.Web/Shared/MainLayout.razor | 24 +++- ECM.JobRunner.Web/Shared/NavMenu.razor | 16 ++- ECM.JobRunner.Web/appsettings.json | 3 +- ECM.JobRunner.Web/wwwroot/js/echarts.min.js | 45 ++++++ .../Scheduler/Jobs/BaseJob.vb | 2 + ECM.JobRunner.Windows/State.vb | 13 +- ECM.JobRunner.Windows/WCF/JobRunner.vb | 14 +- ECM.JobRunner.Windows/WCF/Methods/RunJob.vb | 4 +- 32 files changed, 431 insertions(+), 276 deletions(-) create mode 100644 ECM.JobRunner.Web/Data/HelperService.cs create mode 100644 ECM.JobRunner.Web/Data/ImportProfileService.cs delete mode 100644 ECM.JobRunner.Web/Data/ImportService.cs delete mode 100644 ECM.JobRunner.Web/Data/JobService.cs create mode 100644 ECM.JobRunner.Web/wwwroot/js/echarts.min.js diff --git a/ECM.JobRunner.Web/Data/DashboardResponse.cs b/ECM.JobRunner.Web/Data/DashboardResponse.cs index 72c2c7e..2c4fad7 100644 --- a/ECM.JobRunner.Web/Data/DashboardResponse.cs +++ b/ECM.JobRunner.Web/Data/DashboardResponse.cs @@ -7,5 +7,12 @@ namespace ECM.JobRunner.Web.Data public DateTime heartbeat = DateTime.MinValue; public List jobHistory = new(); public List jobStatus = new(); + + public List GetHistoryForLastMinutes(int pMinutes) + { + return jobHistory. + Where(h => (DateTime.Now - h.CreatedAt) < new TimeSpan(0, pMinutes, 0)). + ToList(); + } } } diff --git a/ECM.JobRunner.Web/Data/DashboardService.cs b/ECM.JobRunner.Web/Data/DashboardService.cs index 714c4bf..12e45be 100644 --- a/ECM.JobRunner.Web/Data/DashboardService.cs +++ b/ECM.JobRunner.Web/Data/DashboardService.cs @@ -9,53 +9,39 @@ namespace ECM.JobRunner.Web.Data private readonly Common.JobRunnerReference.IEDMIServiceChannel channel; private Logger logger; - private System.Timers.Timer pollingTimer = new(); + private readonly System.Timers.Timer pollingTimer = new(); - public event EventHandler DataUpdated; + public event EventHandler? DataUpdated; public DashboardService(LoggingService Logging, WcfService Wcf) { logger = Logging.LogConfig.GetLogger(); channel = Wcf.Channel; - pollingTimer.Elapsed += PollingTimer_Elapsed; - pollingTimer.Interval = 1000; - pollingTimer.Start(); } protected virtual void OnDataUpdated(DashboardResponse e) { - EventHandler handler = DataUpdated; - if (handler != null) - { - handler(this, e); - } + DataUpdated?.Invoke(this, e); } - private async void PollingTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) + private async void PollingTimer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e) { OnDataUpdated(await GetData()); } public async Task GetData() { - DateTime heartbeat = await GetHeartbeat(); List jobHistory = await GetHistoryItems(); List jobStatus = await GetStatusItems(); return new DashboardResponse() { - heartbeat = heartbeat, - jobHistory = jobHistory.OrderByDescending(e => e.CreatedAt).Take(10).ToList(), - jobStatus = jobStatus.OrderByDescending(e => e.StartTime).Take(10).ToList() + jobHistory = jobHistory.OrderByDescending(e => e.CreatedAt).ToList(), + jobStatus = jobStatus.OrderByDescending(e => e.StartTime).ToList() }; } - private async Task GetHeartbeat() - { - return await channel.GetHeartbeatAsync(); - } - private async Task> GetHistoryItems() { try diff --git a/ECM.JobRunner.Web/Data/HelperService.cs b/ECM.JobRunner.Web/Data/HelperService.cs new file mode 100644 index 0000000..bcde913 --- /dev/null +++ b/ECM.JobRunner.Web/Data/HelperService.cs @@ -0,0 +1,40 @@ +using DigitalData.Modules.Logging; +using ECM.JobRunner.Common.JobRunnerReference; + +namespace ECM.JobRunner.Web.Data +{ + public class HelperService + { + private readonly Logger logger; + private readonly IEDMIServiceChannel channel; + + public HelperService(LoggingService Logging, WcfService Wcf) + { + logger = Logging.LogConfig.GetLogger(); + channel = Wcf.Channel; + } + + public DateTime GetNextExecutionTime(string pCronExpression) + { + Quartz.CronExpression expression = new(pCronExpression); + + if (expression != null) + { + var next = expression.GetNextValidTimeAfter(DateTimeOffset.Now); + + if (next != null) + { + return ((DateTimeOffset)next).DateTime; + } + else + { + return DateTime.MinValue; + } + } + else + { + return DateTime.MinValue; + } + } + } +} diff --git a/ECM.JobRunner.Web/Data/ImportProfileService.cs b/ECM.JobRunner.Web/Data/ImportProfileService.cs new file mode 100644 index 0000000..1c38bf1 --- /dev/null +++ b/ECM.JobRunner.Web/Data/ImportProfileService.cs @@ -0,0 +1,93 @@ +using DigitalData.Modules.Logging; +using ECM.JobRunner.Common.JobRunnerReference; + + +namespace ECM.JobRunner.Web.Data +{ + public class ImportProfileService + { + private readonly Logger logger; + private readonly IEDMIServiceChannel channel; + + public ImportProfileService(LoggingService Logging, WcfService Wcf) + { + logger = Logging.LogConfig.GetLogger(); + channel = Wcf.Channel; + } + + public async Task> GetProfiles() + { + try + { + var resp = await channel.GetJobConfigAsync(); + + if (resp == null) return new(); + if (resp.OK == false) return new(); + + var profiles = resp.ProfileDefinitions.ImportProfiles.ToList(); + return profiles; + } + catch (Exception ex) + { + logger.Error(ex); + return new(); + } + } + + public async Task GetProfile(int pProfileId) + { + try + { + var resp = await channel.GetJobConfigAsync(); + + if (resp == null) return null; + if (resp.OK == false) return null; + + var jobs = resp.JobDefinitions.ToList(); + var profiles = resp.ProfileDefinitions.ImportProfiles.ToList(); + + return profiles. + Where(p => p.Id == pProfileId). + SingleOrDefault(); + } + catch (Exception ex) + { + logger.Error(ex); + return null; + } + + } + + public async Task CreateProfile(ImportProfile profile) => + await DoUpdateProfile(profile, UpdateProfileUpdateProfileRequest.UpdateProfileAction.Create); + + public async Task UpdateProfile(ImportProfile profile) => + await DoUpdateProfile(profile, UpdateProfileUpdateProfileRequest.UpdateProfileAction.Update); + + public async Task DeleteProfile(ImportProfile profile) => + await DoUpdateProfile(profile, UpdateProfileUpdateProfileRequest.UpdateProfileAction.Delete); + + private async Task DoUpdateProfile(ImportProfile profile, UpdateProfileUpdateProfileRequest.UpdateProfileAction action) + { + try + { + var req = new UpdateProfileUpdateProfileRequest() + { + ImportProfile = profile, + Action = action + }; + var resp = await channel.UpdateProfileAsync(req); + + if (resp == null) return false; + if (resp.OK == false) return false; + return true; + } + catch (Exception ex) + { + logger.Error(ex); + return false; + } + + } + } +} diff --git a/ECM.JobRunner.Web/Data/ImportService.cs b/ECM.JobRunner.Web/Data/ImportService.cs deleted file mode 100644 index 4751993..0000000 --- a/ECM.JobRunner.Web/Data/ImportService.cs +++ /dev/null @@ -1,67 +0,0 @@ -using DigitalData.Modules.Logging; -using ECM.JobRunner.Common.JobRunnerReference; - - -namespace ECM.JobRunner.Web.Data -{ - public class ImportService - { - private readonly Logger logger; - private readonly IEDMIServiceChannel channel; - - public ImportService(LoggingService Logging, WcfService Wcf) - { - logger = Logging.LogConfig.GetLogger(); - channel = Wcf.Channel; - } - - public async Task> GetProfiles() - { - var resp = await channel.GetJobConfigAsync(); - - if (resp == null) return new(); - if (resp.OK == false) return new(); - - var profiles = resp.ProfileDefinitions.ImportProfiles.ToList(); - return profiles; - } - - public async Task GetProfile(int pProfileId) - { - var resp = await channel.GetJobConfigAsync(); - - if (resp == null) return new(); - if (resp.OK == false) return new(); - - var jobs = resp.JobDefinitions.ToList(); - var profiles = resp.ProfileDefinitions.ImportProfiles.ToList(); - - return profiles. - Where(p => p.Id == pProfileId). - SingleOrDefault(); - } - - public async Task CreateProfile(ImportProfile profile) => - await DoUpdateProfile(profile, UpdateProfileUpdateProfileRequest.UpdateProfileAction.Create); - - public async Task UpdateProfile(ImportProfile profile) => - await DoUpdateProfile(profile, UpdateProfileUpdateProfileRequest.UpdateProfileAction.Update); - - public async Task DeleteProfile(ImportProfile profile) => - await DoUpdateProfile(profile, UpdateProfileUpdateProfileRequest.UpdateProfileAction.Delete); - - private async Task DoUpdateProfile(ImportProfile profile, UpdateProfileUpdateProfileRequest.UpdateProfileAction action) - { - var req = new UpdateProfileUpdateProfileRequest() - { - ImportProfile = profile, - Action = action - }; - var resp = await channel.UpdateProfileAsync(req); - - if (resp == null) return false; - if (resp.OK == false) return false; - return true; - } - } -} diff --git a/ECM.JobRunner.Web/Data/JobService.cs b/ECM.JobRunner.Web/Data/JobService.cs deleted file mode 100644 index f72fc96..0000000 --- a/ECM.JobRunner.Web/Data/JobService.cs +++ /dev/null @@ -1,131 +0,0 @@ -using DigitalData.Modules.Logging; -using ECM.JobRunner.Common.JobRunnerReference; - -namespace ECM.JobRunner.Web.Data -{ - public class JobService - { - private readonly Logger logger; - private readonly IEDMIServiceChannel channel; - - public JobService(LoggingService Logging, WcfService Wcf) - { - logger = Logging.LogConfig.GetLogger(); - channel = Wcf.Channel; - } - - public async Task> GetJobs() - { - var resp = await channel.GetJobConfigAsync(); - - if (resp == null) return new(); - if (resp.OK == false) return new(); - - return resp.JobDefinitions.ToList(); - } - - public async Task> GetObjectTypes() - { - var resp = await channel.GetJobConfigAsync(); - - if (resp == null) return new(); - if (resp.OK == false) return new(); - - return resp.WindreamObjectTypes.ToList(); - } - - public async Task> GetJobTypes() - { - var resp = await channel.GetJobConfigAsync(); - - if (resp == null) return new(); - if (resp.OK == false) return new(); - - return resp.JobTypes.ToList(); - } - - public async Task GetJob(int pJobId) - { - var resp = await channel.GetJobConfigAsync(); - - if (resp == null) return null; - if (resp.OK == false) return null; - - return resp.JobDefinitions. - Where(j => j.Id == pJobId). - FirstOrDefault(); - } - - public async Task UpdateJob(JobDefinition job) - { - var resp = await channel.UpdateJobAsync(new UpdateJobUpdateJobRequest { - Job = job, - Action = UpdateJobUpdateJobRequest.UpdateJobAction.Update - }); - - if (resp == null) return false; - if (resp.OK == false) return false; - return true; - - } - - public async Task CreateJob(JobDefinition job) - { - var resp = await channel.UpdateJobAsync(new UpdateJobUpdateJobRequest - { - Job = job, - Action = UpdateJobUpdateJobRequest.UpdateJobAction.Create - }); - - if (resp != null && resp.OK) - { - return true; - } - else - { - return false; - } - } - - public async Task DeleteJob(JobDefinition job) - { - var resp = await channel.UpdateJobAsync(new UpdateJobUpdateJobRequest - { - Job = job, - Action = UpdateJobUpdateJobRequest.UpdateJobAction.Delete - }); - - if (resp != null && resp.OK) - { - return true; - } - else - { - return false; - } - } - - public DateTime GetNextExecutionTime(string pCronExpression) - { - Quartz.CronExpression expression = new(pCronExpression); - - if (expression != null) - { - var next = expression.GetNextValidTimeAfter(DateTimeOffset.Now); - - if (next != null) - { - return ((DateTimeOffset)next).DateTime; - } - else - { - return DateTime.MinValue; - } - } - else - { - return DateTime.MinValue; - } - } - } -} diff --git a/ECM.JobRunner.Web/Data/LoggingService.cs b/ECM.JobRunner.Web/Data/LoggingService.cs index ecc3b42..a0f36f5 100644 --- a/ECM.JobRunner.Web/Data/LoggingService.cs +++ b/ECM.JobRunner.Web/Data/LoggingService.cs @@ -10,7 +10,8 @@ namespace ECM.JobRunner.Web.Data { LogConfig = new LogConfig(LogConfig.PathType.CustomPath, Config["Config:LogPath"], null, "Digital Data", "ECM.JobRunner.Web") { - Debug = bool.Parse(Config["Config:LogDebug"]) + Debug = bool.Parse(Config["Config:LogDebug"]), + EnableJsonLog = bool.Parse(Config["Config:LogJson"]) }; } } diff --git a/ECM.JobRunner.Web/Data/WcfService.cs b/ECM.JobRunner.Web/Data/WcfService.cs index fcd2383..e5221ca 100644 --- a/ECM.JobRunner.Web/Data/WcfService.cs +++ b/ECM.JobRunner.Web/Data/WcfService.cs @@ -1,22 +1,77 @@ using DigitalData.Modules.Messaging.WCF; -using System.Net; +using ECM.JobRunner.Common.JobRunnerReference; +using System.Timers; namespace ECM.JobRunner.Web.Data { public class WcfService { - private readonly Channel channelManager; - private ServerAddress address; + private readonly Channel _channelManager; + private ServerAddress _address; + private bool _connected = false; + private System.Timers.Timer heartbeatTimer = new(); - public readonly Common.JobRunnerReference.IEDMIServiceChannel Channel; + private IEDMIServiceChannel _channel; + public IEDMIServiceChannel Channel { get { return _channel; } } + + public event EventHandler? ConnectedChanged; + + public bool Connected { get { return _connected; } } public WcfService(LoggingService Logging) { - address.Host = "172.24.12.39"; - address.Port = 9001; + _address.Host = "172.24.12.39"; + _address.Port = 9001; + + _channelManager = new Channel(Logging.LogConfig, _address, "JobRunner"); + _channel = _channelManager.GetChannel(); + _connected = true; + + heartbeatTimer.Elapsed += HeartbeatTimer_Elapsed; + heartbeatTimer.Interval = 1000; + heartbeatTimer.Start(); + } + + private void CallConnectedChanged(bool pConnected) + { + if (ConnectedChanged != null && pConnected != _connected) + { + _connected = pConnected; + ConnectedChanged(this, pConnected); + } + } + + private async void HeartbeatTimer_Elapsed(object? sender, ElapsedEventArgs e) + { + try + { + await _channel.GetHeartbeatAsync(); + CallConnectedChanged(true); + } + catch (Exception) + { + CallConnectedChanged(false); + } + } + + public async Task> GetObjectTypes() + { + var resp = await _channel.GetJobConfigAsync(); + + if (resp == null) return new(); + if (resp.OK == false) return new(); + + return resp.WindreamObjectTypes.ToList(); + } + + public async Task> GetJobTypes() + { + var resp = await _channel.GetJobConfigAsync(); + + if (resp == null) return new(); + if (resp.OK == false) return new(); - channelManager = new Channel(Logging.LogConfig, address, "JobRunner"); - Channel = channelManager.GetChannel(); + return resp.JobTypes.ToList(); } } } diff --git a/ECM.JobRunner.Web/Pages/History.razor b/ECM.JobRunner.Web/Pages/History.razor index 6b66631..633290e 100644 --- a/ECM.JobRunner.Web/Pages/History.razor +++ b/ECM.JobRunner.Web/Pages/History.razor @@ -25,7 +25,7 @@ else {
  • -
    +
    diff --git a/ECM.JobRunner.Web/Pages/ImportProfile/EditProfile.razor b/ECM.JobRunner.Web/Pages/ImportProfile/EditProfile.razor index 47a2975..dff9fce 100644 --- a/ECM.JobRunner.Web/Pages/ImportProfile/EditProfile.razor +++ b/ECM.JobRunner.Web/Pages/ImportProfile/EditProfile.razor @@ -3,7 +3,7 @@ @using ECM.JobRunner.Web.Data; @using ECM.JobRunner.Web.Pages.ImportStep; @inject NavigationManager Navigation; -@inject ImportService Profile; +@inject ImportProfileService Profile; Job bearbeiten diff --git a/ECM.JobRunner.Web/Pages/ImportProfile/NewProfile.razor b/ECM.JobRunner.Web/Pages/ImportProfile/NewProfile.razor index 682e1dc..7f9784b 100644 --- a/ECM.JobRunner.Web/Pages/ImportProfile/NewProfile.razor +++ b/ECM.JobRunner.Web/Pages/ImportProfile/NewProfile.razor @@ -2,7 +2,7 @@ @using ECM.JobRunner.Common.JobRunnerReference; @using ECM.JobRunner.Web.Data; @inject NavigationManager Navigation; -@inject ImportService Import; +@inject ImportProfileService Import; Job erstellen diff --git a/ECM.JobRunner.Web/Pages/ImportProfile/ProfileForm.razor b/ECM.JobRunner.Web/Pages/ImportProfile/ProfileForm.razor index 303bde9..1afbaec 100644 --- a/ECM.JobRunner.Web/Pages/ImportProfile/ProfileForm.razor +++ b/ECM.JobRunner.Web/Pages/ImportProfile/ProfileForm.razor @@ -1,7 +1,8 @@ @using ECM.JobRunner.Common.JobRunnerReference; @using ECM.JobRunner.Web.Data; -@inject ImportService Import; -@inject JobService Jobs; +@inject ImportProfileService Import; +@inject HelperService Jobs; +@inject WcfService Service; @if (profile == null) { @@ -196,8 +197,8 @@ else protected override async Task OnInitializedAsync() { - jobTypes = await Jobs.GetJobTypes(); - objectTypes = await Jobs.GetObjectTypes(); + jobTypes = await Service.GetJobTypes(); + objectTypes = await Service.GetObjectTypes(); if (ProfileId == Constants.ENTITY_ID_NEW) { diff --git a/ECM.JobRunner.Web/Pages/ImportProfile/ProfileIndex.razor b/ECM.JobRunner.Web/Pages/ImportProfile/ProfileIndex.razor index 40c5046..20ecb7c 100644 --- a/ECM.JobRunner.Web/Pages/ImportProfile/ProfileIndex.razor +++ b/ECM.JobRunner.Web/Pages/ImportProfile/ProfileIndex.razor @@ -1,8 +1,8 @@ @page "/profiles/import" @using ECM.JobRunner.Common.JobRunnerReference; @using ECM.JobRunner.Web.Data; -@inject JobService Jobs -@inject ImportService Import; +@inject HelperService Jobs +@inject ImportProfileService Import; Import Profiles @@ -34,7 +34,7 @@ else @foreach (var profile in filteredProfiles) { -
    +
    @if (profile.Active) diff --git a/ECM.JobRunner.Web/Pages/ImportProfile/ShowProfile.razor b/ECM.JobRunner.Web/Pages/ImportProfile/ShowProfile.razor index 3e079a0..c8131b8 100644 --- a/ECM.JobRunner.Web/Pages/ImportProfile/ShowProfile.razor +++ b/ECM.JobRunner.Web/Pages/ImportProfile/ShowProfile.razor @@ -4,8 +4,8 @@ @inject NavigationManager Navigation; @inject IJSRuntime JsRuntime; -@inject JobService Jobs; -@inject ImportService Import; +@inject HelperService Helper; +@inject ImportProfileService Import; Profile @@ -39,7 +39,7 @@ else
    • -
      +
      @@ -50,7 +50,7 @@ else
    • -
      +
      @@ -61,7 +61,7 @@ else
    • -
      +
      @@ -111,7 +111,7 @@ else if (profile != null) { - nextExecution = Jobs.GetNextExecutionTime(profile.Job.CronSchedule); + nextExecution = Helper.GetNextExecutionTime(profile.Job.CronSchedule); StateHasChanged(); } } diff --git a/ECM.JobRunner.Web/Pages/ImportStep/EditStep.razor b/ECM.JobRunner.Web/Pages/ImportStep/EditStep.razor index a41faad..01586cf 100644 --- a/ECM.JobRunner.Web/Pages/ImportStep/EditStep.razor +++ b/ECM.JobRunner.Web/Pages/ImportStep/EditStep.razor @@ -2,7 +2,7 @@ @using ECM.JobRunner.Common.JobRunnerReference; @using ECM.JobRunner.Web.Data; @inject NavigationManager Navigation; -@inject ImportService Profile; +@inject ImportProfileService Profile; Schritt bearbeiten @@ -21,9 +21,12 @@ private async void OnFormSubmit(EditContext ctx) { - ImportProfile profile = await Profile.GetProfile(ProfileId); + ImportProfile? profile = await Profile.GetProfile(ProfileId); ImportProfileStep step = (ImportProfileStep)ctx.Model; + if (profile == null) + return; + // TODO: This is ugly and manual and needs to be abstracted. var index = profile.Steps.ToList().FindIndex(s => s.Id == StepId); profile.Steps[index] = step; diff --git a/ECM.JobRunner.Web/Pages/ImportStep/NewStep.razor b/ECM.JobRunner.Web/Pages/ImportStep/NewStep.razor index 95be4a5..b6717aa 100644 --- a/ECM.JobRunner.Web/Pages/ImportStep/NewStep.razor +++ b/ECM.JobRunner.Web/Pages/ImportStep/NewStep.razor @@ -2,11 +2,11 @@ @using ECM.JobRunner.Common.JobRunnerReference; @using ECM.JobRunner.Web.Data; @inject NavigationManager Navigation; -@inject ImportService Profile; +@inject ImportProfileService Profile; -Schritt bearbeiten +Neuen Schritt erstellen -

      Schritt bearbeiten

      +

      Neuen Schritt erstellen

      @@ -21,9 +21,12 @@ private async void OnFormSubmit(EditContext ctx) { - ImportProfile profile = await Profile.GetProfile(ProfileId); + ImportProfile? profile = await Profile.GetProfile(ProfileId); ImportProfileStep step = (ImportProfileStep)ctx.Model; + if (profile == null) + return; + // TODO: This is ugly and manual and needs to be abstracted. var steps = profile.Steps.ToList(); steps.Add(step); diff --git a/ECM.JobRunner.Web/Pages/ImportStep/ShowStep.razor b/ECM.JobRunner.Web/Pages/ImportStep/ShowStep.razor index c2bdcb0..b8810d8 100644 --- a/ECM.JobRunner.Web/Pages/ImportStep/ShowStep.razor +++ b/ECM.JobRunner.Web/Pages/ImportStep/ShowStep.razor @@ -4,8 +4,8 @@ @inject NavigationManager Navigation; @inject IJSRuntime JsRuntime; -@inject JobService Jobs; -@inject ImportService Import; +@inject HelperService Jobs; +@inject ImportProfileService Import; Profilschritt @@ -143,8 +143,6 @@ else private ImportProfile? profile; private ImportProfileStep? step; - private DateTime nextExecution; - protected async override void OnInitialized() { profile = await Import.GetProfile(ProfileId); diff --git a/ECM.JobRunner.Web/Pages/ImportStep/StepForm.razor b/ECM.JobRunner.Web/Pages/ImportStep/StepForm.razor index 7d07850..96765ce 100644 --- a/ECM.JobRunner.Web/Pages/ImportStep/StepForm.razor +++ b/ECM.JobRunner.Web/Pages/ImportStep/StepForm.razor @@ -1,7 +1,7 @@ @using ECM.JobRunner.Common.JobRunnerReference; @using ECM.JobRunner.Web.Data; -@inject ImportService Import; -@inject JobService Jobs; +@inject ImportProfileService Import; +@inject HelperService Jobs; @if (step == null || profile == null) { @@ -41,7 +41,7 @@ else }
      Der Windream Index, in den das Ergebnis des Schritte geschrieben wird
      -
      +