Exemplo n.º 1
0
        public IActionResult Add([FromBody] Schedule model)
        {
            try
            {
                if (model == null)
                {
                    return(BadRequest());
                }
                using (var db = new AllInOneContext.AllInOneContext())
                {
                    if (model.ScheduleCycle != null)
                    {
                        //补全数据
                        SystemOption cycletype = db.Set <SystemOption>()
                                                 .FirstOrDefault(p => p.SystemOptionId.Equals(model.ScheduleCycle.CycleTypeId));
                        Schedule Schedule = model;
                        if (cycletype != null)
                        {
                            Schedule.ScheduleCycle.CycleType = cycletype;
                        }
                        DateTime?executeTime = ScheduleUtility.GetExecuteTime(Schedule, DateTime.Now);
                        model.ScheduleCycle.NextExecute = executeTime;
                    }
                    db.Schedule.Add(model);
                    db.SaveChanges();
                    return(Created("", "OK"));
                }
            }
            catch (DbUpdateException dbEx)
            {
                _logger.LogError("Add:Message:{0}\r\n,StackTrace:{1}", dbEx.Message, dbEx.StackTrace);

                return(BadRequest(new ApplicationException {
                    ErrorCode = "DBUpdate", ErrorMessage = "数据保存异常:" + dbEx.Message
                }));
            }
            catch (System.Exception ex)
            {
                _logger.LogError("Add:Message:{0}\r\n,StackTrace:{1}", ex.Message, ex.StackTrace);
                return(BadRequest(new ApplicationException {
                    ErrorCode = "Unknown", ErrorMessage = ex.Message
                }));
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// 设置查勤包运行时间
 /// </summary>
 /// <param name="planSchedule"></param>
 /// <returns></returns>
 private void SetPlanNextExecute(Schedule planSchedule, DateTime startTime)
 {
     try
     {
         //更新查勤计划下执行时间
         DateTime?executeTime = ScheduleUtility.GetExecuteTime(planSchedule, startTime);
         planSchedule.ScheduleCycle.LastExecute = planSchedule.ScheduleCycle.NextExecute;
         planSchedule.ScheduleCycle.NextExecute = executeTime;
         //更新查勤计划执行时间
         string url    = string.Format("{0}/Infrastructure/schedule", GlobalSetting.AppServerBaseUrl);
         string result = string.Empty;
         HttpClientHelper.Put <Schedule>(planSchedule, url);
         _logger.LogInformation("更新查勤计划下一运行时间....");
     }
     catch (Exception ex)
     {
         _logger.LogError("更新查勤计划运行时间异常:Message:{0}\r\nStackTrace:{1}", ex.Message, ex.StackTrace);
     }
 }
Exemplo n.º 3
0
        public IActionResult Update([FromBody] Schedule model)
        {
            try
            {
                if (model == null)
                {
                    return(BadRequest());
                }
                using (var db = new AllInOneContext.AllInOneContext())
                {
                    using (var tran = db.Database.BeginTransaction())
                    {
                        if (model.ScheduleCycle != null)
                        {
                            //补全数据
                            SystemOption cycletype = db.Set <SystemOption>()
                                                     .FirstOrDefault(p => p.SystemOptionId.Equals(model.ScheduleCycle.CycleTypeId));
                            Schedule Schedule = model;
                            if (cycletype != null)
                            {
                                Schedule.ScheduleCycle.CycleType = cycletype;
                            }
                            DateTime?executeTime = ScheduleUtility.GetExecuteTime(Schedule, DateTime.Now);
                            model.ScheduleCycle.NextExecute = executeTime;
                        }
                        //转换一般数据
                        Schedule shedule = db.Schedule
                                           .Include(t => t.ScheduleType)
                                           .Include(t => t.ScheduleCycle).ThenInclude(t => t.DayPeriods)
                                           .Include(t => t.ScheduleCycle).ThenInclude(t => t.CycleType)
                                           .FirstOrDefault(p => p.ScheduleId.Equals(model.ScheduleId));

                        if (shedule == null)
                        {
                            return(BadRequest());
                        }

                        shedule.EffectiveTime  = model.EffectiveTime;
                        shedule.ExpirationTime = model.ExpirationTime;
                        shedule.ScheduleTypeId = model.ScheduleTypeId;
                        shedule.ScheduleName   = model.ScheduleName;
                        //
                        ScheduleCycle scheduleCycle = db.Set <ScheduleCycle>()
                                                      .Include(t => t.DayPeriods)
                                                      .FirstOrDefault(p => p.ScheduleCycleId.Equals(shedule.ScheduleCycle.ScheduleCycleId));
                        //转换ScheduleCycle
                        scheduleCycle.CycleTypeId = model.ScheduleCycle.CycleTypeId;
                        scheduleCycle.Days        = model.ScheduleCycle.Days;
                        scheduleCycle.DaysJson    = model.ScheduleCycle.DaysJson;
                        scheduleCycle.LastExecute = model.ScheduleCycle.LastExecute;
                        scheduleCycle.Months      = model.ScheduleCycle.Months;
                        scheduleCycle.MonthsJson  = model.ScheduleCycle.MonthsJson;
                        scheduleCycle.NextExecute = model.ScheduleCycle.NextExecute;
                        scheduleCycle.WeekDayJson = model.ScheduleCycle.WeekDayJson;
                        scheduleCycle.WeekDays    = model.ScheduleCycle.WeekDays;
                        //
                        RemoveList(db, shedule);
                        //
                        scheduleCycle.DayPeriods = model.ScheduleCycle.DayPeriods;
                        shedule.ScheduleCycle    = scheduleCycle;
                        db.Schedule.Update(shedule);
                        db.SaveChanges();
                        //
                        tran.Commit();
                        return(new NoContentResult());
                    }
                }
            }
            catch (DbUpdateException dbEx)
            {
                _logger.LogError("Update:Message:{0}\r\n,StackTrace:{1}", dbEx.Message, dbEx.StackTrace);

                return(BadRequest(new ApplicationException {
                    ErrorCode = "DBUpdate", ErrorMessage = "数据保存异常:" + dbEx.Message
                }));
            }
            catch (System.Exception ex)
            {
                _logger.LogError("Update:Message:{0}\r\n,StackTrace:{1}", ex.Message, ex.StackTrace);
                return(BadRequest(new ApplicationException {
                    ErrorCode = "Unknown", ErrorMessage = ex.Message
                }));
            }
        }