예제 #1
0
        public IActionResult AddExecution(string id_repository, string nombre_job, string fecha_inicio, string cron_expression, string set = null, string codigo_objeto = null)
        {
            Guid     idRep       = Guid.Empty;
            DateTime fechaInicio = DateTime.Now;

            if (codigo_objeto != null && set == null)
            {
                return(BadRequest("falta el tipo de objeto"));
            }
            if (fecha_inicio != null)
            {
                try
                {
                    fechaInicio = DateTime.ParseExact(fecha_inicio, "dd/MM/yyyy HH:mm", null);
                }
                catch (Exception)
                {
                    return(BadRequest("fecha de inicio inválida"));
                }
            }

            try
            {
                idRep = new Guid(id_repository);
            }
            catch (Exception)
            {
                return(BadRequest("identificador invalido"));
            }
            bool validCronExpr = true;

            if (_cronApiService.ExistRecurringJob(nombre_job))
            {
                return(BadRequest("Ya existe una tarea con ese nombre"));
            }
            else if (string.IsNullOrEmpty(nombre_job))
            {
                return(BadRequest("El nombre no puede ser vacío"));
            }
            else
            {
                var correct = CrontabSchedule.TryParse(cron_expression);
                if (correct != null)
                {
                    _programingMethodsService.ProgramPublishRepositoryRecurringJob(idRep, nombre_job, cron_expression, fechaInicio, _configuration, set, codigo_objeto);
                }
                else
                {
                    validCronExpr = false;
                }
            }
            if (validCronExpr)
            {
                return(Ok());
            }
            else
            {
                return(BadRequest("invalid cron expression"));
            }
        }
        public IActionResult AddExecution(string id_repository, string nombre_job, string fecha_inicio, string cron_expression, string fecha = null, string set = null, string codigo_objeto = null)
        {
            Guid     idRep         = Guid.Empty;
            DateTime fechaInicio   = DateTime.Now;
            DateTime?fechaDateTime = null;

            if (codigo_objeto != null && set == null)
            {
                return(BadRequest("falta el tipo de objeto"));
            }
            if (fecha_inicio != null)
            {
                try
                {
                    fechaInicio = DateTime.ParseExact(fecha_inicio, "dd/MM/yyyy hh:mm", null);
                }
                catch (Exception)
                {
                    return(BadRequest("fecha de inicio inválida"));
                }
            }

            if (fecha != null)
            {
                try
                {
                    fechaDateTime = DateTime.ParseExact(fecha, "dd/MM/yyyy hh:mm", null);
                }
                catch (Exception)
                {
                    return(BadRequest("fecha de sincronzación inválida"));
                }
            }
            try
            {
                idRep = new Guid(id_repository);
            }
            catch (Exception)
            {
                return(BadRequest("identificador invalido"));
            }
            bool validCronExpr = true;

            if (_cronApiService.ExistRecurringJob(nombre_job))
            {
                return(BadRequest("Ya existe una tarea con ese nombre"));
            }
            else
            {
                var correct = CrontabSchedule.TryParse(cron_expression);
                if (correct != null)
                {
                    //BackgroundJob.Schedule(() => ExampleService.PonerEnCola(nombre_job, nombre_fichero, cron_expression, execute_inmediatly), fechaInicio);
                    _programingMethodsService.ProgramPublishRepositoryRecurringJob(idRep, nombre_job, cron_expression, fechaInicio, fechaDateTime, set, codigo_objeto);
                }
                else
                {
                    validCronExpr = false;
                }
            }
            if (validCronExpr)
            {
                return(Ok());
            }
            else
            {
                return(BadRequest("invalid cron expression"));
            }
        }