@namespace Oqtane.Modules.Admin.Jobs @inherits ModuleBase @inject NavigationManager NavigationManager @inject IJobService JobService @inject IStringLocalizer Localizer
@Localizer["Cancel"] @code { private int _jobId; private string _name = string.Empty; private string _jobType = string.Empty; private string _isEnabled = "True"; private string _interval = string.Empty; private string _frequency = string.Empty; private string _startDate = string.Empty; private string _endDate = string.Empty; private string _retentionHistory = string.Empty; private string _nextExecution = string.Empty; public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Host; protected override async Task OnInitializedAsync() { try { _jobId = Int32.Parse(PageState.QueryString["id"]); Job job = await JobService.GetJobAsync(_jobId); if (job != null) { _name = job.Name; _jobType = job.JobType; _isEnabled = job.IsEnabled.ToString(); _interval = job.Interval.ToString(); _frequency = job.Frequency; _startDate = (job.StartDate != null) ? job.StartDate.ToString() : string.Empty; _endDate = (job.EndDate != null) ? job.EndDate.ToString() : string.Empty; _retentionHistory = job.RetentionHistory.ToString(); _nextExecution = job.NextExecution.ToString(); } } catch (Exception ex) { await logger.LogError(ex, "Error Loading Job {JobId} {Error}", _jobId, ex.Message); AddModuleMessage(Localizer["Error.Job.Load"], MessageType.Error); } } private async Task SaveJob() { if (_name != string.Empty && !string.IsNullOrEmpty(_jobType) && _frequency != string.Empty && _interval != string.Empty && _retentionHistory != string.Empty) { var job = await JobService.GetJobAsync(_jobId); job.Name = _name; job.JobType = _jobType; job.IsEnabled = Boolean.Parse(_isEnabled); job.Frequency = _frequency; job.Interval = int.Parse(_interval); if (_startDate == string.Empty) { job.StartDate = null; } else { job.StartDate = DateTime.Parse(_startDate); } if (_endDate == string.Empty) { job.EndDate = null; } else { job.EndDate = DateTime.Parse(_endDate); } if (_nextExecution == string.Empty) { job.NextExecution = null; } else { job.NextExecution = DateTime.Parse(_nextExecution); } job.RetentionHistory = int.Parse(_retentionHistory); try { job = await JobService.UpdateJobAsync(job); await logger.LogInformation("Job Updated {Job}", job); NavigationManager.NavigateTo(NavigateUrl()); } catch (Exception ex) { await logger.LogError(ex, "Error Udate Job {Job} {Error}", job, ex.Message); AddModuleMessage(Localizer["Error.Job.Update"], MessageType.Error); } } else { AddModuleMessage(Localizer["Message.Required.JobInfo"], MessageType.Warning); } } }