Exemple #1
0
        public async Task <ObjectResult> PostRating(string name, [FromBody] RatingJson body)
        {
            Programme ratedProgramme = DbContext.Programmes.FirstOrDefault(prog => prog.Id == body.Id);

            if (ratedProgramme != null)
            {
                User user = DbContext.Users
                            .Include(u => u.Ratings)
                            .ThenInclude(r => r.RelProgramme)
                            .ThenInclude(prog => prog.ProgrammesFeatures)
                            .ThenInclude(pf => pf.RelFeature)
                            .Single(u => u.Login == name);

                Rating existing_rating = DbContext.Ratings.SingleOrDefault(r => r.ProgrammeId == body.Id && r.UserLogin == name);
                Rating new_rating      = new Rating()
                {
                    ProgrammeId  = body.Id,
                    RelProgramme = ratedProgramme,
                    RatingValue  = body.RatingValue,
                    UserLogin    = name
                };
                if (existing_rating == null)
                {
                    DbContext.Ratings.Add(new_rating);
                }
                else
                {
                    existing_rating.RatingValue = body.RatingValue;
                }
                user = recommendations.UpdateWeights(ratedProgramme, user, body.RatingValue);
                LogService.Log($"Weights: {user.WeightCategory} {user.WeightActor} {user.WeightCountry} {user.WeightDirector} {user.WeightYear}");
                DbContext.SaveChanges();
                return(StatusCode(200, new RatingJson()
                {
                    Id = new_rating.ProgrammeId, RatingValue = new_rating.RatingValue
                }));
            }

            return(StatusCode(404, "Program nie istnieje"));
        }
Exemple #2
0
        public async Task <ObjectResult> PostNotification(string name, [FromBody] RatingJson body)
        {
            Emission remindMeOf = DbContext.Emissions.FirstOrDefault(em => em.Id == body.Id);

            if (remindMeOf != null)
            {
                Notification new_reminder = new Notification()
                {
                    Id          = updateService.GetNewId(DbContext.Notifications),
                    EmissionId  = body.Id,
                    RelEmission = remindMeOf,
                    UserLogin   = name
                };
                DbContext.Notifications.Add(new_reminder);
                DbContext.SaveChanges();
                return(StatusCode(200, new RatingJson()
                {
                    Id = new_reminder.EmissionId, RatingValue = 1
                }));
            }

            return(StatusCode(404, "Program nie istnieje"));
        }