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