public async Task <IActionResult> Edit([FromBody] UpdateAndCreateGroupVM model) { if (await _groupService.EditGroup(model)) { return(Ok()); } return(Ok()); }
public async Task <IActionResult> Create([FromBody] UpdateAndCreateGroupVM model) { if (await _groupService.CreateGroup(model)) { return(Ok()); } var invalid = new Dictionary <string, string> { { "group", "Дана група вже створена" } }; return(Ok(invalid)); }
public async Task <bool> EditGroup(UpdateAndCreateGroupVM model) { var group = _context.Groups.Where((item) => item.Id == model.Id).FirstOrDefault(); if (group != null) { if (group.TeacherId != null) { var teacherOld = _context.Teachers.FirstOrDefault((item) => item.Id == group.TeacherId); if (teacherOld != null) { teacherOld.GroupId = null; } } var teacher = _context.Teachers.FirstOrDefault((item) => item.Id == model.TeacherId); if (teacher != null) { teacher.GroupId = group.Id; } var oldStudents = _context.Students.Where((item) => item.GroupId == group.Id).ToList(); foreach (var student in oldStudents) { student.GroupId = null; } foreach (var id in model.StudentsId) { var student = _context.Students.SingleOrDefault((item) => item.Id == id); if (student != null) { student.GroupId = group.Id; } } group.Name = model.Name; group.TeacherId = model.TeacherId; await _context.SaveChangesAsync(); return(true); } return(false); }
public async Task <bool> CreateGroup(UpdateAndCreateGroupVM model) { var group = _context.Groups.Where((item) => item.Name == model.Name).FirstOrDefault(); if (group is null) { group = new Group { Name = model.Name, TeacherId = model.TeacherId, SchoolId = model.SchoolId }; _context.Groups.Add(group); await _context.SaveChangesAsync(); var teacher = _context.Teachers.FirstOrDefault((item) => item.Id == model.TeacherId); if (teacher != null) { teacher.GroupId = group.Id; await _context.SaveChangesAsync(); } foreach (var id in model.StudentsId) { var student = _context.Students.SingleOrDefault((item) => item.Id == id); if (student != null) { student.GroupId = group.Id; } } await _context.SaveChangesAsync(); return(true); } return(false); }