public void UpdateTranscripts(List <AcademicTranscript> transcripts)
        {
            var ids     = transcripts.Select(t => t.Id).ToList();
            var origins = repository.GetTranscripts(ids);

            if (origins.Count != transcripts.Count)
            {
                throw new Exception("Wrong infomation of transcript");
            }
            Dictionary <int, AcademicTranscript> originMap = new Dictionary <int, AcademicTranscript>();

            origins.ForEach(at => originMap.Add(at.Id, at));
            transcripts.ForEach(at =>
            {
                AcademicTranscript origin = null;
                if (originMap.TryGetValue(at.Id, out origin))
                {
                    origin.Score = at.Score;
                }
                else
                {
                    throw new Exception("Not found a specific row of transcript");
                }
            });
            repository.UpdateTranscripts(origins);
        }