Esempio n. 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="keyword"></param>
        /// <param name="type"></param>
        /// <param name="repeatType"></param>
        /// <param name="status"></param>
        /// <param name="enabled"></param>
        /// <param name="scope"></param>
        /// <param name="fromTime"></param>
        /// <param name="toTime"></param>
        /// <param name="order"></param>
        /// <param name="limit"></param>
        /// <returns></returns>
        public static List <SchedulerModel> GetAll(string keyword, int?type, SchedulerRepeatType?repeatType, SchedulerStatus?status, bool?enabled,
                                                   SchedulerScope?scope, DateTime?fromTime, DateTime?toTime, string order, int limit)
        {
            var entities = SchedulerServices.GetAll(keyword, type, repeatType, status, enabled, scope, fromTime, toTime, order, limit);

            return(entities.Select(e => new SchedulerModel(e)).ToList());
        }
Esempio n. 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="keyword"></param>
        /// <param name="type"></param>
        /// <param name="repeatType"></param>
        /// <param name="status"></param>
        /// <param name="enabled"></param>
        /// <param name="scope"></param>
        /// <param name="fromTime"></param>
        /// <param name="toTime"></param>
        /// <param name="order"></param>
        /// <param name="start"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public static PageResult <SchedulerModel> GetPaging(string keyword, int?type, SchedulerRepeatType?repeatType, SchedulerStatus?status, bool?enabled,
                                                            SchedulerScope?scope, DateTime?fromTime, DateTime?toTime, string order, int start, int pageSize)
        {
            var result = SchedulerServices.GetPaging(keyword, type, repeatType, status, enabled, scope, fromTime, toTime, order, start, pageSize);

            return(new PageResult <SchedulerModel>(result.Total, result.Data.Select(e => new SchedulerModel(e)).ToList()));
        }
Esempio n. 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Delete_Click(object sender, DirectEventArgs e)
        {
            if (!string.IsNullOrEmpty(hdfMonth.Text) && !string.IsNullOrEmpty(hdfYear.Text))
            {
                if (!string.IsNullOrEmpty(hdfTimeSheetGroupListId.Text))
                {
                    var groupWorkShiftId = Convert.ToInt32(hdfTimeSheetGroupListId.Text);

                    //get all detail workShift
                    var order        = " [StartDate] ASC ";
                    var lstWorkShift =
                        TimeSheetWorkShiftController.GetAll(null, false, groupWorkShiftId, null, null, null, null, Convert.ToInt32(hdfMonth.Text), Convert.ToInt32(hdfYear.Text), order, null);

                    var listWorkShiftIds = lstWorkShift.Select(ws => ws.Id).ToList();
                    if (listWorkShiftIds.Count > 0)
                    {
                        TimeSheetEventController.DeleteByCondition(listWorkShiftIds, null, null, null, TimeSheetAdjustmentType.Default);
                    }

                    //Update status schedule create new timeSheet
                    var scheduler = SchedulerServices.GetSchedulerByName();
                    if (scheduler != null)
                    {
                        scheduler.Status    = SchedulerStatus.Ready;
                        scheduler.Arguments = "-m {0} -y {1} -groupWorkShiftId {2}".FormatWith(hdfMonth.Text, hdfYear.Text, hdfTimeSheetGroupListId.Text);

                        SchedulerServices.Update(scheduler);
                    }
                }

                wdWindow.Hide();
            }
        }
Esempio n. 4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static SchedulerModel Update(SchedulerModel model)
        {
            // get entity from database
            var entity = SchedulerServices.GetById(model.Id);

            // set new properties from model
            model.FillEntity(ref entity);
            // update entity
            return(new SchedulerModel(SchedulerServices.Update(entity)));
        }
Esempio n. 5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static SchedulerModel Create(SchedulerModel model)
        {
            // init entity
            var entity = new Scheduler();

            // set properties from model
            model.FillEntity(ref entity);
            // insert entity
            return(new SchedulerModel(SchedulerServices.Create(entity)));
        }
Esempio n. 6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="schedulerName"></param>
        /// <returns></returns>
        public static SchedulerModel GetByName(string schedulerName)
        {
            // init condition
            var condition = Constant.ConditionDefault;

            if (string.IsNullOrEmpty(schedulerName))
            {
                return(null);
            }
            condition += " AND [Name] = '{0}'".FormatWith(schedulerName);
            var entity = SchedulerServices.GetByCondition(condition);

            return(entity != null ? new SchedulerModel(entity) : null);
        }
Esempio n. 7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // init time
            var time = DateTime.Now.AddMinutes(1);

            // init to time
            var toTime = new DateTime(time.Year, time.Month, time.Day, time.Hour, time.Minute, 0);

            // get ready scheduler
            var scheduler = SchedulerServices.GetById(27);

            //SchedulerServices.GetAll(null, null, null, SchedulerStatus.Ready, true, SchedulerScope.Internal, null, toTime, null, 1).FirstOrDefault();
            if (scheduler != null)
            {
                // run scheduler
                RunScheduler(scheduler);
            }
        }
