コード例 #1
0
ファイル: Delete.cshtml.cs プロジェクト: Amorpheuz/GadgetCMS
        public async Task <IActionResult> OnPostAsync()
        {
            string userId    = Review.UserId;
            int    articleId = Review.ArticleId;

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

            var user = await _userManager.GetUserAsync(User);


            if (user.Id == userId)
            {
                Review = await _context.Review.FindAsync(userId, articleId);

                if (Review != null)
                {
                    _context.Review.Remove(Review);
                    logger.Info("{user} removed review on article carrying - id {id} on {date}", user.Email, articleId, DateTime.Now);
                    await _context.SaveChangesAsync();
                }

                return(RedirectToPage("/Article/Details", new { id = articleId }));
            }
            return(NotFound());
        }
コード例 #2
0
 private static Data.Review CreateDbReview(ReviewViewModel newReview)
 {
     Data.Review dbNewReview = new Data.Review();
     dbNewReview.ProductId = newReview.ProductId;
     dbNewReview.LengthOfUse = newReview.LengthOfUse;
     dbNewReview.UserId = newReview.User;
     dbNewReview.StarRating = newReview.Rating;
     dbNewReview.Review1 = FormInputHelper.StripInput(newReview.ReviewText);
     return dbNewReview;
 }
コード例 #3
0
        public static Data.Review ToDataRev(Review webRestaurant)
        {
            var dataRestaurant = new Data.Review()
            {
                ID       = webRestaurant.ID,
                Rating   = webRestaurant.Rating,
                CustName = webRestaurant.CustName,
                RestID   = webRestaurant.RestID
            };

            return(dataRestaurant);
        }
コード例 #4
0
        public static Review ToWebRev(Data.Review dataRestaurant)
        {
            var webReview = new Review()
            {
                ID       = dataRestaurant.ID,
                Rating   = dataRestaurant.Rating,
                CustName = dataRestaurant.CustName,
                RestID   = dataRestaurant.RestID.GetValueOrDefault()
            };

            return(webReview);
        }
コード例 #5
0
        public static Review RevToWeb(Data.Review dataReview)
        {
            var webReview = new Review()
            {
                ReviewId     = dataReview.ReviewId,
                RestaurantId = dataReview.RestaurantId,
                Rating       = dataReview.Rating,
                Username     = dataReview.Username,
                Comment      = dataReview.Comment
            };

            return(webReview);
        }
コード例 #6
0
ファイル: Details.cshtml.cs プロジェクト: Amorpheuz/GadgetCMS
        public async Task <IActionResult> OnGetAsync(int?id, string userEmail)
        {
            if (userEmail == null || id == null)
            {
                return(NotFound());
            }

            Review = await _context.Review
                     .Include(r => r.Article)
                     .Include(r => r.GadgetCmsUser).FirstOrDefaultAsync(m => m.ArticleId == id && m.GadgetCmsUser.Email == userEmail);

            if (Review == null)
            {
                return(NotFound());
            }
            return(Page());
        }
コード例 #7
0
ファイル: Delete.cshtml.cs プロジェクト: Amorpheuz/GadgetCMS
        public async Task <IActionResult> OnGetModDeleteAsync(int?id, string userEmail, string actionType)
        {
            if (userEmail == null || id == null)
            {
                return(NotFound());
            }

            var user = await _userManager.FindByEmailAsync(userEmail);

            var userId = user.Id;

            var userIsAdmin = await _userManager.IsInRoleAsync(user, "Admin");

            var userIsMod = await _userManager.IsInRoleAsync(user, "Moderator");

            if (userIsAdmin || userIsMod)
            {
                Review = await _context.Review.FindAsync(userId, id);

                if (Review != null)
                {
                    if (actionType == "delete")
                    {
                        Review.ReviewVisible = false;
                    }
                    else if (actionType == "undo")
                    {
                        Review.ReviewVisible = true;
                    }
                    _context.Attach(Review).State = EntityState.Modified;
                    await _context.SaveChangesAsync();
                }

                return(RedirectToPage("/Reviews", new { area = "Dashboard" }));
            }
            return(NotFound());
        }
コード例 #8
0
ファイル: Delete.cshtml.cs プロジェクト: Amorpheuz/GadgetCMS
        public async Task <IActionResult> OnGetAsync(int?id, string userEmail)
        {
            if (userEmail == null)
            {
                return(NotFound());
            }

            Review = await _context.Review
                     .Include(r => r.Article)
                     .Include(r => r.GadgetCmsUser).FirstOrDefaultAsync(m => m.ArticleId == id && m.GadgetCmsUser.Email == userEmail);

            var user = await _userManager.GetUserAsync(User);

            if (user.Id != Review.UserId)
            {
                return(RedirectToPage("./Details", new { id, userEmail }));
            }

            if (Review == null)
            {
                return(NotFound());
            }
            return(Page());
        }