Exemple #1
0
        public IActionResult Update(RatingInput rating)
        {
            try
            {
                if (rating.Stars < 1 && rating.Stars > 5)
                {
                    return(BadRequest());
                }



                var res = _ratingService.UpdateAddRating(new Rating
                {
                    MovieId = rating.MovieId,
                    UserId  = rating.UserId,
                    Stars   = rating.Stars
                });

                if (!res)
                {
                    return(NotFound("User not found"));
                }

                return(Ok());
            }
            catch (Exception e)
            {
                _logger.LogError(e.Message);
                return(StatusCode(500, "Something went wrong"));
            }
        }
        public async Task <IActionResult> Put([FromBody] RatingInput rating, int id)
        {
            try
            {
                var validationResult = rating.Validate(id);
                if (!validationResult.IsValid)
                {
                    return(BadRequest(validationResult.Message));
                }
                var result = await _ratingsRepository.Update(id, rating);

                if (result == null)
                {
                    return(BadRequest($"There is already a rating with the name {rating.Name}"));
                }

                if (result.Id != id)
                {
                    return(Created($"api/ratings/{result.Id}", result));
                }

                return(NoContent());
            }
            catch (Exception)
            {
                return(new StatusCodeResult(500));
            }
        }
Exemple #3
0
        protected void input_rating_TextChanged(object sender, EventArgs e)
        {
            if ((sender.GetType() == typeof(RatingInput)) && base.ControlMode == SPControlMode.Display)
            {
                if (!HasVote())
                {
                    input_rating = sender as RatingInput;
                    //SPListItem item = this.ListItem;

                    url = SPContext.Current.Web.Url;
                    //OpenElevatedWeb();
                    Guid listId = this.ListId;
                    Guid itemId = this.ListItem.UniqueId;

                    SPUtility.ValidateFormDigest();

                    SPSecurity.RunWithElevatedPrivileges(delegate()
                    {
                        RatingField.Votes  += 1;
                        RatingField.Rating += input_rating.Value;

                        using (SPSite site = new SPSite(url))
                        {
                            using (SPWeb web = site.OpenWeb())
                            {
                                SPListItem item = web.Lists[listId].Items[itemId];
                                //SPFile file = web.GetFile(itemId);
                                //SPListItem item = file.ListItemAllFields;

                                item[BuildFieldId.Rating] = RatingField;
                                item.SystemUpdate(false);
                            }
                        }
                    });
                }

                input_rating.Attributes.Add("data-rateit-readonly", "true");
                input_rating.Votes = RatingField.Votes;

                if (RatingField.Votes > 0)
                {
                    input_rating.Value = float.Parse((RatingField.Rating / RatingField.Votes).ToString());
                    input_rating.Text  = float.Parse((RatingField.Rating / RatingField.Votes).ToString()).ToString("F2", CultureInfo.InvariantCulture);
                }
                else
                {
                    input_rating.Value = 0.0f;
                    input_rating.Text  = "0.0";
                }

                Page.Response.Cookies[ListItem.UniqueId.ToString() + "_" + input_rating.ClientID].Value = Boolean.TrueString;
            }
        }
        public async Task <RatingModel> Update(int id, RatingInput rating)
        {
            var currentRating = Ratings.Find(x => x.Id == id);

            if (currentRating == null)
            {
                return(await Add(rating));
            }

            currentRating.Score = rating.Score;
            currentRating.Name  = rating.Name;
            return(await Task.FromResult(currentRating));
        }
        public async Task <RatingModel> Add(RatingInput ratingInput)
        {
            var id     = ++_id;
            var rating = ratingInput.ToModel(id);
            var exists = await CheckIfRatingNameExists(rating.Name);

            if (exists)
            {
                return(null);
            }
            Ratings.Add(rating);
            return(await Task.FromResult(rating));
        }
        public void UnknownTitle()
        {
            var bookWithoutTitle = new RatingInput
            {
                BookId    = Guid.NewGuid(),
                Title     = null,
                IsForeign = false
            };

            var ratingSystem = new RatingSystem();
            var result       = ratingSystem.ComputeRating(new[] { bookWithoutTitle }).Single();

            Assert.AreEqual(bookWithoutTitle.BookId, result.BookId);
            Assert.AreEqual(0, result.Value);
        }
Exemple #7
0
        public async Task <IActionResult> Post(RatingInput model)
        {
            string userId = this.userManager.GetUserId(User);

            if (this.unitOfWork.Ratings.HasAlreadyRated(userId, model.ProductId))
            {
                return(Conflict());
            }
            else
            {
                this.unitOfWork.Ratings.RateProduct(userId, model.ProductId, model.Value);
                await this.unitOfWork.Save();

                return(NoContent());
            }
        }
        public async Task <IActionResult> Post([FromBody] RatingInput rating)
        {
            try
            {
                var validationResult = rating.Validate();
                if (!validationResult.IsValid)
                {
                    return(BadRequest(validationResult.Message));
                }

                var created = await _ratingsRepository.Add(rating);

                if (created == null)
                {
                    return(BadRequest($"There is already a rating with the name {rating.Name}"));
                }
                return(Created($"api/ratings/{created.Id}", created));
            }
            catch (Exception)
            {
                return(new StatusCodeResult(500));
            }
        }
