public async Task <string> LikeDislikeComment(CommentFeedback commentFeedback) { string message = "Feedback updated successfully"; var feedback = await _context.UserFeedback.Where(x => x.CommentId == commentFeedback.CommentId && x.UserId == commentFeedback.UserId).FirstOrDefaultAsync(); if (feedback == null) { UserFeedback userFeedback = new UserFeedback(); userFeedback.CommentId = commentFeedback.CommentId; userFeedback.UserId = commentFeedback.UserId; userFeedback.IsLike = commentFeedback.IsLike; userFeedback.IsDislike = !commentFeedback.IsLike; _context.UserFeedback.Add(userFeedback); await Save(); } else { if (feedback.IsLike == commentFeedback.IsLike || feedback.IsDislike == !commentFeedback.IsLike) { throw new Exception("You already " + (commentFeedback.IsLike ? "liked" : "disliked")); } feedback.IsLike = commentFeedback.IsLike; feedback.IsDislike = !commentFeedback.IsLike; _context.Entry(feedback).State = EntityState.Modified; await Save(); } return(message); }
public async Task <ResultView> LikeDislikeComment([FromBody] CommentFeedback commentFeedback) { ResultView oResult = new ResultView(); try { var user = await _appSurveyRepository.LikeDislikeComment(commentFeedback); oResult.Data = user; oResult.Success = true; oResult.Message = user; } catch (Exception ex) { CustomError err = CommonFunctions.HandleException(ex, ex.Message); oResult.Success = false; oResult.Exception = true; oResult.ErrorCode = err.ErrorCode; oResult.Message = err.Message; } return(oResult); }
public async Task CreateMetricFeedback() { var client = GetMetricsAdvisorClient(); Guid metricIdGuid = new Guid(MetricId); FeedbackDimensionFilter dimensionFilter = new FeedbackDimensionFilter( new Dictionary <string, string> { { "Dim1", "Common Lime" }, { "Dim2", "Ant" } }); DateTimeOffset start = Recording.UtcNow.AddMonths(-4); DateTimeOffset end = Recording.UtcNow; AnomalyFeedback anomalyFeedback = new AnomalyFeedback(metricIdGuid, dimensionFilter, start, end, AnomalyValue.NotAnomaly); ChangePointFeedback changePointFeedback = new ChangePointFeedback(metricIdGuid, dimensionFilter, start, end, ChangePointValue.NotChangePoint); PeriodFeedback periodFeedback = new PeriodFeedback(metricIdGuid, dimensionFilter, new PeriodFeedbackValue(PeriodType.AssignValue, 5)); CommentFeedback commentFeedback = new CommentFeedback(metricIdGuid, dimensionFilter, "my comment"); var feedbacks = new List <MetricFeedback> { anomalyFeedback, changePointFeedback, periodFeedback, commentFeedback }; foreach (var feedback in feedbacks) { MetricFeedback createdFeedback = await client.CreateMetricFeedbackAsync(feedback).ConfigureAwait(false); Assert.That(createdFeedback.MetricId, Is.EqualTo(metricIdGuid)); Assert.That(createdFeedback.FeedbackId, Is.Not.Null); MetricFeedback getFeedback = await client.GetMetricFeedbackAsync(createdFeedback.FeedbackId.ToString()).ConfigureAwait(false); Assert.That(createdFeedback.FeedbackId, Is.EqualTo(getFeedback.FeedbackId)); } }