public JsonResult FavouritePost(FavouritePostViewModel viewModel) { var returnValue = new FavouriteJsonReturnModel(); if (Request.IsAjaxRequest() && LoggedOnReadOnlyUser != null) { using (var unitOfwork = UnitOfWorkManager.NewUnitOfWork()) { try { var post = _postService.Get(viewModel.PostId); var topic = _topicService.Get(post.Topic.Id); // See if this is a user adding or removing the favourite var loggedOnUser = MembershipService.GetUser(LoggedOnReadOnlyUser.Id); var existingFavourite = _favouriteService.GetByMemberAndPost(loggedOnUser.Id, post.Id); if (existingFavourite != null) { _favouriteService.Delete(existingFavourite); returnValue.Message = LocalizationService.GetResourceString("Post.Favourite"); } else { var favourite = new Favourite { DateCreated = DateTime.UtcNow, Member = loggedOnUser, Post = post, Topic = topic }; _favouriteService.Add(favourite); returnValue.Message = LocalizationService.GetResourceString("Post.Favourited"); returnValue.Id = favourite.Id; } unitOfwork.Commit(); return(Json(returnValue, JsonRequestBehavior.DenyGet)); } catch (Exception ex) { unitOfwork.Rollback(); LoggingService.Error(ex); throw new Exception(LocalizationService.GetResourceString("Errors.Generic")); } } } return(Json(returnValue)); }
public JsonResult FavouritePost(FavouritePostViewModel viewModel) { var returnValue = new FavouriteJsonReturnModel(); if (Request.IsAjaxRequest() && LoggedOnReadOnlyUser != null) { using (var unitOfwork = UnitOfWorkManager.NewUnitOfWork()) { try { var post = _postService.Get(viewModel.PostId); var topic = _topicService.Get(post.Topic.Id); // See if this is a user adding or removing the favourite var loggedOnUser = MembershipService.GetUser(LoggedOnReadOnlyUser.Id); var existingFavourite = _favouriteService.GetByMemberAndPost(loggedOnUser.Id, post.Id); if (existingFavourite != null) { _favouriteService.Delete(existingFavourite); returnValue.Message = LocalizationService.GetResourceString("Post.Favourite"); } else { var favourite = new Favourite { DateCreated = DateTime.UtcNow, Member = loggedOnUser, Post = post, Topic = topic }; _favouriteService.Add(favourite); returnValue.Message = LocalizationService.GetResourceString("Post.Favourited"); returnValue.Id = favourite.Id; } unitOfwork.Commit(); return Json(returnValue, JsonRequestBehavior.DenyGet); } catch (Exception ex) { unitOfwork.Rollback(); LoggingService.Error(ex); throw new Exception(LocalizationService.GetResourceString("Errors.Generic")); } } } return Json(returnValue); }
public ActionResult FavouritePost(FavouritePostViewModel viewModel) { if (Request.IsAjaxRequest() && CurrentMember != null) { using (var unitOfwork = UnitOfWorkManager.NewUnitOfWork()) { try { var post = ServiceFactory.PostService.Get(viewModel.PostId); string returnValue; // See if this is a user adding or removing the favourite var existingFavourite = ServiceFactory.FavouriteService.GetByMemberAndPost(CurrentMember.Id, post.Id); if (existingFavourite != null) { ServiceFactory.FavouriteService.Delete(existingFavourite); returnValue = Lang("Post.Favourite"); } else { var favourite = new Favourite { DateCreated = DateTime.UtcNow, MemberId = CurrentMember.Id, PostId = post.Id, TopicId = post.Topic.Id }; ServiceFactory.FavouriteService.Add(favourite); returnValue = Lang("Post.Favourited"); } unitOfwork.Commit(); return(Content(returnValue)); } catch (Exception ex) { unitOfwork.Rollback(); LogError(ex); throw new Exception(Lang("Errors.Generic")); } } } return(Content("error")); }