public async Task <ActionResult <IEnumerable <LearnerDto> > > GetLearners() { List <LearnerDto> learnersDto = new List <LearnerDto>(); var learners = await _context.Learners .Include(l => l.LearnerGroup.Group) .Include(l => l.LearnerCourses) .Include(l => l.User) .Include(l => l.User.Type) .Include(l => l.User.Organisation) .ToListAsync(); // if (learners == null) return null; foreach (var learner in learners) { var learnerDto = new LearnerDto { UserId = learner.User.Id, LearnerId = learner.LearnerId, Username = learner.User.Username, Group = learner.LearnerGroup == null ? null : new GroupDto { Id = learner.LearnerGroup.Group.Id, Name = learner.LearnerGroup.Group.Name }, Firstname = learner.User.Firstname, Lastname = learner.User.Lastname, Organisation = learner.User.Organisation }; foreach (var learnerCourse in learner.LearnerCourses) { var course = await _context.Courses.FirstOrDefaultAsync(c => c.Id == learnerCourse.CourseId); learnerDto.Courses.Add(new CourseDto { Id = course.Id, Name = course.Name, IconPath = course.IconPath }); } learnersDto.Add(learnerDto); } return(learnersDto); }
public async Task <IActionResult> ImportLearners(IFormFile file) { var fileExtension = Path.GetExtension(file.FileName).ToUpper(); if (fileExtension != ".XLSX") { return(BadRequest("File type not supported, please upload Excel Package")); } if (file.Length <= 0) { return(BadRequest("Invalid File")); } using (var package = new ExcelPackage(file.OpenReadStream())) { var workbook = package.Workbook; var worksheet = workbook.Worksheets.First(); var rowStart = worksheet.Dimension.Start.Row; var rowEnd = worksheet.Dimension.End.Row; var columnEnd = worksheet.Dimension.End.Column; var columns = new List <string>(); for (int col = 1; col <= columnEnd; col++) { var columnName = Convert.ToString(worksheet.Cells[rowStart, col].Value); if (columns.Contains(columnName)) { return(BadRequest("Duplicate column name")); } columns.Add(columnName); } var dataLearners = new List <LearnerDto>(); for (int row = rowStart + 1; row <= rowEnd; row++) { var learner = new LearnerDto() { Email = worksheet.Cells[row, 1].Value.ToString(), FullName = worksheet.Cells[row, 1].Value.ToString(), Password = worksheet.Cells[row, 1].Value.ToString() }; dataLearners.Add(learner); } return(Ok(dataLearners.Count)); } }