Exemple #1
0
        }   //  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()
Exemple #2
0
        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));
        }