public void UpdateSeatingChart(int classId, int markingPeriodId, SeatingChartInfo seatingChartInfo) { var seatingChart = new SeatingChart { Columns = seatingChartInfo.Columns, Rows = seatingChartInfo.Rows, SectionId = classId, }; var stiSeats = new List <Seat>(); var students = ServiceLocator.StudentService.GetClassStudents(classId, markingPeriodId); var defaultStudent = students.FirstOrDefault(x => seatingChartInfo.SeatingList.All(y => y.All(z => z.StudentId != x.Id))); if (defaultStudent == null) { defaultStudent = students.First(); } foreach (var seats in seatingChartInfo.SeatingList) { foreach (var seatInfo in seats) { var seat = new Seat(); if (seatInfo.StudentId.HasValue) { seat.Column = seatInfo.Column; seat.Row = seatInfo.Row; seat.StudentId = seatInfo.StudentId.Value; } else { seat.StudentId = defaultStudent.Id; } stiSeats.Add(seat); } } seatingChart.Seats = stiSeats; SeatingChartStorage.UpdateChart(classId, markingPeriodId, seatingChart); }
public void AddSeatingChart(int mpId, int classId, SeatingChart chart) { chart.SectionId = classId; SeatingChartStorage.Add(new KeyValuePair <int, SeatingChart>(mpId, chart)); }
public SeatingChartInfo GetSeatingChart(int classId, int markingPeriodId) { var seatingChart = SeatingChartStorage.GetChart(classId, markingPeriodId); return(SeatingChartInfo.Create(seatingChart)); }