public ActionResult DeleteConfirmed(string id)
        {
            //StudentCheckIn studentCheckIn = db.StudentCheckIns.Find(id);
            StudentCheckIn studentCheckIn = Bs.GetStudentCheckIn(id);

            Bs.RemoveStudentCheckIn(studentCheckIn);
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 2
0
 public bool RemoveStudentCheckIn(StudentCheckIn studentCheckIn)
 {
     try
     {
         db.StudentCheckIns.Remove(studentCheckIn);
         db.SaveChanges();
         return(true);
     }
     catch (Exception ex)
     { return(false); }
 }
Ejemplo n.º 3
0
 public bool UpdateStudentCheckIn(StudentCheckIn studentCheckIn)
 {
     try
     {
         db.Entry(studentCheckIn).State = EntityState.Modified;
         db.SaveChanges();
         return(true);
     }
     catch (Exception ex)
     { return(false); }
 }
 public ActionResult Edit([Bind(Include = "CheckIn_Id,StudId,ResId,ResName,Date_In,RoomId")] StudentCheckIn studentCheckIn)
 {
     if (ModelState.IsValid)
     {
         Bs.UpdateStudentCheckIn(studentCheckIn);
         return(RedirectToAction("Index"));
     }
     ViewBag.ResId  = new SelectList(db.Residences, "ResId", "ResName", studentCheckIn.ResId);
     ViewBag.RoomId = new SelectList(db.Rooms, "RoomId", "RoomNumber", studentCheckIn.RoomId);
     ViewBag.StudId = new SelectList(db.Students, "StudId", "StudentNumber", studentCheckIn.StudId);
     return(View(studentCheckIn));
 }
        // GET: StudentCheckIns/Details/5
        public ActionResult Details(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            StudentCheckIn studentCheckIn = db.StudentCheckIns.Find(id);

            if (studentCheckIn == null)
            {
                return(HttpNotFound());
            }
            return(View(studentCheckIn));
        }
        // GET: StudentCheckIns/Edit/5
        public ActionResult Edit(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            StudentCheckIn studentCheckIn = db.StudentCheckIns.Find(id);

            if (studentCheckIn == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ResId  = new SelectList(db.Residences, "ResId", "ResName", studentCheckIn.ResId);
            ViewBag.RoomId = new SelectList(db.Rooms, "RoomId", "RoomNumber", studentCheckIn.RoomId);
            ViewBag.StudId = new SelectList(db.Students, "StudId", "StudentNumber", studentCheckIn.StudId);
            return(View(studentCheckIn));
        }
        public ActionResult Create()
        {
            DateTime now = DateTime.UtcNow;

            StudentCheckIn studentCheckIn = new StudentCheckIn();
            var            userId         = User.Identity.GetUserName();
            var            roomResult     = studentCheckIn.checkRoomStatus();
            var            student        = db.Students.ToList().Find(x => x.Email == User.Identity.GetUserName());
            Student        stdent         = new Student();
            var            resid          = lo.getStudentRes((student.IdNumber));
            var            id             = stdent.IdNumber;

            if (lo.ChechIdForCheckIn(lo.getId(id.ToString())) == false)
            {
                if (lo.checkForCheckIn(userId))
                {
                    TempData["message"] = "You have already checked in";
                    return(RedirectToAction("Index", "Students"));
                }
                else
                {
                    ViewBag.ResId  = new SelectList(db.Residences, "ResId", "ResName");
                    ViewBag.RoomId = new SelectList(db.Rooms.Where(x => x.Status == "Available" && x.Residence.ResId == resid), "RoomId", "RoomNumber");
                    if (User.IsInRole("SAN"))
                    {
                        ViewBag.StudId = new SelectList(db.Students, "StudId", "StudentNumber");
                    }
                    else if (User.IsInRole("Student"))
                    {
                        ViewBag.StudId = new SelectList(db.Students.Where(x => x.Email == userId), "StudId", "StudentNumber");
                    }

                    return(View());
                }
            }
            else
            {
                TempData["message"] = "You have not been temporarily booked for";
                return(View("Home2"));
            }
        }
        public ActionResult Create([Bind(Include = "CheckIn_Id,StudId,ResId,ResName,Date_In,RoomId")] StudentCheckIn studentCheckIn)
        {
            DateTime now = DateTime.UtcNow;

            var userId   = User.Identity.GetUserId();
            var username = User.Identity.GetUserName();

            Guid   guid = new Guid();
            Random r    = new Random();

            if (ModelState.IsValid)
            {
                if (studentCheckIn.CheckStudent() == true)
                {
                    if (studentCheckIn.checkRoomStatus() == true)
                    {
                        var student = db.Students.ToList().Find(x => x.Email == User.Identity.GetUserName());
                        studentCheckIn.StudId = student.StudId;
                        var resid = lo.getStudentRes((student.IdNumber));
                        if (lo.canCheckIn(student.Email, studentCheckIn.RooNumber) == false)
                        {
                            TempData["message"] = "Cannot checkin into a " + lo.getGender(studentCheckIn.RooNumber) + "'s room.";
                            return(RedirectToAction("Create"));
                        }
                        if (studentCheckIn.CheckRoomGender(username) == false)
                        {
                            TempData["message"] = "Cannot checkin into a " + lo.getGender(studentCheckIn.RooNumber) + "'s room.";

                            return(RedirectToAction("Create"));
                        }

                        studentCheckIn.ResId = resid;

                        // studentCheckIn.UpdateCheckIn();
                        var qtyUpdate = db.ResAvailabilities.Where(x => x.ResId == resid).FirstOrDefault();
                        qtyUpdate.CheckedIN      += 1;
                        db.Entry(qtyUpdate).State = System.Data.Entity.EntityState.Modified;
                        studentCheckIn.UpdateStatus();
                        studentCheckIn.CheckIn_Id = guid.ToString() + r.Next(2, 10000).ToString();
                        studentCheckIn.ResName    = lo.getResName(studentCheckIn.getStudentNUmber());
                        studentCheckIn.Date_In    = now.Date;
                        studentCheckIn.RooNumber  = studentCheckIn.GetRoomNumber();
                        //studentCheckIn.RoomId=studentCheckIn.RoomId
                        studentCheckIn.UpdateProfile();
                        studentCheckIn.updateSpace();
                        Bs.AddStudentCheckIn(studentCheckIn);
                        db.SaveChanges();

                        return(RedirectToAction("Create", "PDFs"));
                    }
                    else
                    {
                        ModelState.AddModelError("", "Room is Already Taken");
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Student is already checked in");
                }
            }

            ViewBag.ResId  = new SelectList(db.Residences, "ResId", "ResName", studentCheckIn.ResId);
            ViewBag.RoomId = new SelectList(db.Rooms.Where(x => x.Space != 0 && x.Residence.ResId == studentCheckIn.ResId), "RoomId", "RoomNumber", studentCheckIn.RoomId);
            if (User.IsInRole("SystemAdmin"))
            {
                ViewBag.StudId = new SelectList(db.Students, "StudId", "StudentNumber", studentCheckIn.StudId);
            }
            else if (User.IsInRole("Student"))
            {
                ViewBag.StudId = new SelectList(db.Students.Where(x => x.Email == userId), "StudId", "StudentNumber", studentCheckIn.StudId);
            }
            return(View(studentCheckIn));
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Điểm danh học sinh lúc đi và lúc về (Cho app của GSX)
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <ResultDto <StudentCheckInDto> > CheckIn(CheckInRequestDto request)
        {
            var studentCheckIn = new StudentCheckIn()
            {
                CheckInResult = (StudentStatus)request.CheckInResult,
                CheckInTime   = request.CheckInTime,
                CheckInType   = (CheckInType)request.CheckInType,
                MonitorId     = request.MonitorId,
                Latitude      = request.Latitude,
                Longitude     = request.Longitude,
                StudentId     = request.StudentId
            };
            var student = await this.GetById(request.StudentId);

            var checkInTimeSpan = new TimeSpan(studentCheckIn.CheckInTime.Hour, (studentCheckIn.CheckInTime.Minute), 00);

            if (studentCheckIn.CheckInResult == StudentStatus.PickedUp)
            {
                TimeSpan timeCheck = checkInTimeSpan.Subtract(student.StopPickTime);
                if (timeCheck.TotalMinutes > 5)
                {
                    studentCheckIn.CheckInState = CheckInState.Late;
                }
                else if (timeCheck.TotalMinutes < -5)
                {
                    studentCheckIn.CheckInState = CheckInState.Soon;
                }
                else
                {
                    studentCheckIn.CheckInState = CheckInState.OnTime;
                }
            }
            else if (studentCheckIn.CheckInResult == StudentStatus.DropedOff)
            {
                TimeSpan timeCheck = checkInTimeSpan.Subtract(student.StopDropTime);
                if (timeCheck.TotalMinutes > 5)
                {
                    studentCheckIn.CheckInState = CheckInState.Late;
                }
                else if (timeCheck.TotalMinutes < -5)
                {
                    studentCheckIn.CheckInState = CheckInState.Soon;
                }
                else
                {
                    studentCheckIn.CheckInState = CheckInState.OnTime;
                }
            }
            // Lưu điểm danh vào DB
            await _context.StudentCheckIns.AddAsync(studentCheckIn);

            var result = await _context.SaveChangesAsync();

            if (result > 0)
            {
                // Cập nhật trạng thái HS
                var studentUpdateResult = await this.UpdateStatus(studentCheckIn.StudentId, (StudentStatus)request.CheckInResult);

                // Cập nhật trạng thái warning
                var updateWarningResult = await this.UpdateWarningState(studentCheckIn.StudentId, false);

                // Lấy StudentCheckInDto
                var itemCheckIn = await this.GetItemCheckInById(studentCheckIn.Id);

                if (studentUpdateResult != 0 && itemCheckIn != null)
                {
                    return(new ResultDto <StudentCheckInDto>(ResponseCode.Success, "Điểm danh thành công", itemCheckIn));
                }
                return(new ResultDto <StudentCheckInDto>(ResponseCode.LogicError, "Điểm danh thất bại", null));
            }
            else
            {
                return(new ResultDto <StudentCheckInDto>(ResponseCode.LogicError, "Điểm danh thất bại", null));
            }
        }