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 IActionResult GetTicketByTeacherId(string teacherId)
        {
            CheckValid valid = new CheckValid();

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

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

                    var listIdTicket = context.StudentTeacherTicket.Where(x => x.TeacherId == teacherId).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,
                            studentId = context.StudentTeacherTicket.Where(x => x.TicketId == ticket.Id).FirstOrDefault()
                                        .StudentId
                        });
                    }

                    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)));
            }
        }