Esempio n. 1
0
        public void CanUpdateUserRating()
        {
            DbContextOptions <SwitchbackAPIDbContext> options = new DbContextOptionsBuilder <SwitchbackAPIDbContext>().UseInMemoryDatabase("CanCreateCourse").Options;

            using (SwitchbackAPIDbContext context = new SwitchbackAPIDbContext(options))
            {
                // Arrange
                UserRatings rating11 = new UserRatings();
                rating11.ID          = 11;
                rating11.TrailInfoID = 1;
                rating11.Rating      = 4;


                context.Add(rating11);
                context.SaveChanges();

                rating11.Rating = 5;
                context.Update(rating11);
                context.SaveChanges();

                // Act
                var result = context.UserRatings.FirstOrDefault(m => m.ID == rating11.ID);

                // Assert

                Assert.Equal(result, rating11);
            };
        }
Esempio n. 2
0
        public void CanGetOneUserRatingFromThree_Middle()
        {
            DbContextOptions <SwitchbackAPIDbContext> options = new DbContextOptionsBuilder <SwitchbackAPIDbContext>().UseInMemoryDatabase("CanCreateCourse").Options;

            using (SwitchbackAPIDbContext context = new SwitchbackAPIDbContext(options))
            {
                // Arrange
                UserRatings rating5 = new UserRatings();
                rating5.ID          = 5;
                rating5.TrailInfoID = 1;
                rating5.Rating      = 4;
                UserRatings rating6 = new UserRatings();
                rating6.ID          = 6;
                rating6.TrailInfoID = 1;
                rating6.Rating      = 3;
                UserRatings rating7 = new UserRatings();
                rating7.ID          = 7;
                rating7.TrailInfoID = 1;
                rating7.Rating      = 2;

                context.Add(rating5);
                context.Add(rating6);
                context.Add(rating7);
                context.SaveChanges();

                // Act
                var result = context.UserRatings.FirstOrDefault(m => m.ID == rating6.ID);

                // Assert

                Assert.Equal(result, rating6);
            };
        }
Esempio n. 3
0
        public void CanGetOneUserRatingFromThree_End()
        {
            DbContextOptions <SwitchbackAPIDbContext> options = new DbContextOptionsBuilder <SwitchbackAPIDbContext>().UseInMemoryDatabase("CanCreateCourse").Options;

            using (SwitchbackAPIDbContext context = new SwitchbackAPIDbContext(options))
            {
                // Arrange
                UserRatings rating8 = new UserRatings();
                rating8.ID          = 8;
                rating8.TrailInfoID = 3;
                rating8.Rating      = 4;
                UserRatings rating9 = new UserRatings();
                rating9.ID          = 9;
                rating9.TrailInfoID = 3;
                rating9.Rating      = 3;
                UserRatings rating10 = new UserRatings();
                rating10.ID          = 10;
                rating10.TrailInfoID = 3;
                rating10.Rating      = 2;

                context.Add(rating8);
                context.Add(rating9);
                context.Add(rating10);
                context.SaveChanges();

                // Act
                var result = context.UserRatings.FirstOrDefault(m => m.ID == rating10.ID);

                // Assert

                Assert.Equal(result, rating10);
            };
        }
Esempio n. 4
0
        public void CanGetOneUserRatingFromThree_Begining()
        {
            DbContextOptions <SwitchbackAPIDbContext> options = new DbContextOptionsBuilder <SwitchbackAPIDbContext>().UseInMemoryDatabase("CanCreateCourse").Options;

            using (SwitchbackAPIDbContext context = new SwitchbackAPIDbContext(options))
            {
                // Arrange
                UserRatings rating2 = new UserRatings();
                rating2.ID          = 2;
                rating2.TrailInfoID = 2;
                rating2.Rating      = 4;
                UserRatings rating3 = new UserRatings();
                rating3.ID          = 3;
                rating3.TrailInfoID = 2;
                rating3.Rating      = 3;
                UserRatings rating4 = new UserRatings();
                rating4.ID          = 4;
                rating4.TrailInfoID = 2;
                rating4.Rating      = 2;

                context.Add(rating2);
                context.Add(rating3);
                context.Add(rating4);
                context.SaveChanges();

                // Act
                var result = context.UserRatings.FirstOrDefault(m => m.ID == rating2.ID);

                // Assert

                Assert.Equal(result, rating2);
            };
        }
