コード例 #1
0
        public IActionResult Create(Course course)
        {
            ViewBag.Categories = _context.Categories.ToList();
            ViewBag.Teachers   = _context.Teachers.ToList();
            ViewBag.Tags       = _context.Tags.ToList();
            if (!_context.Categories.Any(x => x.Id == course.CategoryId))
            {
                ModelState.AddModelError("CategoryId", "Xetaniz var!");
            }
            if (!_context.Teachers.Any(x => x.Id == course.TeacherId))
            {
                ModelState.AddModelError("TeacherId", "Xetaniz var!");
            }


            if (!ModelState.IsValid)
            {
                return(View());
            }
            if (course.ImageFile != null)
            {
                if (course.ImageFile.ContentType != "image/png" && course.ImageFile.ContentType != "image/jpeg")
                {
                    ModelState.AddModelError("ImageFile", "Jpeg ve ya png formatinda file daxil edilmelidir");
                    return(View());
                }
                if (course.ImageFile.Length > (1024 * 1024) * 5)
                {
                    ModelState.AddModelError("ImageFile", "File olcusu 5mb-dan cox olmaz!");
                    return(View());
                }
                string rootPath = _env.WebRootPath;
                var    fileName = Guid.NewGuid().ToString() + course.ImageFile.FileName;
                var    path     = Path.Combine(rootPath, "uploads/course", fileName);
                using (FileStream stream = new FileStream(path, FileMode.Create))
                {
                    course.ImageFile.CopyTo(stream);
                }
                course.Image = fileName;
            }



            if (course.TagIds != null)
            {
                foreach (var tagId in course.TagIds)
                {
                    CourseTags courseTag = new CourseTags
                    {
                        Course = course,
                        TagId  = tagId
                    };
                    _context.CourseTags.Add(courseTag);
                }
            }
            _context.Courses.Add(course);
            _context.SaveChanges();
            return(RedirectToAction("index"));
        }
コード例 #2
0
        public IActionResult Edit(int id, Course course)
        {
            ViewBag.Categories = _context.Categories.ToList();
            ViewBag.Teachers   = _context.Teachers.ToList();
            ViewBag.Tags       = _context.Tags.ToList();

            Course existCourse = _context.Courses.FirstOrDefault(x => x.Id == id);

            if (!_context.Categories.Any(x => x.Id == course.CategoryId))
            {
                return(RedirectToAction("index"));
            }
            if (!_context.Teachers.Any(x => x.Id == course.TeacherId))
            {
                return(RedirectToAction("index"));
            }
            if (existCourse == null)
            {
                return(RedirectToAction("index"));
            }
            if (course.ImageFile != null)
            {
                if (course.ImageFile.ContentType != "image/png" && course.ImageFile.ContentType != "image/jpeg")
                {
                    ModelState.AddModelError("ImageFile", "Jpeg ve ya png formatinda file daxil edilmelidir");
                    return(View());
                }
                if (course.ImageFile.Length > (1024 * 1024) * 5)
                {
                    ModelState.AddModelError("ImageFile", "File olcusu 5mb-dan cox olmaz!");
                    return(View());
                }
                string rootPath = _env.WebRootPath;
                var    fileName = Guid.NewGuid().ToString() + course.ImageFile.FileName;
                var    path     = Path.Combine(rootPath, "uploads/course", fileName);
                using (FileStream stream = new FileStream(path, FileMode.Create))
                {
                    course.ImageFile.CopyTo(stream);
                }
                if (existCourse.Image != null)
                {
                    string existPath = Path.Combine(_env.WebRootPath, "uploads/course", existCourse.Image);
                    if (System.IO.File.Exists(existPath))
                    {
                        System.IO.File.Delete(existPath);
                    }
                }
                existCourse.Image = fileName;
            }

            if (!ModelState.IsValid)
            {
                return(View());
            }

            var existTags = _context.CourseTags.Where(x => x.CourseId == id).ToList();

            if (course.TagIds != null)
            {
                foreach (var tagId in course.TagIds)
                {
                    var existTag = existTags.FirstOrDefault(x => x.TagId == tagId);
                    if (existTag == null)
                    {
                        CourseTags bookTag = new CourseTags
                        {
                            CourseId = id,
                            TagId    = tagId
                        };
                        _context.CourseTags.Add(bookTag);
                    }
                    else
                    {
                        existTags.Remove(existTag);
                    }
                }
            }
            _context.CourseTags.RemoveRange(existTags);

            List <Feature> existFeatures = _context.Features.Where(x => x.CourseId == course.Id).ToList();


            List <Feature> features = course.Features;

            if (features != null)
            {
                _context.Courses.FirstOrDefault(x => x.Id == course.Id).Features = features;
            }
            if (existFeatures != null)
            {
                _context.Features.RemoveRange(existFeatures);
            }

            existCourse.Context       = course.Context;
            existCourse.About         = course.About;
            existCourse.HowToApply    = course.HowToApply;
            existCourse.Certification = course.Certification;
            existCourse.Price         = course.Price;
            existCourse.CategoryId    = course.CategoryId;
            existCourse.TeacherId     = course.TeacherId;
            _context.SaveChanges();

            return(RedirectToAction("index"));
        }