@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 string _startTime = string.Empty; private DateTime? _endDate = null; private string _endTime = string.Empty; private string _retentionHistory = string.Empty; private DateTime? _nextDate = null; private string _nextTime = string.Empty; 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 = job.StartDate; if (job.StartDate != null && job.StartDate.Value.TimeOfDay.TotalSeconds != 0) { _startTime = job.StartDate.Value.ToString("HH:mm"); } _endDate = job.EndDate; if (job.EndDate != null && job.EndDate.Value.TimeOfDay.TotalSeconds != 0) { _endTime = job.EndDate.Value.ToString("HH:mm"); } _retentionHistory = job.RetentionHistory.ToString(); _nextDate = job.NextExecution; if (job.NextExecution != null && job.NextExecution.Value.TimeOfDay.TotalSeconds != 0) { _nextTime = job.NextExecution.Value.ToString("HH:mm"); } 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() { 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; job.Interval = int.Parse(_interval); job.StartDate = _startDate; if (job.StartDate != null) { job.StartDate = job.StartDate.Value.Date; if (!string.IsNullOrEmpty(_startTime)) { job.StartDate = DateTime.Parse(job.StartDate.Value.ToShortDateString() + " " + _startTime); } } job.EndDate = _endDate; if (job.EndDate != null) { job.EndDate = job.EndDate.Value.Date; if (!string.IsNullOrEmpty(_endTime)) { job.EndDate = DateTime.Parse(job.EndDate.Value.ToShortDateString() + " " + _endTime); } } job.RetentionHistory = int.Parse(_retentionHistory); job.NextExecution = _nextDate; if (job.NextExecution != null) { job.NextExecution = job.NextExecution.Value.Date; if (!string.IsNullOrEmpty(_nextTime)) { job.NextExecution = DateTime.Parse(job.NextExecution.Value.ToShortDateString() + " " + _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); } } }