/// <summary> /// To populate the yorbit input list to Request and Course table /// </summary> /// <param name="yorbitInputList"></param> /// <returns></returns> private async Task <Response> PopulateYorbitCourseInputToDB(List <YorbitCourseInput> yorbitCourseInputList) { var response = new Response(); var courses = new List <Course>(); var users = new List <User>(); var evaluatorCourses = new List <EvaluatorCourse>(); foreach (var row in yorbitCourseInputList) { Guid courseGuid = Guid.NewGuid(); Guid evaluatorGuid = Guid.NewGuid(); if (!courses.Any(c => c.YorbitCourseId == row.CourseId)) { var course = new Course { Id = courseGuid, Name = row.CourseName, YorbitCourseId = row.CourseId, BatchType = row.BatchType, CourseType = row.CourseType, Academy = row.Academy }; courses.Add(course); } if (!users.Any(u => u.Mid == row.EvaluatorMID)) { var user = new User { Id = evaluatorGuid, Mid = row.EvaluatorMID, Name = row.EvaluatorName, Location = "Bangalore", Email = row.EvaluatorEmail, RoleId = Constants.EvaluatorRoleId }; users.Add(user); } } response = await _userManager.AddUsersAsEvaluator(users); response = await _courseManager.AddCourses(courses); if (!response.IsSuccess) { response.Message = "File upload failed : Invalid Data Provided "; } else { foreach (var row in yorbitCourseInputList) { Guid evaluatorCourseGuid = Guid.NewGuid(); if (!evaluatorCourses.Any(ec => ec.evaluatorMID == row.EvaluatorMID && ec.CourseId == row.CourseId)) { var evaluatorCourse = new EvaluatorCourse { id = evaluatorCourseGuid, CourseId = row.CourseId, evaluatorMID = row.EvaluatorMID }; evaluatorCourses.Add(evaluatorCourse); } } response = await _userManager.AddEvaluatorCourse(evaluatorCourses); } return(response); }