public IActionResult UpdateProfile(Users user)
        {
            CheckValid valid = new CheckValid();

            try
            {
                valid.IsExistedUsername(user.Username);
                if (valid.IsValid)
                {
                    FaceIOContext context = new FaceIOContext();

                    context.Users.Update(user);

                    context.SaveChanges();

                    return(Ok(new BaseResponse(user, "Update success", true)));
                }

                return(NotFound(new BaseResponse(null, "User not found", false)));
            }
            catch (Exception e)
            {
                return(BadRequest(new BaseResponse(null, e.Message, false)));
            }
        }
        public IActionResult GetProfile(string username)
        {
            CheckValid valid = new CheckValid();

            try
            {
                valid.IsExistedUsername(username);

                if (valid.IsValid)
                {
                    FaceIOContext context = new FaceIOContext();

                    var user = context.Users.Where(x => x.Username == username).FirstOrDefault();

                    if (user != null)
                    {
                        return(Ok(new BaseResponse(user, "Get profile success", true)));
                    }

                    return(NotFound(new BaseResponse(null, "Not found", false)));
                }

                return(NotFound(new BaseResponse(null, "Username not found", false)));
            }
            catch (Exception e)
            {
                return(BadRequest(new BaseResponse(null, e.Message, false)));
            }
        }
        public IActionResult CreateTicket(string studentId, string teacherId, string content)
        {
            CheckValid valid = new CheckValid();

            try
            {
                if (!valid.IsExistedTeacherId(teacherId))
                {
                    valid.IsValid = false;
                }
                if (!valid.IsExistedStudentId(studentId))
                {
                    valid.IsValid = false;
                }

                if (valid.IsValid)
                {
                    var context = new FaceIOContext();
                    var student = context.Users.Where(q => q.Username == studentId).FirstOrDefault();
                    var teacher = context.Teacher.Where(t => t.Id == teacherId).FirstOrDefault();

                    if (student == null || teacher == null || string.IsNullOrEmpty(content))
                    {
                        return(NotFound(new BaseResponse(null, "Teacher or student not found or content is blank", false)));
                    }
                    else
                    {
                        context.Ticket.Add(new Ticket()
                        {
                            Content   = content,
                            StartDate = DateTime.Now,
                            EndDate   = DateTime.Now.AddDays(10),
                            Status    = "Open"
                        });


                        context.SaveChanges();

                        context.StudentTeacherTicket.Add(new StudentTeacherTicket()
                        {
                            StudentId = studentId,
                            TeacherId = teacherId,
                            TicketId  = context.Ticket.Where(t => t.Content == content).FirstOrDefault().Id
                        });

                        context.SaveChanges();
                    }

                    return(Ok(new BaseResponse(null, "Create ticket success", true)));
                }

                return(NotFound(new BaseResponse(null, valid.ErrorMessage, false)));
            }
            catch (Exception e)
            {
                return(BadRequest(new BaseResponse(null, e.Message, false)));
            }
        }
        public StudentStudyAttendance GetAttendance(string studentId, int classSubjectScheduleId,
                                                    int classSubjectId)
        {
            var context = new FaceIOContext();

            var StudentStudy = context.StudentStudy.Where(x => x.StudentId == studentId && x.ClassSubjectId == classSubjectId).FirstOrDefault() as StudentStudy;

            var attendance = context.StudentStudyAttendance.Where(x => x.StudentStudyId == StudentStudy.Id && x.ClassSubjectScheduleId == classSubjectScheduleId).FirstOrDefault();

            return(attendance);
        }
        private List <ClassSubject> GetClassSubjectByStudentId(string studentId)
        {
            var context          = new FaceIOContext();
            var classSubjectId   = context.StudentStudy.Where(s => s.StudentId == studentId).ToList <StudentStudy>();
            var listClassSubject = new List <ClassSubject>();

            foreach (StudentStudy ss in classSubjectId)
            {
                var classSubject = context.ClassSubject.Where(c => c.Id == ss.ClassSubjectId).FirstOrDefault();
                listClassSubject.Add(classSubject);
            }

            return(listClassSubject);
        }
        private List <Schedule> GetScheduleByClassSubjectId(int ClassSubjectId)
        {
            var context = new FaceIOContext();

            var ListClassSubjectSchedule = context.ClassSubjectSchedule.Where(x => x.ClassSubjectId == ClassSubjectId).ToList <ClassSubjectSchedule>();

            var ListSchedule = new List <Schedule>();

            foreach (var ClassSubjectSchedule in ListClassSubjectSchedule)
            {
                var Schedule = context.Schedule.Where(x => x.Id == ClassSubjectSchedule.ScheduleId).FirstOrDefault();
                ListSchedule.Add(Schedule);
            }

            return(ListSchedule);
        }