Esempio n. 5
0
        public ActionResult AddRating(RatingViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Json(new { success = false }));
            }
            var userid     = HttpContext.GetOwinContext().Authentication.User.Identity.GetUserId();
            var userRating = new UserRatings {
                UserId = userid, CategoryItemID = model.ItemId, UserRating = Convert.ToDouble(model.Rating)
            };
            var ratedBefore = _db.UserRatings.Where(e => e.UserId == userid).FirstOrDefault(i => i.CategoryItemID == model.ItemId);

            if (ratedBefore != null)
            {
                _db.UserRatings.Remove(ratedBefore);
            }

            try
            {
                _db.UserRatings.Add(userRating);
                _db.UsersLastMoves.Add(new UsersLastMoves {
                    MoveDate = DateTime.Now, UserId = userRating.UserId, UsersLastMoveText = " bir öğeyi değerlendirdi.", UsersMoveLink = "/users/interests/" + userRating.UserId
                });
                _db.SaveChanges();
                return(Json(new { success = true }));
            }
            catch (Exception)
            {
                return(Json(new { success = false }));
            }
        }
Esempio n. 6
0
        public ActionResult createRating(string userId, string type)
        {
            var model = new UserRatings();

            model.UserId = userId;
            model.rating = 0;
            db.UserRatings.Add(model);
            db.SaveChanges();

            //dodavanje nova slika
            userImages newUserImage = new userImages();

            newUserImage.image  = "defaultUser.png";
            newUserImage.UserId = userId;
            db.userImages.Add(newUserImage);
            db.SaveChanges();

            if (type == "user")
            {
                return(View());
            }
            else
            {
                return(RedirectToAction("approveIndex", "Posts"));
            }
        }
Esempio n. 7
0
        public ActionResult userProfile(string userId, int?favPosts, int?userPosts)
        {
            if (userId == null)
            {
                return(RedirectToAction("accessDenied", "Partial"));
            }
            ApplicationUser user         = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>().FindById(userId);
            var             userPostsAll = db.Posts.Where(x => x.approved == true && x.UserId == user.Id).OrderBy(x => x.CreatedDate).ToList();
            UserRatings     ratingTable  = db.UserRatings.Where(x => x.UserId == userId).FirstOrDefault();
            var             userImages   = db.userImages.Where(x => x.UserId == userId).FirstOrDefault();
            var             favorites    = db.Favorites.Where(x => x.userId == user.Id).ToList();

            var favoritePostsAll = new List <Posts>();

            foreach (var item in favorites)
            {
                var post = db.Posts.Where(x => x.Id == item.postId).FirstOrDefault();
                favoritePostsAll.Add(post);
            }

            if (userPostsAll.Count > 0)
            {
                if (userPostsAll.Count() > 8)
                {
                    ViewBag.showUserPosts = "yes";
                }
            }
            if (favoritePostsAll.Count > 0)
            {
                if (favoritePostsAll.Count() > 8)
                {
                    ViewBag.showFavPosts = "yes";
                }
            }


            int pageSize   = 8;
            int favNumber  = (favPosts ?? 1);
            int userNumber = (userPosts ?? 1);

            var model = new userProfileViewModel()
            {
                UserId           = user.Id,
                UserName         = user.UserName,
                rating           = ratingTable.rating,
                image            = userImages.image,
                numPosts         = userPostsAll.Count(),
                userPostsAll     = userPostsAll.ToPagedList(userNumber, pageSize),
                favoritePostsAll = favoritePostsAll.ToPagedList(favNumber, pageSize),
            };

            ViewBag.favNumber  = favNumber;
            ViewBag.userNumber = userNumber;

            return(View(model));
        }
