public HttpResponseMessage AddBusinessRatings(BusinessRatingVM _businessRatingVM) { if (IsTokenAuthenticated()) { try { _businessRatingVM.UserID = _userId; _businessRatingVM.Rating = _businessRatingVM.Rating.Replace("\"", ""); _businessRatingVM.Rating = _businessRatingVM.Rating != "" ? _businessRatingVM.Rating : "0"; BusinessVM _businessVM = _businessBLL.AddBusinessRating(_businessRatingVM); if (_businessVM != null) { JSONSuccessResult(_businessVM); } else { _strJSONContent.Append("{\"message\":\"User does not exists.\"}"); } return(Common.ResponseOutput(_strJSONContent)); } catch (Exception ex) { _Message = ex.Message; _strJSONContent.Append("{\"status\":\"Failed\"}"); } return(Common.ResponseOutput(_strJSONContent)); } else { return(Common.ResponseOutput(_strJSONContent)); } }
/// <summary> /// Add Business Rating /// </summary> /// <returns></returns> public BusinessVM AddBusinessRating(BusinessRatingVM _businessRatingVM) { BusinessRating _businessRating = new BusinessRating { BusinessID = _businessRatingVM.BusinessID, UserID = _businessRatingVM.UserID, Rating = Convert.ToDouble(_businessRatingVM.Rating), Review = _businessRatingVM.Review }; _objBusinessDAL.AddBusinessRating(_businessRating); return(GetBusinessDetails(_businessRatingVM.BusinessID)); }
/// <summary> /// Add Business Rating /// </summary> /// <returns></returns> public BusinessVM AddBusinessRating(BusinessRatingVM _businessRatingVM) { BusinessRating _businessRating = new BusinessRating { UserID = _businessRatingVM.UserID, Rating = Convert.ToDouble(_businessRatingVM.Rating), Review = _businessRatingVM.Review }; if (string.IsNullOrEmpty(_businessRatingVM.PlaceID)) { _businessRating.BusinessID = _businessRatingVM.BusinessID; _businessRating.PlaceID = null; } else { _businessRating.BusinessID = null; _businessRating.PlaceID = _businessRatingVM.PlaceID; } _objBusinessDAL.AddBusinessRating(_businessRating); if (!string.IsNullOrEmpty(_businessRatingVM.PlaceID)) { String googlePlaceURL = ConfigurationManager.AppSettings["GooglePlaceAPIReviewURL"] + _businessRatingVM.PlaceID + "&key=" + ConfigurationManager.AppSettings["GooglePlaceAPIKey"]; using (var client = new WebClient()) using (var stream = client.OpenRead(googlePlaceURL)) using (var reader = new StreamReader(stream)) using (var jsonData = new JsonTextReader(reader)) { return(BusinessPlaceDetails(JObject.Load(jsonData)["result"], _businessRatingVM.UserID)); } } else { return(GetBusinessDetails(_businessRatingVM.BusinessID)); } }
/// <summary> /// Convert FavouritePlace to FavouritePlace View Model Object /// </summary> /// <param name="item"></param> /// <returns></returns> private FavouritePlaceVM MakeFavouritePlaceVM(FavouritePlace item) { _objFavouritePlaceVM = new FavouritePlaceVM() { FavouritePlaceID = item.FavouritePlaceID, UserID = item.Business.UserID, BusinessID = item.BusinessID, BusinessName = item.Business.BusinessName, Latitude = item.Business.Latitude, Longitude = item.Business.Longitude, Location = item.Business.Location, ContactNo = item.Business.ContactNo, Website = item.Business.Website, StartTime = item.Business.StartTime, EndTime = item.Business.EndTime, Flavours = item.Business.Flavours, IsFavouritePlace = 1 }; // Add Business Rating Double _averageRating = 0; if (item.Business.BusinessRatings.Count > 0) { List <BusinessRatingVM> lstBusinessRating = new List <BusinessRatingVM>(); foreach (var rating in item.Business.BusinessRatings) { BusinessRatingVM _businessRatingVM = new BusinessRatingVM { BusinessRatingID = rating.BusinessRatingID, BusinessID = rating.BusinessID, Rating = rating.Rating.ToString(), Review = rating.Review, UserID = rating.UserID, UserName = rating.User.UserName, ProfileImageUrl = rating.User.ProfileImageUrl }; lstBusinessRating.Add(_businessRatingVM); _averageRating = _averageRating + rating.Rating; } _objFavouritePlaceVM.Reviews = new JavaScriptSerializer().Serialize(lstBusinessRating); _averageRating = _averageRating / item.Business.BusinessRatings.Count; } else { _objFavouritePlaceVM.Reviews = "[]"; } _objFavouritePlaceVM.AverageRating = _averageRating; // Add Business Images if (item.Business.BusinessImages.Count > 0) { List <BusinessImageVM> lstBusinessImage = new List <BusinessImageVM>(); string tempDocUrl = ConfigurationManager.AppSettings["APIURL"]; foreach (var image in item.Business.BusinessImages) { BusinessImageVM _businessImageVM = new BusinessImageVM { BusinessImageID = image.BusinessImageID, BusinessID = image.BusinessID, ImageName = image.ImageName, ImageType = image.ImageType, ImagePath = tempDocUrl + "/Uploads/Business/" + image.BusinessID + "/" + image.ImageName }; lstBusinessImage.Add(_businessImageVM); } _objFavouritePlaceVM.Images = new JavaScriptSerializer().Serialize(lstBusinessImage); } else { _objFavouritePlaceVM.Images = "[]"; } return(_objFavouritePlaceVM); }
/// <summary> /// Convert Business to Business View Model Object /// </summary> /// <param name="item"></param> /// <returns></returns> private BusinessVM MakeBusinessVM(Business item, Boolean _isPremiumBusiness) { _objBusinessVM = new BusinessVM() { BusinessID = item.BusinessID, BusinessName = item.BusinessName, Latitude = item.Latitude, Longitude = item.Longitude, Location = item.Location, ContactNo = item.ContactNo, Website = item.Website, StartTime = item.StartTime, EndTime = item.EndTime, Flavours = item.Flavours, UserID = item.UserID, IsFavouritePlace = item.FavouritePlaces.Where(f => (f.BusinessID == item.BusinessID && f.UserID == item.UserID)).Count() > 0 ? 1 : 0 }; if (_isPremiumBusiness) { _objBusinessVM.PremiumImageContent = item.PremiumImageContent; } // Add Business Rating Double _averageRating = 0; if (item.BusinessRatings.Count > 0) { List <BusinessRatingVM> lstBusinessRating = new List <BusinessRatingVM>(); foreach (var rating in item.BusinessRatings) { BusinessRatingVM _businessRatingVM = new BusinessRatingVM { BusinessRatingID = rating.BusinessRatingID, BusinessID = (int)rating.BusinessID, Rating = rating.Rating.ToString(), Review = rating.Review, UserID = rating.UserID, UserName = rating.User.UserName, ProfileImageUrl = rating.User.ProfileImageUrl }; lstBusinessRating.Add(_businessRatingVM); _averageRating = _averageRating + rating.Rating; } _objBusinessVM.Reviews = new JavaScriptSerializer().Serialize(lstBusinessRating); _averageRating = _averageRating / item.BusinessRatings.Count; } else { _objBusinessVM.Reviews = "[]"; } _objBusinessVM.AverageRating = _averageRating; // Add Business Images if (item.BusinessImages.Where(d => d.IsPremiumImage == _isPremiumBusiness).Count() > 0) { List <BusinessImageVM> lstBusinessImage = new List <BusinessImageVM>(); string tempDocUrl = ConfigurationManager.AppSettings["APIURL"]; foreach (var image in item.BusinessImages.Where(d => d.IsPremiumImage == _isPremiumBusiness)) { BusinessImageVM _businessImageVM = new BusinessImageVM { BusinessImageID = image.BusinessImageID, BusinessID = image.BusinessID, ImageName = image.ImageName, ImageType = image.ImageType, ImagePath = tempDocUrl + "/Uploads/Business/" + image.BusinessID + "/" + image.ImageName }; lstBusinessImage.Add(_businessImageVM); } _objBusinessVM.Images = new JavaScriptSerializer().Serialize(lstBusinessImage); } else { _objBusinessVM.Images = "[]"; } return(_objBusinessVM); }
/// <summary> /// Get Reviews By Place By ID /// </summary> /// <param name="_placeID"></param> public String GetReviewsByPlaceID(String _placeID, ref String _contactNumber, ref String _startTime, ref String _endTime) { try { _averageRating = 0; String googlePlaceURL = ConfigurationManager.AppSettings["GooglePlaceAPIReviewURL"] + _placeID + "&fields=review,opening_hours,formatted_phone_number&key=" + ConfigurationManager.AppSettings["GooglePlaceAPIKey"]; StringBuilder strResponse = new StringBuilder(); List <BusinessRatingVM> _businessRatingVMs = new List <BusinessRatingVM>(); Int32 _ratingRecordsCount = 0; using (var client = new WebClient()) using (var stream = client.OpenRead(googlePlaceURL)) using (var reader = new StreamReader(stream)) using (var jsonData = new JsonTextReader(reader)) { var jObject = JObject.Load(jsonData)["result"]; if (jObject["formatted_phone_number"] != null) { _contactNumber = jObject["formatted_phone_number"].ToString().Replace("\"", "'"); } if (jObject["opening_hours"] != null) { try { _startTime = jObject["opening_hours"]["periods"][((int)DateTime.Now.DayOfWeek + 6) % 7]["open"]["time"].ToString().Replace("\"", "'"); _startTime = DateTime.Parse(_startTime.Insert(2, ":")).ToString("h:mm tt"); } catch (Exception ex) { _startTime = ""; } try { _endTime = jObject["opening_hours"]["periods"][((int)DateTime.Now.DayOfWeek + 6) % 7]["close"]["time"].ToString().Replace("\"", "'"); _endTime = DateTime.Parse(_endTime.Insert(2, ":")).ToString("h:mm tt"); } catch (Exception ex) { _endTime = ""; } } if (jObject["reviews"] != null) { foreach (var data in jObject["reviews"]) { BusinessRatingVM _businessRatingVM = new BusinessRatingVM(); if (data["author_name"] != null) { _businessRatingVM.UserName = data["author_name"].ToString().Replace("\"", "'"); } if (data["profile_photo_url"] != null) { _businessRatingVM.ProfileImageUrl = data["profile_photo_url"].ToString().Replace("\"", "'"); } if (data["rating"] != null) { _businessRatingVM.Rating = data["rating"].ToString(); } if (data["text"] != null) { _businessRatingVM.Review = data["text"].ToString().Replace("\"", "'"); } _businessRatingVMs.Add(_businessRatingVM); _averageRating = _averageRating + Double.Parse(_businessRatingVM.Rating); _ratingRecordsCount++; } } } // Add Business Rating List <BusinessRating> lstBusinessRating = _objBusinessDAL.GetReviewsByPlaceID(_placeID); if (lstBusinessRating != null) { List <BusinessRatingVM> lstBusinessRatingVM = new List <BusinessRatingVM>(); foreach (var rating in lstBusinessRating) { BusinessRatingVM _businessRatingVM = new BusinessRatingVM { BusinessRatingID = rating.BusinessRatingID, Rating = rating.Rating.ToString(), Review = rating.Review, UserID = rating.UserID, UserName = rating.User.UserName, ProfileImageUrl = rating.User.ProfileImageUrl }; lstBusinessRatingVM.Add(_businessRatingVM); _averageRating = _averageRating + rating.Rating; _ratingRecordsCount++; } if (_ratingRecordsCount != 0) { _averageRating = _averageRating / _ratingRecordsCount; } if (lstBusinessRatingVM.Count > 0) { _businessRatingVMs.AddRange(lstBusinessRatingVM); } } return(new JavaScriptSerializer().Serialize(_businessRatingVMs)); } catch (Exception ex) { return("[]"); } }