public bool DuplicateByCourseId(long id, long newCourseId) { var courseCompetencies = GetByCourseId(id); foreach (CourseCompetencies cc in courseCompetencies) { CourseCompetencies ccModel = new CourseCompetencies(); ccModel.courseId = newCourseId; ccModel.title = cc.title; ccModel.description = cc.description; ccModel.userGroupId = cc.userGroupId; ccModel.lessonCompleted = cc.lessonCompleted; ccModel.milestonesReached = cc.milestonesReached; ccModel.assessmentsSubmitted = cc.assessmentsSubmitted; ccModel.final = cc.final; ccModel.createdAt = DateTime.Now; ccModel.updatedAt = DateTime.Now; _context.CourseCompetencies.Add(ccModel); _context.SaveChanges(); foreach (CourseCompetenciesCertificate ccc in cc.CourseCompetenciesCertificate) { CourseCompetenciesCertificate cccModel = new CourseCompetenciesCertificate(); cccModel.courseCompetenciesId = ccModel.id; cccModel.attachment = ccc.attachment; cccModel.createdAt = DateTime.Now; cccModel.updatedAt = DateTime.Now; _context.CourseCompetenciesCertificate.Add(cccModel); _context.SaveChanges(); } } return(true); }
public async Task <IActionResult> Update(long courseCompetenciesId, [FromForm] CourseCompetenciesRequest request) { try { if (courseCompetenciesId == 0) { return(NotFound(_NotFound)); } RequiredFields model = new RequiredFields(); var ccModel = _competenciesRepository.GetById(courseCompetenciesId); ccModel.courseId = request.courseId; ccModel.title = request.title; ccModel.description = request.description; ccModel.userGroupId = request.userGroupId; ccModel.lessonCompleted = request.lessonCompleted; ccModel.milestonesReached = request.milestonesReached; ccModel.assessmentsSubmitted = request.assessmentsSubmitted; ccModel.final = request.final; model.Competencies = ccModel; object validateFields = _validationService.ValidateRequest("Competencies", model); if (JsonConvert.SerializeObject(validateFields).Length > 2) { return(BadRequest(validateFields)); } var checkExists = _context.CourseCompetencies.Where(x => x.id == courseCompetenciesId).Count(); var validateDuplicate = _context.CourseCompetencies.Where(x => x.title == request.title && x.courseId == request.courseId && x.id != courseCompetenciesId).Count(); if (validateDuplicate > 0) { return(BadRequest(new GenericResult { Response = false, Message = request.title + " is already exists" })); } else if (checkExists < 1) { return(NotFound(_NotFound)); } else { //var response = _competenciesRepository.Update(id, request); _context.CourseCompetencies.Update(ccModel); await _context.SaveChangesAsync(); if (request.files != null) { var path = Path.Combine(_hostingEnvironment.WebRootPath, _fileDirectory.virtualDirectory); string competenciesFolder = String.Format("{0}\\Content\\Images\\CourseCompetencies", path); if (!Directory.Exists(competenciesFolder)) { Directory.CreateDirectory(competenciesFolder); } for (int i = 0; i < request.files.Count(); i++) { Stream stream = request.files[i].OpenReadStream(); var id = Guid.NewGuid(); var extension = Path.GetExtension(request.files[i].FileName); var fileName = id.ToString() + extension.ToString().ToLower(); using (var zipStream = new FileStream(Path.Combine(competenciesFolder, fileName), FileMode.Create)) { request.files[i].CopyTo(zipStream); } CourseCompetenciesCertificate cccModel = new CourseCompetenciesCertificate(); cccModel.courseCompetenciesId = courseCompetenciesId; cccModel.attachment = fileName; _context.CourseCompetenciesCertificate.Add(cccModel); await _context.SaveChangesAsync(); } } return(Ok(new GenericResult { Response = true, Message = request.title + " has been successfully updated" })); } } catch (Exception e) { return(BadRequest(e)); } }