Exemplo n.º 1
0
        public ActionResult SubmitRating(RateVM vm)
        {
            //Gets the user and skill that needs to be rated.
            var userToRate  = Context.Users.GetById(vm.UserToRateId);
            var skillToRate = Context.Skills.FirstOrDefault(x => x.Id == vm.SkillToRateId);
            var userSkill   = userToRate.UserSkills.Where(s => s.Skill.Id == skillToRate.Id).FirstOrDefault();

            //Adding the rating to the database.
            if (userSkill == null)
            {
                userSkill = new UserSkill
                {
                    Skill = skillToRate
                };

                userToRate.UserSkills.Add(userSkill);
            }

            userSkill.Ratings.Add(new Rating
            {
                Mark    = vm.Rating,
                RatedAt = DateTime.Now,
                RatedBy = UserHelper.GetCurrentDbUser(Context),
                Comment = vm.RateComment
            });

            Context.SaveChanges();
            return(RedirectToAction("Index", "Group"));
        }
Exemplo n.º 2
0
        public RatingVM Post(int ratingId, [FromBody] RateVM rate)
        {
            string userId = _userManager.GetUserId(HttpContext.User);
            RateVM result = _ratingRepo.CreateRate(ratingId, userId, rate);

            return(_ratingRepo.GetRating(ratingId, userId));
        }
        // PUT api/Rates/5
        public IHttpActionResult Put(int id, [FromBody] RateVM value)
        {
            var mapper = new MapperConfiguration(cfg => cfg.CreateMap <RateVM, KnowledgeRateDTO>()).CreateMapper();

            try
            {
                db.Update(id, mapper.Map <RateVM, KnowledgeRateDTO>(value));
                return(Ok());
            }
            catch (ValidationException)
            {
                return(NotFound());
            }
        }
Exemplo n.º 4
0
        public IActionResult Add(RateVM model)
        {
            int id       = model.movieid;
            int userID   = Convert.ToInt32(TempData["ID"]);
            var oldRates = _context.Rates.Where(q => q.MovieID == id && q.UserID == userID).ToList();


            Rate rate = new Rate();

            rate.MovieID = id;
            rate.Point   = model.point;
            rate.UserID  = userID;

            Movie  movie     = _context.Movies.Include(q => q.Rates.Where(q => q.IsDeleted == false)).FirstOrDefault(q => q.ID == id);
            var    name      = movie.Name;
            double totalrate = movie.TotalRate;

            if (oldRates.Count() != 0)
            {
                totalrate = movie.TotalRate - oldRates[0].Point;
            }

            totalrate += model.point;

            foreach (var item in oldRates)
            {
                //item.IsDeleted = true;
                _context.Rates.Remove(item);
            }
            movie.TotalRate = totalrate;
            _context.Rates.Add(rate);
            _context.SaveChanges();



            double rated    = movie.Rates.Where(q => q.IsDeleted == false).Count();
            double awrpoint = totalrate / rated;
            double awerate  = Math.Round(awrpoint, 1, MidpointRounding.AwayFromZero);

            movie.AvrPoint = awerate;
            _context.SaveChanges();



            string url = "/movie/" + id + "/" + UrlHelper.FriendlyUrl(name);

            return(Redirect(url));
        }