Esempio n. 8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="context"></param>

        public async Task Execute(IJobExecutionContext context)
        {
            try
            {
                // init time
                var time = DateTime.Now.AddMinutes(1);

                // init to time
                var toTime = new DateTime(time.Year, time.Month, time.Day, time.Hour, time.Minute, 0);

                // get ready scheduler
                var scheduler = SchedulerServices.GetAll(null, null, null, SchedulerStatus.Ready, true, SchedulerScope.Internal, null, toTime, null, 1).FirstOrDefault();
                if (scheduler != null)
                {
                    // run scheduler
                    await RunScheduler(scheduler);
                }
            }
            catch (Exception ex)
            {
                // create log
                var systemLog = new SystemLogModel
                {
                    Username         = "******",
                    Thread           = "JobScheduler",
                    Action           = SystemAction.TrackError,
                    ShortDescription = ex.Message,
                    LongDescription  = ex.ToString(),
                    IsException      = true,
                    CreatedDate      = DateTime.Now
                };

                // log exception
                SystemLogController.Create(systemLog);
            }
        }
Esempio n. 9
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="scheduler"></param>
        private Task RunScheduler(Scheduler scheduler)
        {
            try
            {
                // next run time
                DateTime?nextRunTime = null;
                if (scheduler.NextRunTime == null)
                {
                    return(Task.FromCanceled(new CancellationToken(true)));
                }
                // switch repeat type
                switch (scheduler.RepeatType)
                {
                case SchedulerRepeatType.OneTime:
                    break;

                case SchedulerRepeatType.Monthly:
                    nextRunTime = scheduler.NextRunTime.Value.AddMonths(1);
                    break;

                case SchedulerRepeatType.Weekly:
                    nextRunTime = scheduler.NextRunTime.Value.AddDays(7);
                    break;

                case SchedulerRepeatType.Daily:
                    nextRunTime = scheduler.NextRunTime.Value.AddDays(1);
                    break;

                case SchedulerRepeatType.Hourly:
                    nextRunTime = scheduler.NextRunTime.Value.AddHours(1);
                    break;

                case SchedulerRepeatType.IntervalTime:
                    if (scheduler.IntervalTime > 0)
                    {
                        nextRunTime = scheduler.NextRunTime.Value.AddMinutes(scheduler.IntervalTime);
                    }
                    break;

                default:
                    return(Task.FromCanceled(new CancellationToken(true)));
                }

                // expired time
                DateTime?expiredTime = null;
                if (scheduler.ExpiredAfter > 0 && scheduler.RepeatType != SchedulerRepeatType.OneTime)
                {
                    expiredTime = scheduler.NextRunTime.Value.AddMinutes(scheduler.ExpiredAfter);
                }
                // update current scheduler status to running
                SchedulerServices.Update(scheduler.Id, SchedulerStatus.Running, DateTime.Now, nextRunTime, expiredTime);
                // init scheduler type
                var schedulerType = cat_BaseServices.GetById("cat_SchedulerType", scheduler.SchedulerTypeId);
                // init job type
                var jobType = Type.GetType("Web.Core.Framework.{0},Web.Core.Framework".FormatWith(schedulerType.Name));
                if (jobType == null)
                {
                    return(Task.FromCanceled(new CancellationToken(true)));
                }
                // init job
                var job = Activator.CreateInstance(jobType);
                // int job property
                ((BaseTask)job).Id        = scheduler.Id;
                ((BaseTask)job).Name      = scheduler.Name;
                ((BaseTask)job).Arguments = scheduler.Arguments;
                // execute job
                ((BaseTask)job).Excute(scheduler.Arguments);

                // update scheduler status when complete
                SchedulerServices.Update(scheduler.Id, scheduler.RepeatType == SchedulerRepeatType.OneTime
                    ? SchedulerStatus.Completed
                    : SchedulerStatus.Ready);
                return(Task.CompletedTask);
            }
            catch (Exception ex)
            {
                // log error
                SystemLogController.Create(new SystemLogModel("system", "RunScheduler", SystemAction.TrackError,
                                                              SystemLogType.ScheduleError, ex.Message, ex.ToString(), true));
                return(Task.FromException(ex));
            }
        }
Esempio n. 10
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public static SchedulerModel GetById(int id)
        {
            var entity = SchedulerServices.GetById(id);

            return(new SchedulerModel(entity));
        }
Esempio n. 11
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="id"></param>
 /// <returns></returns>
 public static bool Delete(int id)
 {
     // delete entity
     return(SchedulerServices.Delete(id));
 }
Esempio n. 12
0
 protected void storeScheduler_OnRefreshData(object sender, StoreRefreshDataEventArgs e)
 {
     storeScheduler.DataSource = SchedulerServices.GetAll();
     storeScheduler.DataBind();
 }