/// <summary> /// Displays the information for a specific game /// </summary> /// <param name="id">ID of the game needing to be displayed</param> /// <returns>Returns a result based on status</returns> public ActionResult GameDetails(int id) { ActionResult response; ReviewVM viewModel = new ReviewVM(); //check id if (id > 0) { //if id is valid, access the database try { //set game GameDO gameDO = _GameDataAccess.ViewGameByID(id); viewModel.Game = _GameMapper.MapDOtoPO(gameDO); //instantiate lists List <ReviewDO> gameReviews = _ReviewDataAccess.ViewReviews(); List <ReviewPO> mappedReviews = new List <ReviewPO>(); viewModel.ReviewsList = new List <ReviewPO>(); //map reviews to a list of POs foreach (ReviewDO reviewDO in gameReviews) { //get review information ReviewPO reviewPO = _ReviewMapper.MapDOtoPO(reviewDO); //get game information for title GameDO reviewGame = _GameDataAccess.ViewGameByID(reviewPO.GameID); reviewPO.GameTitle = gameDO.Title; //get user information for username UserDO userDO = _UserDataAccess.ViewUserByID(reviewPO.UserID); reviewPO.Username = userDO.Username; mappedReviews.Add(reviewPO); } //filter list and map to view model viewModel.ReviewsList = mappedReviews.Where(n => n.GameID == viewModel.Game.GameID).ToList(); response = View(viewModel); } catch (Exception ex) { //log error _Logger.ErrorLog(MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ex); response = RedirectToAction("Error", "Home"); } finally { } } else { //if id is not valid, return to game list response = RedirectToAction("Index", "Game"); } return(response); }
/// <summary> /// Deletes a record from the database. /// </summary> /// <param name="id">ID of review needing to be deleted</param> /// <returns>Returns a result based on status</returns> public ActionResult DeleteReview(int id) { ActionResult response; //check if logged in if (Session["RoleID"] != null) { //if logged in, check id if (id > 0) { //if id is valid, access database try { //pull review data ReviewDO reviewDO = _ReviewDataAccess.ViewReviewByID(id); //check permissions if (Session["UserID"] != null && (int)Session["UserID"] == reviewDO.UserID || (int)Session["RoleID"] == 6) { //if allowed, map, then run data access method ReviewPO reviewPO = _ReviewMapper.MapDOtoPO(reviewDO); _ReviewDataAccess.DeleteReview(reviewPO.ReviewID); response = RedirectToAction("Index", "Review"); } else { //if not allowed, redirect to login page response = RedirectToAction("Login", "Account"); } } catch (Exception ex) { //log error _Logger.ErrorLog(MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ex); response = RedirectToAction("Error", "Home"); } finally { } } else { //if id is invalid, redirect to details response = RedirectToAction("ReviewDetails", "Review"); } } else { //if not logged in, redirect to login page response = RedirectToAction("Login", "Account"); } return(response); }
public ReviewPO MapDOtoPO(ReviewDO ReviewDO) { ReviewPO reviewPO = new ReviewPO(); reviewPO.ReviewID = ReviewDO.ReviewID; reviewPO.ReviewText = ReviewDO.ReviewText; reviewPO.DatePosted = ReviewDO.DatePosted; reviewPO.Category = ReviewDO.Category; reviewPO.UserID = ReviewDO.UserID; reviewPO.GameID = ReviewDO.GameID; return(reviewPO); }
public ReviewPO MapBOtoPO(ReviewBO reviewBO) { ReviewPO reviewPO = new ReviewPO(); reviewPO.ReviewID = reviewBO.ReviewID; reviewPO.ReviewText = reviewBO.ReviewText; reviewPO.DatePosted = reviewBO.DatePosted; reviewPO.Category = reviewBO.Category; reviewPO.UserID = reviewBO.UserID; reviewPO.GameID = reviewBO.GameID; return(reviewPO); }
public ReviewDO MapPOtoDO(ReviewPO reviewPO) { ReviewDO reviewDO = new ReviewDO(); reviewDO.ReviewID = reviewPO.ReviewID; reviewDO.ReviewText = reviewPO.ReviewText; reviewDO.DatePosted = reviewPO.DatePosted; reviewDO.Category = reviewPO.Category; reviewDO.UserID = reviewPO.UserID; reviewDO.GameID = reviewPO.GameID; return(reviewDO); }
public ActionResult CreateReview(ReviewPO reviewPO) { ActionResult response; //check if logged in if (Session["RoleID"] != null) { //if logged in, check model, then write to database try { //check model if (ModelState.IsValid) { //if model is valid, map from model to a DO ReviewDO review = new ReviewDO() { ReviewText = reviewPO.ReviewText, DatePosted = DateTime.Now.ToString(), Category = reviewPO.Category, UserID = (int)Session["UserID"], GameID = reviewPO.GameID, }; //access database, write to the Reviews table _ReviewDataAccess.CreateReview(review); response = RedirectToAction("GameDetails", "Game", new { id = review.GameID }); } else { //if model is not valid, return to the form response = View(reviewPO); } } catch (Exception ex) { //log errors _Logger.ErrorLog(MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ex); response = View(reviewPO); } finally { } } else { //if not logged in, redirect to login page response = RedirectToAction("Login", "Account"); } return(response); }
/// <summary> /// Displays a list of reviews for a specific category. /// </summary> /// <param name="category">Category of a review to filter list</param> /// <returns>Returns a result based on status</returns> public ActionResult ReviewsByCategory(string category) { ActionResult response; ReviewVM viewModel = new ReviewVM(); try { //access database List <ReviewDO> allReviews = _ReviewDataAccess.ViewReviews(); //instantiate new lists List <ReviewPO> mappedReviews = new List <ReviewPO>(); viewModel.ReviewsList = new List <ReviewPO>(); //add to view model foreach (ReviewDO reviewDO in allReviews) { //get review information ReviewPO reviewPO = _ReviewMapper.MapDOtoPO(reviewDO); //get game title GameDO gameDO = _GameDataAccess.ViewGameByID(reviewPO.GameID); reviewPO.GameTitle = gameDO.Title; //get username UserDO userDO = _UserDataAccess.ViewUserByID(reviewPO.UserID); reviewPO.Username = userDO.Username; mappedReviews.Add(reviewPO); } //sort through list of reviews, add to view model viewModel.ReviewsList = mappedReviews.Where(n => n.Category == category).ToList(); response = View(viewModel); } catch (Exception ex) { //log error _Logger.ErrorLog(MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ex); response = RedirectToAction("Error", "Home"); } finally { } return(response); }
/// <summary> /// Shows a list of all reviews in the database. /// </summary> /// <returns>Returns a result based on status</returns> public ActionResult Index() { ActionResult response; ReviewVM viewModel = new ReviewVM(); try { //access database List <ReviewDO> allReviews = _ReviewDataAccess.ViewReviews(); viewModel.ReviewsList = new List <ReviewPO>(); //add to view model foreach (ReviewDO reviewDO in allReviews) { //set review information ReviewPO reviewPO = _ReviewMapper.MapDOtoPO(reviewDO); //get game title GameDO gameDO = _GameDataAccess.ViewGameByID(reviewPO.GameID); reviewPO.GameTitle = gameDO.Title; //get username UserDO userDO = _UserDataAccess.ViewUserByID(reviewPO.UserID); reviewPO.Username = userDO.Username; viewModel.ReviewsList.Add(reviewPO); } response = View(viewModel); } catch (Exception ex) { //log errors _Logger.ErrorLog(MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ex); response = RedirectToAction("Error", "Home"); } finally { } return(response); }
public ActionResult CreateReview(int gameID) { ActionResult response; //check if logged in if (Session["RoleID"] != null) { //if logged in, view the form ReviewPO reviewPO = new ReviewPO(); try { //access database, map to PO GameDO gameDO = _GameDataAccess.ViewGameByID(gameID); reviewPO.GameID = gameDO.GameID; reviewPO.GameTitle = gameDO.Title; response = View(reviewPO); } //catch general exceptions catch (Exception ex) { //log errors _Logger.ErrorLog(MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ex); response = RedirectToAction("Error", "Home"); } finally { } } else { //not logged in, redirect to login response = RedirectToAction("Login", "Account"); } return(response); }
/// <summary> /// Displays the information for one user. /// </summary> /// <param name="id">ID of user needing to be displayed</param> /// <returns>Returns a result based on status</returns> public ActionResult UserDetails(int id) { ActionResult response; ReviewVM viewModel = new ReviewVM(); //check for permissions if (Session["UserID"] != null && (int)Session["UserID"] == id || Session["RoleID"] != null && (int)Session["RoleID"] == 6) { //if allowed, access the database try { //access database, map to presentation, add to view model //get user information UserDO user = _UserDataAccess.ViewUserByID(id); viewModel.User = _Mapper.MapDOtoPO(user); //get role information for role name RoleDO role = _RoleDataAccess.ViewRoleByID(user.RoleID); viewModel.User.RoleName = role.RoleName; //get user's most frequent category viewModel.UserFavCategory = _reviewMapper.MapDOtoPO(_ReviewDataAccess.UserFavoriteCategory(viewModel.User.UserID)); //check id if (viewModel.User.UserID > 0) { //if id is valid, access database List <ReviewDO> gameReviews = _ReviewDataAccess.ViewReviews(); //instantiate new lists List <ReviewPO> mappedReviews = new List <ReviewPO>(); viewModel.ReviewsList = new List <ReviewPO>(); //map to presenation, add to view model foreach (ReviewDO reviewDO in gameReviews) { //map review information ReviewPO reviewPO = _reviewMapper.MapDOtoPO(reviewDO); //get game information for title GameDO gameDO = _GameDataAccess.ViewGameByID(reviewPO.GameID); reviewPO.GameTitle = gameDO.Title; //get user information for username UserDO userDO = _UserDataAccess.ViewUserByID(reviewPO.UserID); reviewPO.Username = userDO.Username; mappedReviews.Add(reviewPO); } //filter list by user, add to view model viewModel.ReviewsList = mappedReviews.Where(n => n.UserID == viewModel.User.UserID).ToList(); response = View(viewModel); } else { //if model state is not valid, display error screen response = RedirectToAction("Error", "Home"); } } catch (Exception ex) { //log error _Logger.ErrorLog(MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ex); //display error page response = RedirectToAction("Error", "Home"); } finally { } } else { //if not logged in, redirect to login page response = RedirectToAction("Login", "Account"); } return(response); }