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")); }
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()); } }
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)); }
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)); } }
/// <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)); }