public void InsertScheduleParameter() { ScheduleParameter beforeScheduleParameter = _scheduleService.InsertScheduleParameter("2826018c-69cc-4ead-946b-70bb5a47ab02", "test1", "value1"); Assert.IsNotNull(beforeScheduleParameter); ScheduleParameter failingScheduleParameter = _scheduleService.InsertScheduleParameter("99", "test2", "value2"); Assert.IsNull(failingScheduleParameter); }
public ActionResult Create(ScheduleParameter parameters) { var viewModel = MapFromClientParameters(parameters); var entity = viewModel.MapTo <Schedule>(); var savedEntity = MasterFileService.Add(entity); if (savedEntity.WarningInfo != null && !savedEntity.Confirm.GetValueOrDefault()) { return(Json(new { savedEntity.Id, entity.WarningInfo, Error = "ErrorWarning" }, JsonRequestBehavior.DenyGet)); } return(Json(new { savedEntity.Id }, JsonRequestBehavior.DenyGet)); }
public ScheduleParameter Insert(ScheduleParameter scheduleParameter) { try { _context.ScheduleParameters.Add(scheduleParameter); Save(); return(scheduleParameter); } catch (Exception ex) { _log.Error("Insert(): Unable to add new schedule parameter", ex); return(null); } }
public ScheduleParameter InsertScheduleParameter(String scheduleId, String name, String value) { Schedule schedule = _scheduleDataAccess.Get(scheduleId); if (schedule != null) { ScheduleParameter scheduleParameter = new ScheduleParameter(); scheduleParameter.Schedule = schedule; scheduleParameter.Name = name; scheduleParameter.Value = value; return(_scheduleParameterDataAccess.Insert(scheduleParameter)); } else { _log.Info("InsertScheduleParameter(" + scheduleId + "): Unable to find schedule"); return(null); } }
public ActionResult Update(ScheduleParameter parameters) { var viewModel = MapFromClientParameters(parameters); byte[] lastModified = null; if (ModelState.IsValid) { var entity = MasterFileService.GetById(viewModel.SharedViewModel.Id); var mappedEntity = viewModel.MapPropertiesToInstance(entity); lastModified = MasterFileService.Update(mappedEntity).LastModified; if (entity.WarningInfo != null && !entity.Confirm.GetValueOrDefault()) { return(Json(new { entity.Id, LastModified = lastModified, entity.WarningInfo, Error = "ErrorWarning" }, JsonRequestBehavior.DenyGet)); } return(Json(new { entity.Id, LastModified = lastModified }, JsonRequestBehavior.DenyGet)); } return(Json(new { Error = string.Empty, Data = new { LastModified = lastModified } }, JsonRequestBehavior.AllowGet)); }
public async Task <IActionResult> Put(string id, [FromBody] CreateScheduleViewModel request) { try { //validate the cron expression if (!string.IsNullOrWhiteSpace(request.CRONExpression)) { try { CronExpression expression = CronExpression.Parse(request.CRONExpression, CronFormat.Standard); } catch (Exception ex) { ModelState.AddModelError("Save", string.Concat("Invalid cron expression, ", ex.Message)); return(BadRequest(ModelState)); } } Guid entityId = new Guid(id); var existingSchedule = repository.GetOne(entityId); if (existingSchedule == null) { return(NotFound()); } existingSchedule.Name = request.Name; existingSchedule.AgentId = request.AgentId; existingSchedule.CRONExpression = request.CRONExpression; existingSchedule.LastExecution = request.LastExecution; existingSchedule.NextExecution = request.NextExecution; existingSchedule.IsDisabled = request.IsDisabled; existingSchedule.ProjectId = request.ProjectId; existingSchedule.StartingType = request.StartingType; existingSchedule.Status = request.Status; existingSchedule.ExpiryDate = request.ExpiryDate; existingSchedule.StartDate = request.StartDate; existingSchedule.AutomationId = request.AutomationId; var response = await base.PutEntity(id, existingSchedule); manager.DeleteExistingParameters(entityId); var set = new HashSet <string>(); foreach (var parameter in request.Parameters ?? Enumerable.Empty <ParametersViewModel>()) { if (!set.Add(parameter.Name)) { ModelState.AddModelError("ScheduleParameter", "ScheduleParameter Name Already Exists"); return(BadRequest(ModelState)); } ScheduleParameter scheduleParameter = new ScheduleParameter { Name = parameter.Name, DataType = parameter.DataType, Value = parameter.Value, ScheduleId = entityId, CreatedBy = applicationUser?.UserName, CreatedOn = DateTime.UtcNow, Id = Guid.NewGuid() }; scheduleParameterRepository.Add(scheduleParameter); } recurringJobManager.RemoveIfExists(existingSchedule.Id?.ToString()); if (request.IsDisabled == false && !request.StartingType.ToLower().Equals("manual")) { var jsonScheduleObj = JsonSerializer.Serialize <Schedule>(existingSchedule); backgroundJobClient.Schedule(() => hubManager.ScheduleNewJob(jsonScheduleObj), new DateTimeOffset(existingSchedule.StartDate.Value)); } return(response); } catch (Exception ex) { ModelState.AddModelError("Schedule", ex.Message); return(BadRequest(ModelState)); } }
public async Task <IActionResult> Post([FromBody] CreateScheduleViewModel request) { if (request == null) { ModelState.AddModelError("Save", "No data passed"); return(BadRequest(ModelState)); } //validate the cron expression if (!string.IsNullOrWhiteSpace(request.CRONExpression)) { try { CronExpression expression = CronExpression.Parse(request.CRONExpression, CronFormat.Standard); } catch (Exception ex) { ModelState.AddModelError("Save", string.Concat("Invalid cron expression, ", ex.Message)); return(BadRequest(ModelState)); } } Guid entityId = Guid.NewGuid(); if (request.Id == null || !request.Id.HasValue || request.Id.Equals(Guid.Empty)) { request.Id = entityId; } try { Schedule requestObj = request.Map(request); //assign request to schedule entity foreach (var parameter in request.Parameters ?? Enumerable.Empty <ParametersViewModel>()) { ScheduleParameter scheduleParameter = new ScheduleParameter { Name = parameter.Name, DataType = parameter.DataType, Value = parameter.Value, ScheduleId = entityId, CreatedBy = applicationUser?.UserName, CreatedOn = DateTime.UtcNow, Id = Guid.NewGuid() }; scheduleParameterRepository.Add(scheduleParameter); } var response = await base.PostEntity(requestObj); recurringJobManager.RemoveIfExists(requestObj.Id?.ToString()); if (request.IsDisabled == false && !request.StartingType.ToLower().Equals("manual")) { var jsonScheduleObj = JsonSerializer.Serialize <Schedule>(requestObj); backgroundJobClient.Schedule(() => hubManager.ScheduleNewJob(jsonScheduleObj), new DateTimeOffset(requestObj.StartDate.Value)); } return(response); } catch (Exception ex) { return(ex.GetActionResult()); } }
public async Task <IActionResult> Put(string id, [FromBody] CreateScheduleViewModel request) { try { ParametersViewModel.VerifyParameterNameAvailability(request.Parameters); //validate the cron expression if (!string.IsNullOrWhiteSpace(request.CRONExpression)) { if (string.IsNullOrWhiteSpace(request.CRONExpressionTimeZone)) { request.CRONExpressionTimeZone = "UTC"; } try { CronExpression expression = CronExpression.Parse(request.CRONExpression, CronFormat.Standard); } catch (Exception ex) { ModelState.AddModelError("Save", string.Concat("Invalid cron expression, ", ex.Message)); return(BadRequest(ModelState)); } } Schedule existingSchedule = _manager.UpdateSchedule(id, request); var response = await base.PutEntity(id, existingSchedule); _manager.DeleteExistingParameters(id); var set = new HashSet <string>(); foreach (var parameter in request.Parameters ?? Enumerable.Empty <ParametersViewModel>()) { if (!set.Add(parameter.Name)) { ModelState.AddModelError("ScheduleParameter", "ScheduleParameter Name Already Exists"); return(BadRequest(ModelState)); } ScheduleParameter scheduleParameter = new ScheduleParameter { Name = parameter.Name, DataType = parameter.DataType, Value = parameter.Value, ScheduleId = existingSchedule.Id.Value, CreatedBy = applicationUser?.UserName, CreatedOn = DateTime.UtcNow, Id = Guid.NewGuid() }; _scheduleParameterRepository.Add(scheduleParameter); } _recurringJobManager.RemoveIfExists(existingSchedule.Id?.ToString()); if (request.IsDisabled == false && !request.StartingType.ToLower().Equals("manual")) { var jsonScheduleObj = JsonSerializer.Serialize <Schedule>(existingSchedule); _backgroundJobClient.Schedule(() => _hubManager.ScheduleNewJob(jsonScheduleObj), new DateTimeOffset(existingSchedule.StartDate.Value)); } return(response); } catch (Exception ex) { return(ex.GetActionResult()); } }
public async Task <IActionResult> Post([FromBody] CreateScheduleViewModel request) { ParametersViewModel.VerifyParameterNameAvailability(request.Parameters); if (request == null) { ModelState.AddModelError("Save", "No data passed"); return(BadRequest(ModelState)); } //validate the cron expression if (!string.IsNullOrWhiteSpace(request.CRONExpression)) { if (string.IsNullOrWhiteSpace(request.CRONExpressionTimeZone)) { request.CRONExpressionTimeZone = "UTC"; } try { CronExpression expression = CronExpression.Parse(request.CRONExpression, CronFormat.Standard); } catch (Exception ex) { ModelState.AddModelError("Save", string.Concat("Invalid cron expression, ", ex.Message)); return(BadRequest(ModelState)); } } Guid entityId = Guid.NewGuid(); if (request.Id == null || !request.Id.HasValue || request.Id.Equals(Guid.Empty)) { request.Id = entityId; } try { if (request.StartingType.ToLower() == "queuearrival") { if (request.QueueId == null) { throw new EntityOperationException("Schedule of starting type \"QueueArrival\" must contain a Queue id"); } } Schedule newSchedule = _manager.AddSchedule(request); foreach (var parameter in request.Parameters ?? Enumerable.Empty <ParametersViewModel>()) { ScheduleParameter scheduleParameter = new ScheduleParameter { Name = parameter.Name, DataType = parameter.DataType, Value = parameter.Value, ScheduleId = entityId, CreatedBy = applicationUser?.UserName, CreatedOn = DateTime.UtcNow, Id = Guid.NewGuid() }; _scheduleParameterRepository.Add(scheduleParameter); } var response = await base.PostEntity(newSchedule); _recurringJobManager.RemoveIfExists(newSchedule.Id?.ToString()); if (request.IsDisabled == false && !request.StartingType.ToLower().Equals("manual"))//if schedule is not a manual starting type { var jsonScheduleObj = JsonSerializer.Serialize <Schedule>(newSchedule); _backgroundJobClient.Schedule(() => _hubManager.ScheduleNewJob(jsonScheduleObj), new DateTimeOffset(newSchedule.StartDate.Value)); } return(response); } catch (Exception ex) { return(ex.GetActionResult()); } }