Esempio n. 8
0
        public IActionResult Get(int id)
        {
            UserRatings userRatings = _userRatings.GetByID(id);

            if (userRatings == null)
            {
                return(NotFound());
            }
            return(Ok(userRatings));
        }
        /// <summary>
        /// (Update) Edits the User Rating of the Trail
        /// </summary>
        /// <param name="id">User Rating ID</param>
        /// <param name="userRatings">User Rating row</param>
        /// <returns></returns>
        public async Task EditRating(int id, UserRatings userRatings)
        {
            UserRatings userRating = GetByID(id);

            userRating.ID          = userRatings.ID;
            userRating.TrailInfoID = userRatings.TrailInfoID;
            userRating.Rating      = userRatings.Rating;

            _context.UserRatings.Update(userRating);
            await _context.SaveChangesAsync();
        }
Esempio n. 10
0
 public async Task <IActionResult> Post([FromBody] UserRatings userRatings)
 {
     if (userRatings.ID <= 0)
     {
         await _userRatings.AddRating(userRatings);
     }
     else
     {
         await Put(userRatings.ID, userRatings);
     }
     return(RedirectToAction("Get", new { id = userRatings.ID }));
 }
Esempio n. 11
0
        public async Task <IActionResult> Put(int id, [FromBody] UserRatings userRatings)
        {
            UserRatings userRating = _userRatings.GetByID(id);

            if (userRating != null)
            {
                await _userRatings.EditRating(id, userRating);
            }
            else
            {
                await Post(userRating);
            }
            return(RedirectToAction("Get", new { id = userRating.ID }));
        }
Esempio n. 12
0
        public Details()
        {
            Width        = BeatmapSetOverlay.RIGHT_WIDTH;
            AutoSizeAxes = Axes.Y;
            Spacing      = new Vector2(1f);

            Children = new Drawable[]
            {
                preview = new PreviewButton
                {
                    RelativeSizeAxes = Axes.X,
                },
                new DetailBox
                {
                    Child = basic = new BasicStats
                    {
                        RelativeSizeAxes = Axes.X,
                        AutoSizeAxes     = Axes.Y,
                        Margin           = new MarginPadding {
                            Vertical = 10
                        },
                    },
                },
                new DetailBox
                {
                    Child = advanced = new AdvancedStats
                    {
                        RelativeSizeAxes = Axes.X,
                        AutoSizeAxes     = Axes.Y,
                        Margin           = new MarginPadding {
                            Vertical = 7.5f
                        },
                    },
                },
                new DetailBox
                {
                    Child = ratings = new UserRatings
                    {
                        RelativeSizeAxes = Axes.X,
                        Height           = 95,
                        Margin           = new MarginPadding {
                            Top = 10
                        },
                    },
                },
            };
        }
Esempio n. 13
0
        public TransactionResult CommentOffer(string offerId, string rateValue, string rateComment)
        {
            try
            {
                var offer = _dbContext.Offer
                            .Include(i => i.Item)
                            .FirstOrDefault(i => i.Id == new Guid(offerId));

                if (offer != null)
                {
                    offer.IsRated = true;

                    var itemUserRating = new UserRatings()
                    {
                        Id            = Guid.NewGuid(),
                        ItemId        = offer.ItemId,
                        WinnerOfferId = offer.Id,
                        UserId        = offer.UserId,
                        Comment       = rateComment,
                        RateValue     = getRateValue(rateValue)
                    };

                    _dbContext.UserRatings.Add(itemUserRating);
                    _dbContext.SaveChanges();

                    calculateUserRating(offer.UserId);
                }
                else
                {
                    return(new TransactionResult(message: "Teklif bulunamadı. Lütfen tekrar deneyiniz.", type: TransactionType.Error));
                }

                return(new TransactionResult()
                {
                    Type = TransactionType.Success
                });
            }
            catch (Exception ex)
            {
                return(new TransactionResult(message: "Beklenmedik bir hata oluştu. Lütfen tekrar deneyiniz.", type: TransactionType.Error));
            }
        }