Exemple #9
0
        protected override void CreateChildControls()
        {
            this.DisableInputFieldLabel = true;
            base.ControlMode            = SPContext.Current.FormContext.FormMode;

            if (base.ControlMode == SPControlMode.Display || base.ControlMode == SPControlMode.Invalid)
            {
                ScriptManager.GetCurrent(Page).RegisterAsyncPostBackControl(this);
                //Page.RegisterRequiresPostBack(this);
                //Page.RegisterRequiresRaiseEvent(this);
            }

            base.CreateChildControls();
            RatingField = (HTML5RatingField)ItemFieldValue;

            if (RatingField == null)
            {
                try
                {
                    url = SPContext.Current.Web.Url;
                    Guid listId = this.ListId;
                    Guid itemId = this.ListItem.UniqueId;

                    using (SPSite site = new SPSite(url))
                    {
                        using (SPWeb web = site.OpenWeb())
                        {
                            SPListItem item = web.Lists[listId].Items[itemId];
                            //SPFile file = web.GetFile(itemId);
                            //SPListItem item = file.ListItemAllFields;

                            RatingField    = item[BuildFieldId.Rating] as HTML5RatingField;
                            ItemFieldValue = RatingField;
                        }
                    }
                }
                catch (Exception)
                {
                    RatingField = new HTML5RatingField();
                }
                if (RatingField == null)
                {
                    RatingField = new HTML5RatingField();
                }
            }

            if (settings == null)
            {
                settings = new RatingSettings();
                settings = settings.Load();
            }

            if (base.ControlMode == SPControlMode.Edit || base.ControlMode == SPControlMode.New)
            {
                RatingField.Maximum = settings.Maximum;
                RatingField.Minimum = settings.Minimum;
                RatingField.Step    = settings.Step;
            }
            else
            {
                input_rating = (RatingInput)this.TemplateContainer.FindControl("RatingInput");

                if (input_rating != null)
                {
                    if (!Page.ClientScript.IsClientScriptIncludeRegistered("jQuery"))
                    {
                        Page.ClientScript.RegisterClientScriptInclude(typeof(HTML5RatingControl), "jQuery", "/_layouts/Hemrika/Content/js/jquery.min.js");
                    }

                    if (!Page.ClientScript.IsClientScriptIncludeRegistered("RateIt"))
                    {
                        Page.ClientScript.RegisterClientScriptInclude(typeof(HTML5RatingControl), "RateIt", "/_layouts/Hemrika/Content/js/jquery.rateit.js");
                    }

                    CssRegistration.Register("/_layouts/Hemrika/Content/css/rateit.css");

                    input_rating.TextChanged += new EventHandler(input_rating_TextChanged);
                    input_rating.Step         = RatingField.Step;
                    input_rating.Maximum      = settings.Maximum;
                    input_rating.Minimum      = settings.Minimum;
                    input_rating.Votes        = RatingField.Votes;

                    if (RatingField.Votes > 0)
                    {
                        input_rating.Value = float.Parse((RatingField.Rating / RatingField.Votes).ToString());
                        input_rating.Text  = float.Parse((RatingField.Rating / RatingField.Votes).ToString()).ToString("F2", CultureInfo.InvariantCulture);
                    }
                    else
                    {
                        input_rating.Value = 0.0f;
                        input_rating.Text  = "0.0";
                    }

                    //input_rating.Value = 0.0f;
                    //input_rating.Text = "0.0f";

                    HtmlGenericControl rating = new HtmlGenericControl("div");
                    rating.Attributes.Add("class", "rateit");
                    rating.Attributes.Add("data-rateit-backingfld", "#" + input_rating.ClientID);
                    rating.Attributes.Add("data-rateit-resetable", "false");

                    if (Page.IsPostBack || HasVote())
                    {
                        rating.Attributes.Add("data-rateit-readonly", "true");
                    }

                    this.Controls.Add(rating);
                    //ScriptManager.GetCurrent(Page).RegisterAsyncPostBackControl(rating);
                }

                MicroDate();
            }
        }
Exemple #10
0
 public HttpResponseMessage MicroRating([FromBody] RatingInput ratingInput)
 {
     apiManager = new APIManager(token);
     apiManager.getMicroRating(ratingInput.category, ratingInput.latitude, ratingInput.longitude, "CH");
     return(Request.CreateResponse(HttpStatusCode.OK, new { Rating = apiManager.ratingResponse.results.microRatingClass1To5 ?? 3.0 }));
 }