Exemple #7
0
        public bool IsExistedTeacherId(string teacherId)
        {
            TeacherId = teacherId;

            FaceIOContext context = new FaceIOContext();

            var result = context.Teacher.Where(x => x.Id == TeacherId).FirstOrDefault() != null;

            if (!result)
            {
                ErrorMessageBuilder.Append("Teacher Id is not found \n");
                ErrorMessage = ErrorMessageBuilder.ToString();
            }

            return(result);
        }
Exemple #8
0
        public bool IsExistedUsername(string username)
        {
            Username = username;

            FaceIOContext context = new FaceIOContext();

            var result = context.Users.Where(x => x.Username == Username).FirstOrDefault() != null;

            if (!result)
            {
                ErrorMessageBuilder.Append("Username is not found \n");
                ErrorMessage = ErrorMessageBuilder.ToString();
            }

            return(result);
        }
Exemple #9
0
        public bool IsExistedStudentId(string studentId)
        {
            StudentId = studentId;

            FaceIOContext context = new FaceIOContext();

            var result = context.Student.Where(x => x.Id == StudentId).FirstOrDefault() != null;

            if (!result)
            {
                ErrorMessageBuilder.Append("Student ID is not found \n");
                ErrorMessage = ErrorMessageBuilder.ToString();
            }

            return(result);
        }
        public IActionResult GetTicketByStudentId(string studentId)
        {
            CheckValid valid = new CheckValid();

            try
            {
                if (!valid.IsExistedStudentId(studentId))
                {
                    valid.IsValid = false;
                }

                if (valid.IsValid)
                {
                    var context = new FaceIOContext();


                    var listIdTicket = context.StudentTeacherTicket.Where(x => x.StudentId == studentId).Select(x => x.TicketId)
                                       .ToList();

                    var tickets = context.Ticket.Where(x => listIdTicket.Contains(x.Id)).ToList();

                    var result = new List <Object>();

                    foreach (var ticket in tickets)
                    {
                        result.Add(new
                        {
                            id        = ticket.Id,
                            content   = ticket.Content,
                            startDate = ticket.StartDate,
                            endDate   = ticket.EndDate,
                            status    = ticket.Status,
                            teacherId = context.StudentTeacherTicket.Where(x => x.TicketId == ticket.Id).FirstOrDefault()
                                        .TeacherId
                        });
                    }

                    return(Ok(new BaseResponse(result, "Success", true)));
                }

                return(NotFound(new BaseResponse(null, valid.ErrorMessage, false)));
            }
            catch (Exception e)
            {
                return(BadRequest(new BaseResponse(null, e.Message, false)));
            }
        }
        public IActionResult GetProfiles(string name)
        {
            try
            {
                FaceIOContext context = new FaceIOContext();

                var users = context.Users.Where(x => x.Fullname.Contains(name)).ToList();

                if (users.Count > 0)
                {
                    return(Ok(new BaseResponse(users, "Get profiles success", true)));
                }

                return(NotFound(new BaseResponse(null, "Not found", false)));
            }
            catch (Exception e)
            {
                return(BadRequest(new BaseResponse(null, e.Message, false)));
            }
        }
