public ExamSuiteGroup AddExamSuiteGruop(string SubjectId, [FromBody] ExamSuiteGroup examsuitegroup) { if (examsuitegroup == null) { return(null); } //TODO: return false if ExamSuiteGroupName exist var _subject = repoForApprove.GetInActiveSubject(SubjectId); var _examSuites = repoQ.GetAllQuestionSuiteBySubjectId(SubjectId); // GetallSuite Create NewExamSuiteGruopMap var _examSuitIdInSubject = _examSuites.Select(x => new InActive.ExamSuiteGroupMap { _id = repoForApprove.GetNewGuid("").ToString(), ExamSuiteId = x._id, RandomCount = 0, }).ToList(); // Create NewExamSuiteGruop to InActiveSubject var newExamsuitegroup = new InActive.ExamSuiteGroup() { _id = examsuitegroup.ExamSuiteGroupName, ExamSuiteGroupName = examsuitegroup.ExamSuiteGroupName, PassScore = examsuitegroup.PassScore, ExamDuration = examsuitegroup.ExamDuration, ExamSuiteGroupMaps = _examSuitIdInSubject, IsUsed = examsuitegroup.IsUsed, }; if (_subject.ExamSuiteGroups == null) { _subject.ExamSuiteGroups = new List <InActive.ExamSuiteGroup>(); } _subject.ExamSuiteGroups.Add(newExamsuitegroup); repoForApprove.UpsertInactiveSubject(_subject); examsuitegroup.id = newExamsuitegroup._id; examsuitegroup.ExamSuiteGroupMaps = _examSuitIdInSubject.Select(x => new ExamSuiteGroupMap() { id = x._id, ExamSuiteId = x.ExamSuiteId, RandomCount = x.RandomCount, ExamSuiteGroupId = newExamsuitegroup._id, SubjectId = SubjectId, }); return(examsuitegroup); }