Ejemplo n.º 1
0
        /// <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);
        }