public async Task AddReview(reviewentity entity)
        {
            var dbentity = _mapper.Map <comments>(entity);

            await _dataContext.comments
            .AddAsync(dbentity);

            await _dataContext.SaveChangesAsync();

            var ratings = _dataContext.ratings
                          .FirstOrDefault(x => x.webid == dbentity.webid);

            var broadcastobj = setcomment(dbentity);

            dynamic objs = calculateratings(entity.webid);

            if (objs != null)
            {
                if (ratings != null)
                {
                    dynamic ratingobj = updateratings(objs, entity);

                    List <ratings> newratings = ratingobj.ratinglist;

                    summary avgrating = ratingobj.avgrating;

                    await _hubcontext.Clients.All
                    .SendAsync("sendratings", new Object[] { newratings, avgrating });
                }
                else
                {
                    dynamic newratingobj = getnewratings(objs);

                    List <ratings> newratings = newratingobj.newratings
                                                .ratinglist;

                    summary avgrating = newratingobj.newratings
                                        .avgrating;

                    await _hubcontext.Clients.All
                    .SendAsync("newratings", new Object[] { newratings, avgrating });
                }
                await _hubcontext.Clients
                .All.SendAsync("sendcomment", broadcastobj);
            }
            else
            {
                await _hubcontext.Clients
                .All.SendAsync("sendcomment", broadcastobj);
            }
        }
        private Object updateratings(dynamic objs, reviewentity entity)
        {
            var downobj = _dataContext.ratings
                          .Where(x => x.webid == entity.webid)
                          .ToList();

            var downavg = _dataContext.summary
                          .FirstOrDefault(x => x.webid == entity.webid);

            List <ratings> ratings = objs.ratinglist;

            int index = 0;

            downobj.ForEach((items) =>
            {
                items.percentage = ratings[index].percentage;
                items.polarity   = ratings[index].polarity;
                items.webid      = ratings[index].webid;
                index++;
            });

            _mapper.Map <summary, summary>(objs.avgrating, downavg);

            _dataContext.ratings
            .UpdateRange(downobj);
            _dataContext.summary
            .Update(downavg);
            _dataContext.SaveChanges();

            var orderdlist = downobj.OrderByDescending(x => x.polarity)
                             .ToList();

            return(new
            {
                ratinglist = orderdlist,
                avgrating = downavg
            });
        }
        public async Task <IActionResult> AddReview(reviewentity entity)
        {
            await _unitofwork.reviews.AddReview(entity);

            return(Ok(entity));
        }