Esempio n. 14
0
        public Response <List <UserRatings> > GetCourtRatings(GetCourtByIdRequest request)
        {
            var response      = new Response <List <UserRatings> >();
            var pagedResponse = new List <UserRatings>();
            var getRatings    = _ratingRepository.GetAll <Ratings>(includeProperties: $"{nameof(Ratings.User)}").Where(x => x.CourtId == request.CourtId).ToList();

            if (getRatings == null)
            {
                _logger.LogError("no ratings found");
                response.Messages.Add(new ResponseMessage
                {
                    Type    = Contracts.Enums.ResponseMessageEnum.Exception,
                    Message = "the court does not exist",
                });
                response.Status = System.Net.HttpStatusCode.NotFound;
            }
            getRatings.ForEach(x =>
            {
                var userRating = new UserRatings()
                {
                    Email     = x.User.Email,
                    UserName  = x.User.UserName,
                    FirstName = x.User.FirstName,
                    LastName  = x.User.LastName,
                    Id        = x.User.Id,
                    Comment   = x.Comment,
                    Rate      = x.Rate
                };
                pagedResponse.Add(userRating);
            });

            _logger.LogInfo("user ratings returned");
            response.Payload = pagedResponse;
            response.Status  = System.Net.HttpStatusCode.OK;
            return(response);
        }
        /// <summary>
        /// (Read) Lists a User Rating by ID
        /// </summary>
        /// <param name="id">User Rating ID</param>
        /// <returns></returns>
        public UserRatings GetByID(int id)
        {
            UserRatings userRating = _context.UserRatings.Find(id);

            return(userRating);
        }
 /// <summary>
 /// (Create) Adds and assigns User Rating to a Trail ID
 /// </summary>
 /// <param name="userRatings">UserRating</param>
 /// <returns></returns>
 public async Task AddRating(UserRatings userRatings)
 {
     _context.UserRatings.Add(userRatings);
     await _context.SaveChangesAsync();
 }
Esempio n. 17
0
 public BeatmapDetails()
 {
     Children = new Drawable[]
     {
         new Box
         {
             RelativeSizeAxes = Axes.Both,
             Colour           = Color4.Black.Opacity(0.5f),
         },
         new Container
         {
             RelativeSizeAxes = Axes.Both,
             Padding          = new MarginPadding {
                 Horizontal = spacing
             },
             Children = new Drawable[]
             {
                 top = new FillFlowContainer
                 {
                     RelativeSizeAxes = Axes.X,
                     AutoSizeAxes     = Axes.Y,
                     Direction        = FillDirection.Horizontal,
                     Children         = new Drawable[]
                     {
                         statsFlow = new FillFlowContainer
                         {
                             RelativeSizeAxes = Axes.X,
                             AutoSizeAxes     = Axes.Y,
                             Width            = 0.5f,
                             Spacing          = new Vector2(spacing),
                             Padding          = new MarginPadding {
                                 Right = spacing / 2
                             },
                             Children = new[]
                             {
                                 new DetailBox
                                 {
                                     Child = advanced = new AdvancedStats
                                     {
                                         RelativeSizeAxes = Axes.X,
                                         AutoSizeAxes     = Axes.Y,
                                         Padding          = new MarginPadding {
                                             Horizontal = spacing, Top = spacing * 2, Bottom = spacing
                                         },
                                     },
                                 },
                                 ratingsContainer = new DetailBox
                                 {
                                     Child = ratings = new UserRatings
                                     {
                                         RelativeSizeAxes = Axes.X,
                                         Height           = 134,
                                         Padding          = new MarginPadding {
                                             Horizontal = spacing, Top = spacing
                                         },
                                     },
                                 },
                             },
                         },
                         metadataScroll = new ScrollContainer
                         {
                             RelativeSizeAxes = Axes.X,
                             Width            = 0.5f,
                             ScrollbarVisible = false,
                             Padding          = new MarginPadding {
                                 Left = spacing / 2
                             },
                             Child = new FillFlowContainer
                             {
                                 RelativeSizeAxes = Axes.X,
                                 AutoSizeAxes     = Axes.Y,
                                 LayoutDuration   = transition_duration,
                                 Spacing          = new Vector2(spacing * 2),
                                 Margin           = new MarginPadding {
                                     Top = spacing * 2
                                 },
                                 Children = new[]
                                 {
                                     description = new MetadataSection("Description"),
                                     source      = new MetadataSection("Source"),
                                     tags        = new MetadataSection("Tags"),
                                 },
                             },
                         },
                     },
                 },
                 failRetryContainer = new Container
                 {
                     Anchor           = Anchor.BottomLeft,
                     Origin           = Anchor.BottomLeft,
                     RelativeSizeAxes = Axes.X,
                     Children         = new Drawable[]
                     {
                         new OsuSpriteText
                         {
                             Text     = "Points of Failure",
                             Font     = @"Exo2.0-Bold",
                             TextSize = 14,
                         },
                         failRetryGraph = new FailRetryGraph
                         {
                             RelativeSizeAxes = Axes.Both,
                             Padding          = new MarginPadding {
                                 Top = 14 + spacing / 2
                             },
                         },
                     },
                 },
             },
         },
         loading = new DimmedLoadingAnimation
         {
             RelativeSizeAxes = Axes.Both,
         },
     };
 }
