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);
        }
Esempio n. 2
0
        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));
            }
        }