public int Update(long id, CourseOutline request) { CourseOutline model = GetById(id); var validate = isExistsById(id, request); if (model == null) { return(0); } else if (validate == true) { return(1); } model.title = request.title; model.courseId = request.courseId; model.userGroupId = request.userGroupId; model.visibility = request.visibility; model.featureImage = request.featureImage; model.interactiveVideo = request.interactiveVideo; model.duration = request.duration; model.description = request.description; model.updatedAt = DateTime.Now; Save(); return(2); }
public bool Add(CourseOutline request) { var output = false; var validate = isExists(request); if (validate == false) { request.createdAt = DateTime.Now; request.updatedAt = DateTime.Now; _context.CourseOutline.Add(request); Save(); output = true; } return(output); }
private bool isExists(CourseOutline request) { return(_context.CourseOutline.Where(x => x.title == request.title && x.courseId == request.courseId).Any()); }
private bool isExistsById(long id, CourseOutline request) { return(_context.CourseOutline.Where(x => x.title == request.title && x.userGroupId == request.userGroupId && x.id != id).Any()); }
public async Task <IActionResult> Store([FromForm] CourseOutlineRequest request) { try { if (_userRepository.LogCurrentUser().canCreate == false) { return(Unauthorized(_UnAuthorized)); } CourseOutline model = new CourseOutline(); model.title = request.title; model.courseId = request.courseId; model.userGroupId = request.userGroupId; model.visibility = request.visibility; model.duration = request.duration; model.description = request.description; model.Course = request.Course; model.UserGroup = request.UserGroup; RequiredFields modelRequest = new RequiredFields(); modelRequest.CourseOutline = model; object validateFields = _validationService.ValidateRequest("Course Outline", modelRequest); if (JsonConvert.SerializeObject(validateFields).Length > 2) { return(BadRequest(validateFields)); } var checkExists = _context.CourseOutline.Where(x => x.title == request.title && x.courseId == request.courseId).Any(); if (checkExists == true) { return(BadRequest(new GenericResult { Response = false, Message = request.title + " is already exists" })); } if (request.featureImage != null) { if (request.featureImage.Length > 0) { Stream stream = request.featureImage.OpenReadStream(); var path = Path.Combine(_hostingEnvironment.WebRootPath, _fileDirectory.virtualDirectory); string courseOutlineImageFolder = String.Format("{0}\\Content\\Images\\CourseOutline", path); if (!Directory.Exists(courseOutlineImageFolder)) { Directory.CreateDirectory(courseOutlineImageFolder); } var id = Guid.NewGuid(); var extension = Path.GetExtension(request.featureImage.FileName); var fileName = id.ToString() + extension.ToString().ToLower(); using (var zipStream = new FileStream(Path.Combine(courseOutlineImageFolder, fileName), FileMode.Create)) { request.featureImage.CopyTo(zipStream); } model.featureImage = fileName; } } if (request.interactiveVideo != null) { if (request.interactiveVideo.Length > 0) { Stream stream = request.interactiveVideo.OpenReadStream(); var path = Path.Combine(_hostingEnvironment.WebRootPath, _fileDirectory.virtualDirectory); string courseOutlineVideoFolder = String.Format("{0}\\Content\\Video\\CourseOutline", path); if (!Directory.Exists(courseOutlineVideoFolder)) { Directory.CreateDirectory(courseOutlineVideoFolder); } var idVideo = Guid.NewGuid(); var extension = Path.GetExtension(request.interactiveVideo.FileName); var fileNameVideo = idVideo.ToString() + extension.ToString().ToLower(); model.interactiveVideo = idVideo.ToString(); using (var zipStream = new FileStream(Path.Combine(courseOutlineVideoFolder, fileNameVideo), FileMode.Create)) { request.interactiveVideo.CopyTo(zipStream); using (var archive = new ZipArchive(zipStream, ZipArchiveMode.Read)) { archive.ExtractToDirectory(Path.Combine(courseOutlineVideoFolder, idVideo.ToString())); } } } } _context.CourseOutline.Add(model); await _context.SaveChangesAsync(); // start: Course Outline Prerequisite if (request.CourseOutlinePrerequisite != null) { for (int copKey = 0; request.CourseOutlinePrerequisite.Count() > copKey; copKey++) { CourseOutlinePrerequisite copModel = new CourseOutlinePrerequisite(); copModel.courseOutlineId = model.id; copModel.courseId = request.courseId; copModel.preRequisiteId = request.CourseOutlinePrerequisite[copKey].preRequisiteId; _context.CourseOutlinePrerequisite.Add(copModel); await _context.SaveChangesAsync(); } } // start: Course Outline Milestone if (request.CourseOutlineMilestone != null) { for (int comKey = 0; request.CourseOutlineMilestone.Count() > comKey; comKey++) { CourseOutlineMilestone comModel = new CourseOutlineMilestone(); comModel.courseOutlineId = model.id; comModel.courseId = request.courseId; comModel.name = request.CourseOutlineMilestone[comKey].name; comModel.lessonCompleted = request.CourseOutlineMilestone[comKey].lessonCompleted; if (request.CourseOutlineMilestoneResourceFile != null) { if (request.CourseOutlineMilestoneResourceFile[comKey].Length > 0) { Stream stream = request.CourseOutlineMilestoneResourceFile[comKey].OpenReadStream(); var path = Path.Combine(_hostingEnvironment.WebRootPath, _fileDirectory.virtualDirectory); string courseOutlineMilestoneVideoFolder = String.Format("{0}\\Content\\Video\\CourseOutlineMilestone", path); if (!Directory.Exists(courseOutlineMilestoneVideoFolder)) { Directory.CreateDirectory(courseOutlineMilestoneVideoFolder); } var milestoneId = Guid.NewGuid(); var extension = Path.GetExtension(request.CourseOutlineMilestoneResourceFile[comKey].FileName); var milestoneFileName = milestoneId.ToString() + extension.ToString().ToLower(); using (var zipStream = new FileStream(Path.Combine(courseOutlineMilestoneVideoFolder, milestoneFileName), FileMode.Create)) { request.CourseOutlineMilestoneResourceFile[comKey].CopyTo(zipStream); } comModel.resourceFile = milestoneFileName; } } _context.CourseOutlineMilestone.Add(comModel); await _context.SaveChangesAsync(); } } // start: Course Outline Media if (request.CourseOutlineMediaFile != null) { for (int cofKey = 0; request.CourseOutlineMediaFile.Count() > cofKey; cofKey++) { CourseOutlineMedia cofModel = new CourseOutlineMedia(); cofModel.courseOutlineId = model.id; cofModel.courseId = request.courseId; if (request.CourseOutlineMediaFile[cofKey].Length > 0) { Stream stream = request.CourseOutlineMediaFile[cofKey].OpenReadStream(); var path = Path.Combine(_hostingEnvironment.WebRootPath, _fileDirectory.virtualDirectory); string courseOutlineMediaFolder = String.Format("{0}\\Content\\Video\\CourseOutlineMedia", path); if (!Directory.Exists(courseOutlineMediaFolder)) { Directory.CreateDirectory(courseOutlineMediaFolder); } var mediaId = Guid.NewGuid(); var extension = Path.GetExtension(request.CourseOutlineMediaFile[cofKey].FileName); var mediaFileName = mediaId.ToString() + extension.ToString().ToLower(); using (var zipStream = new FileStream(Path.Combine(courseOutlineMediaFolder, mediaFileName), FileMode.Create)) { request.CourseOutlineMediaFile[cofKey].CopyTo(zipStream); } cofModel.resourceFile = mediaFileName; } _context.CourseOutlineMedia.Add(cofModel); await _context.SaveChangesAsync(); } } return(Ok(new GenericResult { Response = true, Message = request.title + " has been successfully created" })); } catch (Exception e) { return(BadRequest(e)); } }