public bool addReview(UserReview userReview) { // insert into reviews values('ID_TA', 'review', 'date'); bool result = dBConnect.Insert("(" + userReview.RestID + ", \"" + userReview.Content + "\" ,\"" + userReview.Date + "\" , " + userReview.Rate.ToString() + ")", "reviews"); if (result == false) { return(false); } List <string>[] data = dBConnect.Select("restaurants", "ID_TA = '" + userReview.RestID + "'", null, null, null, -1); if (data == null) { return(false); } int numOfReviews = Int32.Parse(data[7][0]); double rate = Convert.ToDouble(data[3][0]); double newRate = (numOfReviews * rate + userReview.Rate) / (numOfReviews + 1); // UPDATE restaurants SET Num_of_reviews = 'num', Rating =rate WHERE ID_TA = 'ID_TA'; result = dBConnect.Update("restaurants", "Numbers_of_reviews= " + (numOfReviews + 1).ToString() + " ,Rating= \"" + newRate.ToString() + "\"", "ID_TA= \"" + userReview.RestID + "\""); if (result == false) { return(false); } RestsResults[restsResults.FindIndex(x => x.ID == userReview.RestID)].Rate = newRate; return(true); }
public Restaurant restDetails() { Restaurant currRest = RestsResults[restsResults.FindIndex(x => x.ID == RestID)]; // create sql query string select = "restaurants.price_range, restaurants.Numbers_of_reviews, restaurants.url_TA "; string from = "restaurants"; string where = "restaurants.ID_TA = " + currRest.ID; List <string>[] rest = dBConnect.Select(from, where, null, null, select, -1); if (rest == null) { return(null); } select = "restaurants.ID_TA, style.style"; from = "restaurants inner join style_rest on restaurants.ID_TA = style_rest.ID_TA inner join style on style.id = style_rest.styleid"; for (int i = 0; i < rest[0].Count; i++) { currRest.PriceRange = rest[4][i]; currRest.NumOfReviews = Convert.ToInt32(rest[7][i]); currRest.URL = rest[5][i]; // condition for specific id -restaurant-styles ; where = " restaurants.ID_TA='" + currRest.ID + "' "; List <string>[] dbStyles = dBConnect.Select(from, where, null, null, select, 3); if (dbStyles == null) { return(null); } List <string> styles = new List <string>(); for (int j = 0; j < dbStyles[0].Count; j++) { styles.Add(dbStyles[9][j]); } // get -restaurant -reviews List <string>[] dbReviews = dBConnect.Select("reviews", "ID_TA= " + currRest.ID, null, null, null, -1); if (dbReviews == null) { return(null); } List <UserReview> listReviews = new List <UserReview>(); for (int j = 0; j < dbReviews[0].Count; j++) { double rate; if (Convert.ToDouble(dbReviews[12][j]) == -1) { rate = calculateRate(currRest.Rate); } else { rate = calculateRate(Convert.ToDouble(dbReviews[12][j])); } UserReview newReview = new UserReview(currRest.ID, dbReviews[10][j], dbReviews[11][j], rate); listReviews.Add(newReview); } currRest.Types = styles; currRest.Reviews = listReviews; } return(currRest); }