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)); }