Exemplo n.º 5
0
        public RateVM CreateRate(int ratingId, string userId, RateVM rate)
        {
            var r = new Rate()
            {
                Emotion   = (int)rate.Emotion,
                Feedback  = rate.Feedback,
                Timestamp = DateTime.Now,
                UserId    = userId,
            };

            Rating rating = _context.Ratings
                            .Include(ra => ra.Rates)
                            .FirstOrDefault(q => q.Id == ratingId);

            rating.Rates.Add(r);
            _context.SaveChanges();
            rate.Id = r.Id;
            return(rate);
        }
        // POST api/Rates
        public IHttpActionResult Post([FromBody] RateVM value)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var mapper = new MapperConfiguration(cfg => cfg.CreateMap <RateVM, KnowledgeRateDTO>()).CreateMapper();

            try
            {
                db.Create(mapper.Map <RateVM, KnowledgeRateDTO>(value));
                return(StatusCode(HttpStatusCode.Created));
            }
            catch (Exception)
            {
                return(BadRequest());
            }
        }
        public async Task <IActionResult> Rate([FromBody] RateVM rateVM)
        {
            try
            {
                if (!rateVM.OrganizationId.HasValue || !rateVM.Rate.HasValue || !rateVM.UserId.HasValue)
                {
                    return(BadRequest());
                }

                var user = await _userStore.GetUserAsync(rateVM.UserId.Value);

                if (user == null)
                {
                    return(BadRequest());
                }

                var organization = await _organizationStore.GetOrganizationAsync(rateVM.OrganizationId.Value);

                if (organization == null)
                {
                    return(BadRequest());
                }

                await _organizationStore.Rate(new RatingEntity
                {
                    OrganizationId = rateVM.OrganizationId.Value,
                    UserId         = rateVM.UserId.Value,
                    Rating         = rateVM.Rate.Value,
                    Text           = rateVM.Text
                });

                var ratings       = (await _organizationStore.GetRatingByOrganization(rateVM.OrganizationId.Value))?.ToList();
                var averageRating = ratings.Average(rating => rating.Rating);

                await _organizationStore.UpdateRatingAsync(rateVM.OrganizationId.Value, averageRating);

                var socialNeгtworkAccounts = await _organizationStore.GetOrganizationSocialNetworkAccountsAsync(organization.Id);

                var result = new OrganizationInfo
                {
                    Id          = organization.Id,
                    Name        = organization.Name,
                    RuName      = organization.RuName,
                    Address     = organization.Address,
                    Latitude    = organization.Latitude,
                    Longitude   = organization.Longitude,
                    Description = organization.Description,
                    Phone       = organization.Phone,
                    Rating      = averageRating,
                    CountOfAvailablePlacement = organization.CountOfAvailablePlacement ?? 15,
                    UserRatings = ratings.Select(rating => new UserRating
                    {
                        UserId  = rating.UserId,
                        Name    = rating.Name,
                        Surname = rating.Surname,
                        Phone   = rating.Phone,
                        Rate    = rating.Rating,
                        Text    = rating.Text
                    }),
                    WorkingTimes = new WorkingTimes
                    {
                        From = $"{organization.WorkingStartHour}:{organization.WorkingStartMinute}",
                        To   = $"{organization.WorkingEndHour}:{organization.WorkingEndMinute}"
                    },
                    SocialNeгtworkAccounts = socialNeгtworkAccounts.Select(acc => new OrganizationSocialNetwork {
                        Type = acc.Type, Url = acc.Url
                    }),
                    CountOfFreePlacement = OrganizationHelper.GetCountEmptyPlacement(organization.CountOfAvailablePlacement ?? 15),
                    Categories           = organization.Categories,
                    Url            = organization.Url,
                    WorkingTimeStr = organization.WorkingTimeStr
                };

                return(Ok(result));
            }
            catch (Exception ex)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError));
            }
        }
Exemplo n.º 8
0
        /// <summary>
        /// Method to rate a user
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult RateUser(int groupId = 0, int userId = 0, int teamId = 0)
        {
            var model = new RateVM();

            if (groupId > 0)
            {
                var currentGroup = Context.Groups.GetById(groupId);
                var skills       = currentGroup.Skills.Select(s => new Models.Group.SkillVM
                {
                    Description = s.Description,
                    Id          = s.Id,
                    Name        = s.Name
                });

                var groupUsers = currentGroup.Users.Select(u => new Models.Group.UserVM
                {
                    FirstName = u.FirstName,
                    Id        = u.Id,
                    LastName  = u.LastName,
                    UserName  = u.UserName
                });

                model.UsersList = groupUsers.Select(a => new SelectListItem()
                {
                    Text = a.FirstName, Value = a.Id.ToString()
                });
                model.SkillsList = skills.Select(a => new SelectListItem()
                {
                    Text = a.Name, Value = a.Id.ToString()
                });
                model.GroupId = groupId;
            }
            else if (userId > 0)
            {
                var user   = Context.Users.GetById(userId);
                var skills = user.UserSkills.Select(s => new Models.Group.SkillVM
                {
                    Description = s.Skill.Description,
                    Id          = s.Skill.Id,
                    Name        = s.Skill.Name
                });

                model.UsersList = new List <SelectListItem>()
                {
                    new SelectListItem()
                    {
                        Text = user.FirstName, Value = user.Id.ToString()
                    }
                };
                model.SkillsList = skills.Select(a => new SelectListItem()
                {
                    Text = a.Name, Value = a.Id.ToString()
                });
                model.UserToRateId = user.Id;
            }
            else if (teamId > 0)
            {
                var currentEventTeam = Context.EventTeams.GetById(teamId);
                var skills           = currentEventTeam.Event.Group.Skills.Concat(currentEventTeam.Event.Skills).Select(s => new Models.Group.SkillVM
                {
                    Description = s.Description,
                    Id          = s.Id,
                    Name        = s.Name
                });

                var teamUsers = currentEventTeam.Users.Select(u => new Models.Group.UserVM
                {
                    FirstName = u.FirstName,
                    Id        = u.Id,
                    LastName  = u.LastName,
                    UserName  = u.UserName
                });

                model.UsersList = teamUsers.Select(a => new SelectListItem()
                {
                    Text = a.FirstName, Value = a.Id.ToString()
                });
                model.SkillsList = skills.Select(a => new SelectListItem()
                {
                    Text = a.Name, Value = a.Id.ToString()
                });
                model.GroupId = groupId;
            }

            return(View(model));
        }