} // End public override double CalculateEarnings() //************************************************ // Overridden ToString() //************************************************ public override string ToString() { // Begin public override string ToString() string outputStr = ""; outputStr += "Employee Name: " + FirstName + " " + MiddleInit + " " + LastName + "\n"; outputStr += "Union Status: " + IsUnion.ToString() + "\n"; outputStr += "Employee Number: " + EmpNum.ToString() + "\n"; outputStr += "Week Sales: " + WeekSales.ToString("c") + "\n"; outputStr += "Comm Rate: " + CommRate.ToString("c") + "\n"; outputStr += "Gross Pay: " + grossPay.ToString("c") + "\n"; return(outputStr); } // End public override string ToString()
public async Task <IActionResult> ratecom([FromBody] CommentRateModel ratemodel) //оценка комментария { ClaimsPrincipal currentUser = this.User; //берём id пользователя int commid = Convert.ToInt32(ratemodel.commentid); //и комментария int value; //елси лайк, то рейтинг будем меня на +1, если дизлайк - на -1 if (ratemodel.action == "up") { value = 1; } else { value = -1; } string uid = currentUser.FindFirst(ClaimTypes.NameIdentifier).Value; CommRate existing = _context.CommRates.SingleOrDefault(p => ((p.CommentId == commid) && (p.UserId == uid))); //оценивался ли комментарий ранее Comment rated = _context.Comments.Single(p => p.CommentId == commid); if (existing == null) //если оценки ещё не было { CommRate added = new CommRate(); added.CommentId = commid; added.UserId = uid; added.value = value; _context.CommRates.Add(added); await _context.SaveChangesAsync(); rated.rating += value; _context.Update(rated); await _context.SaveChangesAsync(); } else //если оценка уже была { //rated.rating -= value; //_context.Update(rated); //await _context.SaveChangesAsync(); if (existing.value == value) //если оценка совпадает { rated.rating -= value; _context.Update(rated); //откатили рейтинг await _context.SaveChangesAsync(); _context.CommRates.Remove(existing); //убрали оценку из базы await _context.SaveChangesAsync(); } else //не совпадает - меняем лайк на дизлайк или наоборот { existing.value = value; //просто закидываем новое значение _context.Update(existing); await _context.SaveChangesAsync(); rated.rating += value * 2; _context.Update(rated); await _context.SaveChangesAsync(); } } CommentsModel model = new CommentsModel(); model.islogged = true; model.comments = _context.Comments.Where(p => p.PostId == rated.PostId).Include(p => p.User); //--------------------------состояние комментариев----------------------------- int ratecount = 0; model.commrates = new int[model.comments.Count()]; foreach (Comment selected in model.comments) //проходим по комментариям к посту { //var comrate = _context.CommRates.SingleOrDefault(p => ((p.CommentId == selected.CommentId) && (p.UserId == userid))); //для каждого ищем оценку, данную этим пользователем //if (comrate != null) //{ // model.commmodel.commrates[ratecount] = comrate.value; //если есть - записываем //} //else //{ // model.commmodel.commrates[ratecount] = 0; //} model.commrates[ratecount] = 0; ratecount++; } return(PartialView("postcomments", model)); }