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