public async Task <IActionResult> NewTarget(NewTargetBindingModel model) { try { if (ModelState.IsValid) { await _targetService.AddTargetAsync(model, User); _logger.LogInformation("{userName} added new target {targetName}.", User.Identity.Name, model.Name); return(RedirectToAction("Index")); } return(View()); } catch (Exception ex) { _logger.LogError(ex, "Exception occurred in Dashboard-NewTarget POST action."); return(RedirectToAction("Exception", "Error")); } }
/// <summary> /// Inserts a new Target record to the database and creates a new recurring job. /// </summary> public async Task AddTargetAsync(NewTargetBindingModel model, ClaimsPrincipal user) { var jobId = Guid.NewGuid().ToString(); var userId = _userService.GetUserId(user); var targetId = Guid.NewGuid().ToString(); var targetAppDto = new TargetDto { Id = targetId, MonitoringInterval = model.MonitoringInterval, Name = model.Name, Url = model.Url, UserId = userId, JobId = jobId }; _jobService.SaveHealtCheckJob(model.Url, jobId, model.MonitoringInterval, targetId, userId, user.Identity.Name); _logger.LogInformation("New job created by {userName}. JobId: {jobId}", user.Identity.Name, jobId); await _targetRepository.InsertAsync(targetAppDto); }