public List <ReturnedReply> getReplies(int id) { var listOfReplies = from rp in _context.newReviewReply join u in _context.newReviews on rp.newReview.Id equals u.Id where u.Id == id select new { rp.reply, rp.agree, rp.newUser.UserName }; List <ReturnedReply> replies = new List <ReturnedReply>(); foreach (var item in listOfReplies.ToList()) { ReturnedReply reply = new ReturnedReply(); reply.user = item.UserName; reply.likeordis = item.agree; reply.rpContents = item.reply; replies.Add(reply); } return(replies); }
public async Task <ReturnedReply> makeReply(string contents, bool agree, int reviewId) { ReviewReply reply = new ReviewReply(); reply.agree = agree; reply.reply = contents; reply.newReview = getReview(reviewId); reply.newUser = getUser().Result; Console.WriteLine("The reply " + contents + " Liked or Disliked " + agree + "ReviewId" + reviewId); if (ModelState.IsValid) { _context.Add(reply); await _context.SaveChangesAsync(); Console.WriteLine("Added a reply"); ReturnedReply mapReply = new ReturnedReply(); mapReply.likeordis = agree; mapReply.rpContents = contents; mapReply.user = reply.newUser.UserName; return(mapReply); //var rpPlace = findPlace(place); //var uReplies = from r in _context.newReviews // join rp in _context.newReviewReply on r.Id equals rp.newReview.Id // where r.FoodName == foundplace.FoodName // select new { f.Review1, f2.FoodName, f.newUser.UserName, f.ReviewDate, f.Like }; } else { Console.WriteLine("Not a Valid Model State"); ReturnedReply empty = new ReturnedReply(); empty.rpContents = "Empty"; return(empty); } }
public List <ReturnedReview> getReviews2(NewFoodTable table) { if (ModelState.IsValid) { Dictionary <int, ReturnedReview> myReplyHolder = new Dictionary <int, ReturnedReview>(); //Check to see if the database contains the place var dplace = from p in _context.newFoodTable where p.FoodName == table.FoodName select p; NewFoodTable foundplace; //If not make the place if (dplace.Count() == 0) { NewFoodTable newplace = table; _context.Add(newplace); foundplace = newplace; } else { foundplace = dplace.First(); } var nReviews = from r in _context.newReviews join f2 in _context.newFoodTable on r.newFoodTable.Id equals f2.Id join f3 in _context.newReviewReply on r.Id equals f3.newReview.Id into myList from x in myList.DefaultIfEmpty() where f2.FoodName == foundplace.FoodName select new { r.Review1, r.Id, r.newUser.UserName, r.ReviewDate, r.Like, f2.FoodName, ReplyId = (x == null ? 0 : x.Id), Reply = (x == null ? String.Empty : x.reply), ReplyUser = (x == null ? String.Empty : x.newUser.UserName) }; List <ReturnedReview> newList = new List <ReturnedReview>(); foreach (var item in nReviews.ToList()) { Console.WriteLine("FoodName: " + item.FoodName + " User " + item.UserName + " Review " + item.Review1); Console.WriteLine("Reply Id" + item.ReplyId); ReturnedReview thisReview = new ReturnedReview(); thisReview.FoodName = item.FoodName; thisReview.rContents = item.Review1; thisReview.Username = item.UserName; thisReview.rLike = item.Like; thisReview.rId = item.Id; thisReview.rDate = item.ReviewDate.ToString(); if (item.ReplyId != 0) { if (myReplyHolder.ContainsKey(item.Id)) { Console.WriteLine("Found the key"); Console.WriteLine("The Review " + item.Review1); ReturnedReview foundReply = myReplyHolder[item.Id]; ReturnedReply uReply = new ReturnedReply(); uReply.user = item.ReplyUser; uReply.rpContents = item.Reply; thisReview.rpList = new List <ReturnedReply>(); thisReview.rpList.Add(uReply); foundReply.rpList.Add(uReply); foreach (var reply in foundReply.rpList) { Console.WriteLine("The Replies so far " + reply.rpContents); } } else { Console.WriteLine("Adding new key"); ReturnedReply uReply = new ReturnedReply(); uReply.user = item.ReplyUser; uReply.rpContents = item.Reply; thisReview.rpList = new List <ReturnedReply>(); thisReview.rpList.Add(uReply); Console.WriteLine(uReply.rpContents); myReplyHolder.Add(item.Id, thisReview); } } else { newList.Add(thisReview); } } foreach (var repItem in myReplyHolder) { Console.WriteLine("Adding Review with Replies to List"); newList.Add(repItem.Value); } return(newList); } else { List <ReturnedReview> emptyList = new List <ReturnedReview>(); return(emptyList); } }