@namespace Oqtane.Modules.Admin.Jobs @inherits ModuleBase @inject NavigationManager NavigationManager @inject IJobService JobService @inject IStringLocalizer Localizer @inject IStringLocalizer SharedLocalizer

@SharedLocalizer["Cancel"]

@code { private ElementReference form; private bool validated = false; 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 DateTime? _startDate = null; private DateTime? _startTime = null; private DateTime? _endDate = null; private DateTime? _endTime = null; private string _retentionHistory = string.Empty; private DateTime? _nextDate = null; private DateTime? _nextTime = null; private string createdby; private DateTime createdon; private string modifiedby; private DateTime modifiedon; 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 = Utilities.UtcAsLocalDate(job.StartDate); _startTime = Utilities.UtcAsLocalDateTime(job.StartDate); _endDate = Utilities.UtcAsLocalDate(job.EndDate); _endTime = Utilities.UtcAsLocalDateTime(job.EndDate); _retentionHistory = job.RetentionHistory.ToString(); _nextDate = Utilities.UtcAsLocalDate(job.NextExecution); _nextTime = Utilities.UtcAsLocalDateTime(job.NextExecution); createdby = job.CreatedBy; createdon = job.CreatedOn; modifiedby = job.ModifiedBy; modifiedon = job.ModifiedOn; } } 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 (!Utilities.ValidateEffectiveExpiryDates(_startDate, _endDate)) { AddModuleMessage(Localizer["Message.StartEndDateError"], MessageType.Warning); return; } validated = true; var interop = new Interop(JSRuntime); if (await interop.FormValid(form)) { var job = await JobService.GetJobAsync(_jobId); job.Name = _name; job.JobType = _jobType; job.IsEnabled = Boolean.Parse(_isEnabled); job.Frequency = _frequency; if (job.Frequency == "O") // once { job.Interval = 1; } else { job.Interval = int.Parse(_interval); } job.StartDate = Utilities.LocalDateAndTimeAsUtc(_startDate, _startTime); job.EndDate = Utilities.LocalDateAndTimeAsUtc(_endDate, _endTime); job.RetentionHistory = int.Parse(_retentionHistory); job.NextExecution = Utilities.LocalDateAndTimeAsUtc(_nextDate, _nextTime); 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); } } }