public async Task <IActionResult> Review(CourseReview review)
        {
            Course course = await _context.Courses.Include(x => x.CourseReviews).FirstOrDefaultAsync(x => x.Id == review.CourseId);

            if (course == null)
            {
                return(NotFound());
            }


            CourseReview courseReview = new CourseReview
            {
                CreatedAt  = DateTime.UtcNow,
                ModifiedAt = DateTime.UtcNow,
                Email      = review.Email,
                FullName   = review.FullName,
                CourseId   = review.CourseId,
                Subject    = review.Subject,
                Message    = review.Message
            };

            course.CourseReviews.Add(courseReview);

            await _context.SaveChangesAsync();

            return(RedirectToAction("index"));
        }
Beispiel #2
0
        public async Task <IActionResult> AddReview(string CourseId)
        {
            var all_reviews = await _context.CourseReviews.ToListAsync();

            global_courseReview          = new CourseReview();
            global_courseReview.CourseId = CourseId;
            bool alreadyRated = false;
            var  reviews      = await _context.Reviews.ToListAsync();

            foreach (var review in reviews)
            {
                if (review.UserId.Equals(userManager.GetUserId(HttpContext.User)))
                {
                    foreach (var one_review in all_reviews)
                    {
                        if (one_review.ReviewId.Equals(review.Id) && one_review.CourseId.Equals(CourseId))
                        {
                            alreadyRated = true;
                            break;
                        }
                    }
                }
            }
            if (alreadyRated)
            {
                return(View("AlreadyRated"));
            }
            else
            {
                global_Review = new Review();
                global_courseReview.ReviewId = global_Review.Id;
                global_Review.UserId         = userManager.GetUserId(HttpContext.User);
                return(View());
            }
        }
Beispiel #3
0
        public ActionResult Create(CreateReviewBindingModel model)
        {
            try
            {
                if (!this.ModelState.IsValid)
                {
                    this.Response.StatusCode = 400;
                    return(this.Json(this.ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage)));
                }

                var loggedUserId = this.User.Identity.GetUserId();

                var review = new CourseReview
                {
                    AuthorId   = loggedUserId,
                    Comment    = model.Comment,
                    Course     = model.Course,
                    Teacher    = model.Teacher,
                    DatePosted = DateTime.Now
                };

                this.Data.CourseReview.Add(review);
                this.Data.SaveChanges();

                return(this.RedirectToAction("Index"));
            }
            catch
            {
                return(this.RedirectToAction("Index"));
            }
        }
 public ActionResult Review(CourseReview review)
 {
     if (ModelState.IsValid)
     {
         return(RedirectToAction("Index"));
     }
     return(View());
 }
Beispiel #5
0
        public ActionResult DeleteConfirmed(int id)
        {
            CourseReview courseReview = db.CourseReviews.Find(id);

            db.CourseReviews.Remove(courseReview);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Beispiel #6
0
 public ActionResult Edit([Bind(Include = "ID,Rating,Body,CourseID,UserID")] CourseReview courseReview)
 {
     if (ModelState.IsValid)
     {
         db.Entry(courseReview).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(courseReview));
 }
Beispiel #7
0
        public ActionResult Create([Bind(Include = "ID,Rating,Body,CourseID,UserID")] CourseReview courseReview)
        {
            if (ModelState.IsValid)
            {
                db.CourseReviews.Add(courseReview);
                db.SaveChanges();
                return(RedirectToAction("Details", "Courses", new { @id = courseReview.CourseID }));
            }

            return(RedirectToAction("Details", "Courses", new { @id = courseReview.CourseID }));
        }
Beispiel #8
0
 public ActionResult Edit([Bind(Include = "Id,IsBlocked,CourseId,StartCount,Description,CreatedById")] CourseReview courseReview)
 {
     if (ModelState.IsValid)
     {
         db.Entry(courseReview).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.CourseId    = new SelectList(db.Courses, "Id", "Name", courseReview.CourseId);
     ViewBag.CreatedById = new SelectList(db.People, "Id", "UserName", courseReview.CreatedById);
     return(View(courseReview));
 }
Beispiel #9
0
        // GET: CourseReviews/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CourseReview courseReview = db.CourseReviews.Find(id);

            if (courseReview == null)
            {
                return(HttpNotFound());
            }
            return(View(courseReview));
        }
Beispiel #10
0
        public IActionResult Add(int courseId, string title, string content)
        {
            if (!IsValidReview(title, content))
            {
                return(Json("review invalid"));
            }

            var user = UserManager.GetUser(HttpContext.Session);

            var course = _context.Courses.FirstOrDefault(c => c.CourseId == courseId);

            if (course == null)
            {
                return(Json("no such course"));
            }

            var existing = _context.CourseReviews.FirstOrDefault(r => r.CourseId == courseId && r.UserId == user.UserId);

            if (existing != null)
            {
                return(Json("review exists"));
            }

            try
            {
                var time   = DateTime.UtcNow;
                var review = new CourseReview
                {
                    CourseId           = courseId,
                    Title              = title,
                    Content            = content,
                    CreateTime         = time,
                    ModifyTime         = time,
                    Status             = PostStatus.Posted,
                    UserId             = user.UserId,
                    VersionLog         = "",
                    CommentEntryNumber = _context.NewCommentEntryNumber()
                };

                _context.CourseReviews.Add(review);
                _context.SaveChanges();

                return(Json(review.CourseReviewId));
            }
            catch (Exception ex)
            {
                Logger.Exception?.WriteLine(ex.GetExceptionString("CwikiApi", "AddReview"));
                return(Json("failed"));
            }
        }
Beispiel #11
0
        // GET: CourseReviews/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CourseReview courseReview = db.CourseReviews.Find(id);

            if (courseReview == null)
            {
                return(HttpNotFound());
            }
            ViewBag.CourseId    = new SelectList(db.Courses, "Id", "Name", courseReview.CourseId);
            ViewBag.CreatedById = new SelectList(db.People, "Id", "UserName", courseReview.CreatedById);
            return(View(courseReview));
        }
Beispiel #12
0
        public async Task <IActionResult> DeleteReview(int id)
        {
            CourseReview review = await _context.CourseReviews.FirstOrDefaultAsync(x => x.Id == id);

            Course course = await _context.Courses.Include(x => x.CourseReviews).FirstOrDefaultAsync(x => x.Id == review.CourseId);


            if (review == null)
            {
                return(NotFound());
            }

            _context.CourseReviews.Remove(review);
            await _context.SaveChangesAsync();

            return(RedirectToAction("index"));
        }
Beispiel #13
0
        private void AddVersionLog(CourseReview review)
        {
            var sb = new StringBuilder(review.VersionLog);

            sb.AppendLine("<!--logentry start-->");
            sb.AppendLine("### TIME");
            sb.AppendLine();
            sb.AppendLine(review.ModifyTime.ToString("yyyy-MM-dd HH:mm:ss"));
            sb.AppendLine();
            sb.AppendLine("### TITLE");
            sb.AppendLine();
            sb.AppendLine(review.Title);
            sb.AppendLine();
            sb.AppendLine("### CONTENT");
            sb.AppendLine();
            sb.AppendLine(review.Content);
            sb.AppendLine();
            sb.AppendLine("<!--logentry end-->");
            review.VersionLog = sb.ToString();
        }