public ActionResult Create(ScheduledJobViewModel vm)
        {
            if (ModelState.IsValid)
            {
                var jobInfo = new JobInfoModel
                {
                    JobType        = "Scheduled",
                    CronExpression = vm.CronExpression,
                    Url            = vm.Url
                };

                var newScheduledJob = new ScheduledJob
                {
                    Name    = vm.Name,
                    JobInfo = JsonConvert.SerializeObject(jobInfo)
                };

                _db.ScheduledJobs.Add(newScheduledJob);
                _db.SaveChanges();

                try
                {
                    // Create Hangfire Job
                    RecurringJob.AddOrUpdate(vm.Name, () => WebClientHelper.InvokeUrl(vm.Url), vm.CronExpression);
                    return(RedirectToAction("Index"));
                }
                catch (Exception ex) {
                    ViewBag.jobException = "Invalid cron expression";
                }
            }

            return(View(vm));
        }
Beispiel #2
0
        ///<summary>
        ///Obtiene una lista de tareas programadas
        ///</summary>
        /// <param name="from">número desde el cual se va a traer las tareas del listado, por defecto 0 para empezar a traer desde el primer elemento de la lista de tareas</param>
        /// <param name="count">número máximo de tareas a traer</param>
        public List <ScheduledJobViewModel> GetScheduledJobs(int from, int count)
        {
            var api = JobStorage.Current.GetMonitoringApi();
            JobList <ScheduledJobDto>    listScheduled          = api.ScheduledJobs(from, count);
            List <ScheduledJobViewModel> listScheduledViewModel = new List <ScheduledJobViewModel>();

            foreach (var scheduled in listScheduled)
            {
                string jobString = "";
                if (scheduled.Value.Job != null)
                {
                    jobString = scheduled.Value.Job.ToString();
                }
                ScheduledJobViewModel scheduledViewModel = new ScheduledJobViewModel()
                {
                    Key              = scheduled.Key,
                    EnqueueAt        = scheduled.Value.EnqueueAt,
                    InScheduledState = scheduled.Value.InScheduledState,
                    Job              = jobString,
                    ScheduledAt      = scheduled.Value.ScheduledAt
                };
                listScheduledViewModel.Add(scheduledViewModel);
            }
            return(listScheduledViewModel);
        }
        public ActionResult Create()
        {
            var vm = new ScheduledJobViewModel
            {
            };

            return(View(vm));
        }