public ActionResult RollcallList(string courseTime)
        {
            if (!User.Identity.IsAuthenticated)
            {
                return(RedirectToRoute(new { controller = "Login", action = "Index" }));
            }
            int t_id = PageValidate.FilterParam(User.Identity.Name);
            //从教师ID中查找可点名科目
            DateTime minDt = DateTime.Now.AddMinutes(-10);

            var rc = (from c in db.Course_Infos
                      join cvt in db.Course_vs_Times
                      on c.course_id equals cvt.cvt_course_id
                      join r in db.Sys_ClassRooms
                      on cvt.cvt_room_id equals r.room_id into T1
                      from t1 in T1.DefaultIfEmpty()
                      join s in db.Dic_Schools
                      on t1.room_school_id equals s.school_id into T2
                      from t2 in T2.DefaultIfEmpty()
                      where (c.c_teacher_id == t_id || c.c_assistant_id == t_id) &&
                      DbFunctions.DiffDays(DateTime.Now, cvt.cvt_time) == 0 &&
                      (cvt.cvt_time >= minDt || DbFunctions.AddMinutes(cvt.cvt_time, cvt.cvt_duration) > DateTime.Now)
                      select new RollCallList
            {
                id = cvt.cvt_id,
                name = c.course_name,
                time = cvt.cvt_time
            }
                      );

            return(View(rc.ToList()));
        }
        public void DbFunctionsTests_AddMinutes_DateTime_Test()
        {
            var result = this.GetOrderQuery().Select(x => (DateTime)DbFunctions.AddMinutes(this.TestDateTime, 1)).First();

            Assert.AreEqual(YEAR, result.Year);
            Assert.AreEqual(MONTH, result.Month);
            Assert.AreEqual(DAY, result.Day);
            Assert.AreEqual(HOUR, result.Hour);
            Assert.AreEqual(MINUTE + 1, result.Minute);
            Assert.AreEqual(SECOND, result.Second);
        }
Esempio n. 3
0
        public HttpResponseMessage JobsList([FromBody] ApiHttpRequest <Dictionary <string, object> > request)
        {
            //var filtersString = HttpUtility.ParseQueryString(Request.RequestUri.Query)["filters"];
            //var filters = !string.IsNullOrEmpty(filtersString) ? filtersString.Deserialize<Dictionary<string, object>>() : new Dictionary<string, object>();
            var filters = request.data;

            var response = new ApiHttpResponse <HttpDataList <dynamic> >();
            var username = Request.Username();
            var _context = new QuartzExecutionDataContext();

            try
            {
                var account = _context.Accounts
                              .FirstOrDefault(x => x.Username == username);
                var jobs = (from ser in _context.Servers
                            join job in _context.Jobs on ser.ServerID equals job.ServerID
                            join accser in _context.AccountServers on ser.ServerID equals accser.ServerID
                            join acc in _context.Accounts on accser.AccountID equals acc.AccountID
                            where (acc.Username == username && account.Roles == RoleType.Client) ||
                            (account.Roles == RoleType.Admin || account.Roles == RoleType.Inspector)
                            select new {
                    JobID = job.JobID,
                    Key = job.Key,
                    Description = job.Description,
                    Executing = job.Executing,
                    ServerID = job.ServerID,
                    StartedAt = job.StartedAt,
                    IsExecutingCorrectly = DateTime.Now <= DbFunctions.AddMinutes(job.Calls.OrderByDescending(x => x.EndedAt).FirstOrDefault().NextStart, 1),
                    LastCall = job.Calls.OrderByDescending(x => x.EndedAt).FirstOrDefault()
                })
                           .Distinct()
                           .Filter(filters)
                           .OrderByDescending(x => x.LastCall.StartedAt);


                //var jobList = jobs?
                //    .OrderByDescending(x => x.LastCall.StartedAt);
                //jobList.ForEach(x => x.Calls.Take(1));
                response.data.result = jobs.ToList <dynamic>();
                response.Complete(ResultCode.OK, "");
            }
            catch (Exception ex)
            {
                LogsAppendersManager.Instance.Error(this.GetType(), MethodBase.GetCurrentMethod(), ex.Message, ex);
                response.Fault(ex);
            }
            return(Request.CreateResponse(response.Code, response));
        }
        public IHttpActionResult Get()
        {
            var result = _trainingSessionService.TrainingSessionAsQueryable().Select(t => new TrainingSessionViewModel
            {
                Id                = t.Id,
                SiteId            = t.SiteId,
                TrainingId        = t.TrainingId,
                EmployeeTrainerId = t.EmployeeTrainerId,
                Start             = t.Start,
                End               = DbFunctions.AddMinutes(t.Start, t.DurationInMinutes).Value,
                DurationInMinutes = t.DurationInMinutes,
                Delivered         = t.Delivered,
                Title             = t.EmployeeInTrainingPostion.Employee.Firstname + " " + t.EmployeeInTrainingPostion.Employee.Lastname
            }).ToList();

            return(Ok(result));
        }
        public IEnumerable <AnalysisRequest> GetExpiringPeriodToSendDocuments()
        {
            var list = new List <AnalysisRequest>();

            int homologationExpiringTime = Convert.ToInt32(ConfigurationManager.AppSettings["SAAD.Homologation.ExpiringTimeDocuments.Minutes"]);
            int monthlyExpiringTime      = Convert.ToInt32(ConfigurationManager.AppSettings["SAAD.Monthly.ExpiringTimeDocuments.Minutes"]);

            list.AddRange(context.AnalysisRequest.Where(r => r.RequestStatus == AnalysisRequestStatus.WaitingForDocuments.Value &&
                                                        r.Type == AnalysisRequest.Homologation &&
                                                        DbFunctions.AddMinutes(r.CreateDate, homologationExpiringTime) < DateTime.Now));


            list.AddRange(context.AnalysisRequest.Where(r => r.RequestStatus == AnalysisRequestStatus.WaitingForDocuments.Value &&
                                                        r.Type == AnalysisRequest.MonthlyAnalysis &&
                                                        DbFunctions.AddMinutes(r.CreateDate, monthlyExpiringTime) < DateTime.Now));

            return(list);
        }