Exemple #12
0
        public IActionResult Login(string username, string password)
        {
            try
            {
                if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(password))
                {
                    var context = new FaceIOContext();
                    var result  = context.Users.Where(q => q.Username == username && q.Password == password).FirstOrDefault();
                    if (result != null)
                    {
                        return(Ok(new BaseResponse(result, "", true)));
                    }

                    return(NotFound(new BaseResponse(result, "Invalid username or password", false)));
                }

                return(NotFound(new BaseResponse(null, "Username and password cannot be blank", false)));
            }
            catch (Exception e)
            {
                return(BadRequest(new BaseResponse(null, e.Message, false)));
            }
        }
        public IActionResult UpdateTicket(Ticket ticket)
        {
            try
            {
                var context = new FaceIOContext();
                if (ticket == null)
                {
                    return(NotFound(new BaseResponse(null, "Ticket cannot be Null", false)));
                }
                else
                {
                    context.Ticket.Update(ticket);

                    context.SaveChanges();

                    return(Ok(new BaseResponse(null, "Success", true)));
                }
            }
            catch (Exception e)
            {
                return(BadRequest(new BaseResponse(null, e.Message, false)));
            }
        }
        public IActionResult GetStudentStudyAttendance(string studentId, int classSubjectScheduleId, int classSubjectId)
        {
            try
            {
                var context = new FaceIOContext();

                var StudentStudy = context.StudentStudy.Where(x => x.StudentId == studentId && x.ClassSubjectId == classSubjectId).FirstOrDefault() as StudentStudy;

                var attendance = GetAttendance(studentId, classSubjectScheduleId, classSubjectId);

                if (attendance != null)
                {
                    return(Ok(new BaseResponse(attendance, "", true)));
                }
                else
                {
                    return(NotFound(new BaseResponse(attendance, "Attendance failed", false)));
                }
            }
            catch (Exception e)
            {
                return(BadRequest(new BaseResponse(null, "There are some error while getting data", false)));
            }
        }
        public IActionResult UpdateAttendance(string studentId, bool attendance)
        {
            CheckValid valid       = new CheckValid();
            var        timeRequest = DateTime.Now;
            var        slotJoin    = getSlot(timeRequest);
            var        check       = false;

            try
            {
                if (!valid.IsExistedStudentId(studentId))
                {
                    valid.IsValid = false;
                }
                if (valid.StringIsNullOrEmpty(attendance.ToString()))
                {
                    valid.IsValid = false;
                }

                if (valid.IsValid)
                {
                    var listClassSubject = GetClassSubjectByStudentId(studentId);

                    if (listClassSubject.Count > 0)
                    {
                        foreach (var classSubject in listClassSubject)
                        {
                            var ListSchedule = GetScheduleByClassSubjectId(classSubject.Id).Where(x => x.Date == timeRequest.Date);
                            foreach (var schedule in ListSchedule)
                            {
                                if (schedule.Slot == slotJoin)
                                {
                                    var context = new FaceIOContext();
                                    var classSubjectSchedule = context.ClassSubjectSchedule.Where(x =>
                                                                                                  x.ClassSubjectId == classSubject.Id && x.ScheduleId == schedule.Id).FirstOrDefault();

                                    var studentStudyAttendance =
                                        context.StudentStudyAttendance.Where(x =>
                                                                             x.ClassSubjectScheduleId == classSubjectSchedule.Id).FirstOrDefault();

                                    if (studentStudyAttendance != null)
                                    {
                                        studentStudyAttendance.Attendance = true;

                                        context.StudentStudyAttendance.Update(studentStudyAttendance);

                                        context.SaveChanges();

                                        check = true;
                                        break;
                                    }
                                }

                                else
                                {
                                    continue;
                                }
                            }

                            if (check)
                            {
                                break;
                            }
                        }

                        if (check == false)
                        {
                            return(NotFound(new BaseResponse(null, "Attendance failed", false)));
                        }
                        else
                        {
                            return(Ok(new BaseResponse(null, "Update attendance success", true)));
                        }
                    }

                    return(NotFound(new BaseResponse(null, "Not found any subject by student ID", false)));
                }

                return(NotFound(new BaseResponse(null, valid.ErrorMessage, false)));
            }
            catch (Exception e)
            {
                return(BadRequest(new BaseResponse(null, e.Message, false)));
            }
        }