Esempio n. 18
0
        public ActionResult changeRating(postDetailsViewModel model, int state)
        {
            Posts           posts      = db.Posts.Where(x => x.Id == model.postId).FirstOrDefault();
            ApplicationUser loggedUser = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>().FindById(User.Identity.GetUserId());
            var             postOwner  = posts.UserId;
            var             oldRating  = posts.postRating;

            UserRatings rating = db.UserRatings.Where(x => x.UserId == posts.UserId).FirstOrDefault();
            var         rated  = db.Ratings.Where(x => x.PostsID == model.postId && x.UserId == loggedUser.Id).FirstOrDefault();

            if (rated == null)
            {
                Ratings newReact = new Ratings();
                newReact.PostsID = model.postId;
                newReact.UserId  = loggedUser.Id;
                if (state == 1)
                {
                    posts.postRating += 1;
                    rating.rating    += 1;
                    newReact.reacted  = true;
                }
                else
                {
                    posts.postRating -= 1;
                    rating.rating    -= 1;
                    newReact.reacted  = false;
                }

                db.Ratings.Add(newReact);
                db.SaveChanges();

                return(Json(new { success = true, state = posts.postRating }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                if (state == 1 && rated.reacted == false)
                {
                    posts.postRating += 2;
                    rating.rating    += 2;
                    rated.reacted     = true;

                    db.SaveChanges();

                    if (loggedUser.Id != postOwner)
                    {
                        var newNotification = new Notifications()
                        {
                            forUserId        = postOwner,
                            fromUserName     = loggedUser.UserName,
                            postId           = posts.Id,
                            postTitle        = posts.postTitle,
                            notificationType = "like",
                            status           = "unseen",
                            CreatedDate      = DateTime.UtcNow
                        };
                        db.Notifications.Add(newNotification);
                        db.SaveChanges();
                    }

                    return(Json(new { success = true, state = posts.postRating }, JsonRequestBehavior.AllowGet));
                }
                else if (state == 2 && rated.reacted == true)
                {
                    posts.postRating -= 2;
                    rating.rating    -= 2;
                    rated.reacted     = false;

                    db.SaveChanges();

                    return(Json(new { success = true, state = posts.postRating }, JsonRequestBehavior.AllowGet));
                }

                return(Json(new { success = false }, JsonRequestBehavior.AllowGet));
            }
        }