Exemple #1
0
 public async Task <IActionResult> SaveUserGameRating([FromBody] JObject vistorRatingUpdate)
 {
     try
     {
         VistorRatingUpdate _vistorRatingUpdate = JsonConvert.DeserializeObject <VistorRatingUpdate>(vistorRatingUpdate.ToString());
         return(Ok(await boardGamesRepository.SaveUserGameRating(_vistorRatingUpdate)));
     }
     catch
     {
         return(BadRequest());
     }
 }
Exemple #2
0
        // Visitor: Function to Update the Visitot Rating
        public async Task <List <SaveGameRatingResponse> > SaveUserGameRating(VistorRatingUpdate vistorRatingUpdate)
        {
            List <SaveGameRatingResponse> saveGameRatingResponse = new List <SaveGameRatingResponse>();

            try
            {
                int VisitorId = 0;

                //Check New User exist in Database ?
                IQueryable <Visitor> visitor = _Context.Visitor.Where(x => string.Equals(x.EmailId, vistorRatingUpdate.VisitorInfo.EmailId.Trim()) &&
                                                                      string.Equals(x.Fname, vistorRatingUpdate.VisitorInfo.Fname) &&
                                                                      string.Equals(x.Lname, vistorRatingUpdate.VisitorInfo.LName));
                if (visitor != null && visitor.Count() > 0)  /////If visitor exist in database then
                {
                    foreach (var gameRating in vistorRatingUpdate.gamesRatings)
                    {
                        IQueryable <VisitorGamesRating> visitorGamesRating = _Context.VisitorGamesRating
                                                                             .Where(x => x.GameId == gameRating.GameId && x.VisitorId == visitor.Select(y => y.VisitorId).FirstOrDefault());

                        if (visitorGamesRating != null && visitorGamesRating.Count() > 0)  /// Visitor already has given rating angaist this game;
                        {
                            saveGameRatingResponse.Add(
                                new SaveGameRatingResponse()
                            {
                                GameName       = gameRating.GameName,
                                UserGameRating = gameRating.Rating,
                                Message        = "Rating is exist for this visitor !"
                            });
                        }
                        else
                        {
                            VisitorGamesRating visitorGamesRatings = new VisitorGamesRating()
                            {
                                VisitorId = visitor.Select(y => y.VisitorId).FirstOrDefault(),
                                GameId    = gameRating.GameId,
                                Rating    = gameRating.Rating
                            };
                            _Context.VisitorGamesRating.Add(visitorGamesRatings);
                            _Context.SaveChanges();

                            saveGameRatingResponse.Add(
                                new SaveGameRatingResponse()
                            {
                                GameName       = gameRating.GameName,
                                UserGameRating = gameRating.Rating,
                                Message        = "Successfully saved !"
                            });
                        }
                    }
                    ;   /// Loop end
                }
                else
                {
                    var newVisitor = new Visitor()
                    {
                        EmailId = vistorRatingUpdate.VisitorInfo.EmailId,
                        Fname   = vistorRatingUpdate.VisitorInfo.Fname,
                        Lname   = vistorRatingUpdate.VisitorInfo.LName,
                    };
                    _Context.Visitor.Add(newVisitor);
                    _Context.SaveChanges();
                    VisitorId = newVisitor.VisitorId;

                    if (VisitorId > 0)
                    {
                        List <VisitorGamesRating> visitorGamesRatings = vistorRatingUpdate.gamesRatings.Select(x => new VisitorGamesRating()
                        {
                            VisitorId = VisitorId,
                            GameId    = x.GameId,
                            Rating    = x.Rating
                        }).ToList();

                        _Context.VisitorGamesRating.AddRange(visitorGamesRatings);
                        _Context.SaveChanges();

                        saveGameRatingResponse = vistorRatingUpdate.gamesRatings.Select(x => new SaveGameRatingResponse()
                        {
                            GameName       = x.GameName,
                            UserGameRating = x.Rating,
                            Message        = "Successfully saved !"
                        }).ToList();
                    }
                }

                return(saveGameRatingResponse);
            }
            catch (Exception ex)
            {
                return(saveGameRatingResponse);
            }
        }